nginx日志分析查询异常请求IP地址之狙击网络黑客
有勇气的牛排
622
nginx
2021-08-18 22:18:47
1 分析
使用nginx作为web端口分发时,只要请求服务器,nginx便会在access.log
与error.log
文件中留下记录,包括请求时间、请求方式、浏览器、、以及访问的静态文件等信息。
网络中存在很多脚本小子,多用现成工具对目标发起工具,过程中会大量占用我的服务器资源。
2 python分析 access.log
这里会统计出日志文件中ip地址请求服务器的次数,并输出结果到excel中
import openpyxl, redis
r = redis.Redis(host="localhost", port=6379, decode_responses=True)
wb = openpyxl.Workbook()
wb.create_sheet('nginx_log')
sh = wb['Sheet']
wb.remove(sh)
sh = wb['nginx_log']
sh.append(['ip', '请求次数'])
res = r.hgetall('ip')
for key in res:
print(key+':'+res[key])
sh.append([key.strip(), res[key]])
wb.save('日志分析1.xlsx')
然后就可以得知每个ip地址的请求次数按照降序显示,下期讲解如何禁用异常访问ip
此方案仅用于小测试,更高级的可学习 Elasticsearch
<h2><a id="1__0"></a>1 分析</h2>
<p>使用nginx作为web端口分发时,只要请求服务器,nginx便会在<code>access.log</code>与<code>error.log</code>文件中留下记录,包括请求时间、请求方式、浏览器、、以及访问的静态文件等信息。</p>
<p>网络中存在很多脚本小子,多用现成工具对目标发起工具,过程中会大量占用我的服务器资源。</p>
<h2><a id="2_python_accesslog_5"></a>2 python分析 access.log</h2>
<p>这里会统计出日志文件中ip地址请求服务器的次数,并输出结果到excel中</p>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">import</span> openpyxl, redis
<span class="hljs-comment"># 连接redis辅助存储数据</span>
r = redis.Redis(host=<span class="hljs-string">"localhost"</span>, port=<span class="hljs-number">6379</span>, decode_responses=<span class="hljs-literal">True</span>)
<span class="hljs-comment"># 创建一个工作簿 实例化</span>
wb = openpyxl.Workbook()
<span class="hljs-comment"># 创建一个test_case的sheet表单</span>
wb.create_sheet(<span class="hljs-string">'nginx_log'</span>)
<span class="hljs-comment"># 删除默认表</span>
sh = wb[<span class="hljs-string">'Sheet'</span>]
wb.remove(sh)
<span class="hljs-comment"># 第二步:选取表单</span>
sh = wb[<span class="hljs-string">'nginx_log'</span>]
<span class="hljs-comment"># 第一行输入</span>
sh.append([<span class="hljs-string">'ip'</span>, <span class="hljs-string">'请求次数'</span>])
res = r.hgetall(<span class="hljs-string">'ip'</span>)
<span class="hljs-keyword">for</span> key <span class="hljs-keyword">in</span> res:
<span class="hljs-built_in">print</span>(key+<span class="hljs-string">':'</span>+res[key])
<span class="hljs-comment"># 写 excel</span>
sh.append([key.strip(), res[key]])
<span class="hljs-comment"># 保存为一个xlsx格式的文件</span>
wb.save(<span class="hljs-string">'日志分析1.xlsx'</span>)
</code></div></pre>
<p>然后就可以得知每个ip地址的请求次数按照降序显示,下期讲解如何禁用异常访问ip</p>
<p>此方案仅用于小测试,更高级的可学习 Elasticsearch</p>
留言