Apache实时监控虚拟主机进程

Apache有没有办法像top一样实时监控虚拟主机的进程呢?Apache的mod_status模块正好能解决这个问题,我们可以开启mod_status模块以html页面的形式来显示出各虚拟主机的进程状态。
这些html页面包含:

  • 正在伺服请求的工作者(线程或进程)数量
  • 空闲的工作者数量
  • 每个工作者的状态:已完成的请求数、已发送的字节数。(*)
  • 总访问数和已发送的字节总数(*)
  • 服务器自启动/重启以来经过的时间,服务器已经运行的时间。
  • 平均每秒请求数,平均每秒发送的字节数,平均每个请求发送的字节数。(*)
  • 每个工作者的当前CPU使用百分率,以及Apache的当前总计CPU使用百分率。(*)
  • 当前正在被处理的主机和请求(*)

下面我们来介绍如何安装mod_status和使用它。
1、检查是否加载mod_status模块
执行如下命令会列出当前加载的所有模块。

  1. httpd -M

如果没有找到mod_status模块,请参考这篇文章加载https://www.centos.bz/2011/09/linux-apache-load-mod_status-module/
2、开启ExtendedStatus指令和启用状态报告
编译配置文件httpd.conf,加入如下代码:

  1. ExtendedStatus On
  2. <Location /server-status>
  3. SetHandler server-status
  4.  
  5. Order Deny,Allow
  6. Deny from all
  7. Allow from .foo.com
  8. </Location>

.foo.com是允许指定的域名访问状态页面,也可以允许IP。
保存退出,重启apache。
3、查看状态报告
通过http://your.server.name/server-status查看状态页面,也可以通过http://your.server.name/server-status?refresh=N隔N秒刷新页面,这样就可以达到实时监控了。

标签:监控Apache 发布于:2019-10-13 11:40:51