我正在尝试找到一种方法来监控我的 Apache 服务器,这样当服务器变慢时,我就可以知道哪个域导致了服务器变慢。我希望能够使用 ApacheTop 来实现这一点,但是我必须分别列出每个日志文件,因为 Plesk 将域 Apache 日志拆分为单独的文件。
有没有办法使用 ApacheTop 来做到这一点,或者我应该使用其他工具?
谢谢
答案1
这个脚本监控你的 apache - 使用 */5 来 cron 它并对其进行配置 http://www.triologic.eu/apache-monitor.0.html?&L=1 triologic 网络团队
答案2
这是迄今为止我发现的最佳手动方法。
将多个域访问日志附加到同一个 apachetop 进程,并实时获取发生情况的总体概述。您可以使用以下语法指定多个访问日志:
apachetop -f /var/www/vhosts/site1.com/statistics/logs/access_log -f /var/www/vhosts/site2.com/statistics/logs/access_log -f /var/www/vhosts/site3.com/statistics/logs/access_log -f /var/www/vhosts/site4.com/statistics/logs/access_log -f /var/www/vhosts/site5.com/statistics/logs/access_log
答案3
我希望有人能想出一种追踪域名的奇特方法。我一直使用的方法是启用 mod_fcgid 并让所有 PHP 站点在其下运行。这意味着占用大量 CPU 时间的 PHP 脚本会显示在进程表和顶部。此外,我还会检查 mysql 进程列表以查看具有数据库的站点以及它们是否也占用了大量 CPU 时间。
如果有另一种方法可以追踪占用大量 CPU 的网站,那就太好了。
我想您可以使用 ApacheTop,通过在 apache 配置文件中制定自定义日志规则将所有站点记录到单个 access_log 中。这应该是可行的,而不会影响站点的正常日志记录。
希望有人有更好的解决方案。