使用BASH脚本汇总NGINX和Apache访问日志


文档摘要

使用 BASH 脚本汇总 NGINX 和 Apache 访问日志 每当我注意到某台 Linux 服务器的 CPU 使用率过高时,我通常会做的第一件事就是用 或 查看进程列表。如果发现有大量 Apache 或 Nginx 进程在运行,我会迅速检查访问日志,以确定是什么原因导致了服务器 CPU 的峰值,或者判断是否有任何恶意活动正在发生。 然而,有时阅读日志可能会让人感到压力很大:日志文件可能非常庞大,手动逐行查看会耗费大量时间;而且对于经验较少的人来说,原始日志格式也可能令人困惑。 就像上一章一样,本章同样是一个挑战!你需要编写一个简短的 Bash 脚本,无需安装任何额外软件,就能为你汇总整个访问日志。

使用 BASH 脚本汇总 NGINX 和 Apache 访问日志

每当我注意到某台 Linux 服务器的 CPU 使用率过高时,我通常会做的第一件事就是用 tophtop 查看进程列表。如果发现有大量 Apache 或 Nginx 进程在运行,我会迅速检查访问日志,以确定是什么原因导致了服务器 CPU 的峰值,或者判断是否有任何恶意活动正在发生。

然而,有时阅读日志可能会让人感到压力很大:日志文件可能非常庞大,手动逐行查看会耗费大量时间;而且对于经验较少的人来说,原始日志格式也可能令人困惑。

就像上一章一样,本章同样是一个挑战!你需要编写一个简短的 Bash 脚本,无需安装任何额外软件,就能为你汇总整个访问日志。

脚本要求

这个 BASH 脚本需要解析并汇总你的访问日志,并为你提供一些非常有用的信息,例如:

  • 前 20 名接收最多 POST 请求的页面
  • 前 20 名接收最多 GET 请求的页面
  • 前 20 名 IP 地址及其地理位置信息

示例脚本

我已经准备了一个演示脚本,你可以将其作为参考。不过,我强烈建议你先尝试自己编写脚本,然后再查看我的脚本!

要下载该脚本,你可以使用以下命令克隆仓库:

git clone https://github.com/bobbyiliev/quick_access_logs_summary.git

或者运行以下命令,将脚本下载到当前目录:

wget https://raw.githubusercontent.com/bobbyiliev/quick_access_logs_summary/master/spike_check

该脚本不会对你的系统进行任何更改;它只是读取访问日志的内容并为你进行汇总。不过,在下载文件后,请务必自行检查脚本内容。

运行脚本

脚本下载完成后,你只需将其设置为可执行文件并运行即可。

要使脚本可执行,请运行以下命令:

chmod +x spike_check

然后运行脚本:

./spike_check /path/to/your/access_log

请确保将文件路径替换为你访问日志的实际路径。例如,如果你在 Ubuntu 服务器上使用 Apache,具体的命令可能如下所示:

./spike_check /var/log/apache2/access.log

如果你使用的是 Nginx,命令几乎相同,只需将路径替换为 Nginx 访问日志的路径:

./spike_check /var/log/nginx/access.log

理解输出

运行脚本后,根据日志文件的大小,可能需要等待一段时间。

你最终看到的输出应该类似于以下内容:

汇总的访问日志

从这个输出中我们可以看出,我们的 xmlrpc.php 文件收到了 16 次 POST 请求。攻击者经常利用这个文件,通过尝试各种用户名和密码组合来攻击 WordPress 网站。

在这个特定案例中,这并不是一次大规模的暴力破解攻击,但它为我们提供了一个早期预警信号,让我们可以采取行动,防止未来发生更严重的攻击。

我们还可以看到,有几个来自俄罗斯的 IP 地址访问了我们的网站。如果你预计不会收到来自俄罗斯的流量,那么你可能也需要考虑屏蔽这些 IP 地址。

结论

这是一个简单的 BASH 脚本示例,可以帮助你快速汇总访问日志,并判断是否存在任何恶意活动。

当然,你也可以选择手动检查日志,但尝试用 Bash 自动化这一过程本身就是一个很好的挑战!

{notice} 本内容最初发布于 DevDojo

免责声明
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


作者与出处
原作者: bobbyiliev
来源:bobbyiliev
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: bobbyiliev 转发
评论区 (0)
U