身为系统管理者,必须时常查看系统状态,检查、注意主机是否有异常的情形发生。Apache 提供了详细的系统记录文件,我们可以经由这些档案了解服务器、网页是否有异常的情形。另外,Apache 也提供了一些工具,可以让我们了解服务器的运作情形。
13.5.1 Apache 状态信息
在安装完 Apache 后,如果您所管理的是一个大型的网页服务器,您一定会需要了解服务器的系统负荷是否足以处理庞大的网络流量。Apache 内建了 server-status 及 server-info 二种观看服务器信息的方法。
server-status 服务器状态信息
server-status 可以让我们了解 Apache 目前运作的情形,包括占用的系统资源、目前联机数量等。在使用 server-status 之前,我们必须先修改 httpd.conf,以打开此功能。
...
LoadModule status_module libexec/apache2/mod_status.so
...
#
# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On
...
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.0.
</Location>
...
|
首先要确认的是 Apache 有载入 mod_status.so 这个模块,接着我们将 ExtendedStatus 设为 On,以显示详细的服务器状态。最后是找到 server-status 的区段,并移除开头的 #。在 server-status 区段中,我们设定了 Deny、Allow,以限制只有从某个地方联机进来的使用者可以查看服务器状态。在上述的范例中,我们限制只有从 192.168.0.x 的使用者才可以看到 server-status。
修改完 httpd.conf 后,我们必须使用下列指令重新启动 Apache:
# /usr/local/etc/rc.d/apache2.sh restart
接下来,我们就可以使用浏览器连到 http://192.168.0.1/server-status。请将 192.168.0.1 改成您的主机 IP。连到 server-status 后,您可以看到下列画面:
图 13-2
server-status 的输出中每个字段所代表的意义如下:
字段 |
说明 |
Server Version |
Apache 服务器的版本。 |
Server Built |
Apache 服务器编译安装的时间。 |
Current Time |
目前的系统时间。 |
Restart Time |
Apache 重新启动的时间。 |
Parent Server Generation |
Apache 父程序 (parent process) 的世代编号,就是 httpd 接收到 SIGHUP 而重新启动的次数。 |
Server uptime |
Apache 启动后到现在经过的时间。 |
Total accesses |
到目前为此 Apache 接收的联机数量及传输的数据量。 |
CPU Usage |
目前 CPU 的使用情形。 |
_SWSS.... |
所有 Apache process 目前的状态。每一个字符表示一个程序,最多可以显示 256 个程序的状态。 |
Scoreboard Key |
上述状态的说明。以下为每一个字符符号所表示的意义:
- _:等待连结中。
- S:启动中。
- R: 正在读取要求。
- W:正在送出回应。
- K:处于保持联机的状态。
- D:正在查找 DNS。
- C:正在关闭连结。
- L:正在写入记录文件。
- G:进入正常结束程序中。
- I:处理闲置。
- .:尚无此程序。
|
Srv |
本程序与其父程序的世代编号。 |
PID |
本程序的 process id。 |
Acc |
分别表示本次联机、本程序所处理的存取次数。 |
M |
该程序目前的状态。 |
CPU |
该程序所耗用的 CPU 资源。 |
SS |
距离上次处理要求的时间。 |
Req |
最后一次处理要求所耗费的时间,以千分之一秒为单位。 |
Conn |
本次联机所传送的数据量。 |
Child |
由该子程序所传送的数据量。 |
Slot |
由该 Slot 所传送的数据量。 |
Client |
客户端的地址。 |
VHost |
属于哪一个虚拟主机或本主机的 IP。 |
Request |
联机所提出的要求信息。 |
我们在查看 server-status 时,可以在输入的网址中加上参数 refresh 来让网页自动更新。例如,您可以输入 http://192.168.0.1/server-status?refresh=5,让网页每 5 秒钟自动重新加载。