本文旨在介绍使用mod_status监测和处理Apache服务器负载的方法,它可以使得系统管理员更加简便地获取到这些信息。
mod_status是什么?
mod_status是一个Apache模块,它能够帮助监测Apache服务器的负载与当前的HTTP连接状况,并能够提供HTML界面供使用者获取这些数据。
Apache的mod_status模块生成的纯HTML界面包括了下面这些当前服务器状态的信息:
对服务器的请求总数;
服务器的CPU使用率;
服务器负载;
服务器在线时长;
总流量;
独立访问者的进程PID;
等等。
Apache Project的官网对公众提供了他们的mod_status数据访问界面,您可以到http://www.apache.org/server-status进行查看。
怎样开启mod_status模块?
我们用文本编辑器比如vi打开apache配置文件,假设为/etc/httpd.conf
在任意位置添加如下的行:
1 2 3 4 5 6 7 8 | LoadModule status_module modules/mod_status.so <Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from all </Location> ExtendedStatus On |
然后重启apache服务器
获取mod_status状态页面
我们可以通过在服务器的访问地址后加上/server-status来获取mod_status监控生成的服务器状态页面,比如在浏览器中输入http://5.175.142.66/server-status这样就可以了。
你可以看到如下图的示例页面:
生成的页面包含了所有有关服务器在线时长、PID、各独立访问者及其试图访问的页面等等信息。我们还可以通过在server-status后加上?refresh=xx来让这个页面自动刷新,将xx改成你需要的秒数即可。比如,http://5.175.142.66/server-status?refresh=5即可每五秒刷新显示服务器的状态。
在命令界面获得mod_status状态信息
上述信息除了可以在浏览器中获取,还可以直接在终端/SSH中获取。为此,我们需要使用命令界面下的浏览器lynx或links。执行:
1 | yum install lynx |
这样就安装好了命令界面的浏览器,执行:
1 | lynx http://5.175.142.66/server-status |
就可以直接在终端里看到当前的服务器各项状态。