检查 Ubuntu 服务器上 Apache 日志的最佳方法是什么?

检查 Ubuntu 服务器上 Apache 日志的最佳方法是什么?

我收到大量流量,导致我的小型服务器崩溃。我可以安装什么东西来实时检查我的 Apache 流量?最好是 Web 界面。我想看看这些请求的目的和占用最多资源的请求。

在此处输入图片描述

答案1

阿帕奇的mod_status可以帮到你。对于更复杂的故障排除,你可能需要自定义日志格式(例如,在日志中包含 %D)并编写某种解析器。

答案2

您是否尝试过使用 Apache 的扩展状态?

答案3

嗯,你需要解析 apache 日志,有很多工具可以做到这一点。我自己写了一些 awk 脚本。

echo  "Hits by source IP:"
echo "======================================================================"

awk '{print $2}' "$1" | grep -ivE "(127.0.0.1|192.168.100.)" | sort | uniq -c | sort -   rn | head -25


echo "The 25 most popular pages:"
echo "======================================================================"

awk '{print $6}' "$1" | grep -ivE '(mod_status|favico|crossdomain|alive.txt)' | grep  -ivE '(.gif|.jpg|.png)' | sed 's/\/$//g' | sort | uniq -c | sort -rn | head -25

echo

echo "The 25 most popular pages (no js or css):"
echo "======================================================================"

awk '{print $6}' "$1" | grep -ivE '(mod_status|favico|crossdomain|alive.txt)' | grep -ivE '(.gif|.jpg|.png|.js|.css)' | sed 's/\/$//g' | sort | uniq -c | sort -rn | head -25


echo "The 25 most common referrer URLs:"
echo "======================================================================"

awk '{print $11}' "$1" | \
grep -vE "(^"-"$|/www.$host|/$host)" | \
sort | uniq -c | sort -rn | head -25



echo "Longest running requests"
echo "======================================================================"

awk  '{print $10,$6}' "$1" | grep -ivE '(.gif|.jpg|.png|.css|.js)'  | awk '{secs=0.000001*$1;req=$2;printf("%.2f minutes req time for %s\n", secs / 60,req )}' | sort -rn | head -50

exit 0

只需输入一个名为“apache_stats”的文件并像“./apache_stats”一样运行它。

答案4

查看http://mmonit.com/

M/Monit 是付费的,提供更多功能(以及更丰富的 GUI)。Monit 是免费的,允许您进行监控。当服务器负载超过某个阈值时,您可以收到电子邮件警报。我自己使用它来监控服务器负载并做出相应的响应。

相关内容