网站搜索

查找访问您的 Apache Web 服务器的前 10 个 IP 地址


当运行可从开放或公共网络(例如 Internet)访问的 Web 服务器时,监视对服务器的访问始终是一个良好的系统管理实践。

监视对 Web 服务器的访问的一个好处是存在访问日志文件,该文件存储有关服务器中发生的每个访问活动的信息。

使用日志文件始终非常重要,因为它们可以让您了解系统或应用程序(在本例中为 Apache Web 服务器)内发生的所有情况。如果出现任何性能或访问相关问题,日志文件可以帮助您指出可能出现的问题或正在发生的情况。

阅读有关 Linux 中日志管理的更多信息:4 个最佳 Linux 日志管理工具

在本文中,我们将了解如何查找访问 Apache Web 服务器的前 10 个 IP 地址。

Apache Web 服务器日志的默认路径是:

/var/log/http/access_log      [For RedHat based systems]
/var/log/apache2/access.log   [For Debian based systems]
/var/log/http-access.log      [For FreeBSD]

要找出访问域的 Apache Web 服务器的前 10 个 IP 地址,只需运行以下命令。

awk '{ print $1}' access.log.2016-05-08 | sort | uniq -c | sort -nr | head -n 10
样本输出
5482 103.28.37.178
5356 66.249.78.168
1977 66.249.93.145
1962 157.55.39.251
1924 66.249.93.142
1921 66.249.93.148
1890 64.233.173.178
1860 108.61.183.134
1841 64.233.173.182
1582 157.55.39.251

在上面的命令中:

  1. awk – 打印 access.log.2016-05-08 文件。
  2. sort – 帮助对 access.log.2016-05-08 文件中的行进行排序,-n 选项根据数字比较行字符串的值和 -r 选项会反转比较的结果。
  3. uniq – 有助于报告重复的行,-c 选项有助于根据出现的次数为行添加前缀。

阅读有关如何在 Linux 中使用 awk 命令的更多信息。

概括

有很多方法可以用来实现这一点,如果您知道更好的方法,请在评论中分享,如果有任何建议或问题,请记得在下面的评论部分留下评论,我们将一起讨论。希望这篇文章对您有所帮助,并记住始终与 Howtoing 保持联系。