Apache监控

100 阅读2分钟
原文链接: zhuanlan.zhihu.com

关于apache监控有两种方法:一是自带的监控模块status;二是第三方监控工具apachetop。

1.1status模块监控

​ 使用status监控模块对apache进行监控的步骤如下:

​ 1.将status模块开启

LoadModule status_module modules/mod_status.so

​ 2.将ExtendedStatus设置为On

ExtendedStatus On
将监控时的扩展信息显示出来

​ 3.设置访问server-status权限

<Location /server-status>

SetHandler server-status

Order deny,allow

# Deny from all //表示拒绝所有的用户访问server-status模块

Allow from all

</Location>

4.进入监控页面

http://ip:端口/server-status
实例:
http://localhost:8091/server-status

​ 5.实时监控

http://ip:端口/server-status?auto&refresh=time

表示每隔多长时间采集一个数据,单位为秒

例如:

http://192.168.244.129/server‐status?auto&refresh=5


监控的信息如下:

Total Accesses:表示总的请求数,即客户端向服务器发送的请求数。如果这个值不变,那么说明客户端发送的请求未到达服务器

Total kBytes: 表示总的字节数

Uptime: 表示运行时间

ReqPerSec: 表示的HTTP请求数

BytesPerSec: 表示每秒的字节数

BytesPerReq: 表示每个请求的字节数

BusyWorkers: 表示正在忙的线程

IdleWorkers: 表示空闲的线程

BusyWorkers+IdleWorkers为总的线程数,默认值为250。

如果监控发现IdleWorkers为0,那么就说明请求可能出现排队。排队最后会由超时时间来决定

Scoreboard:表示每请求的状态

请求的状态主要包括:

"_":表示等待连接

"S":表示准备连接

"R":表示正在读请求

"W":表示服务器向客户端发送响应信息

"K":表示保持长连接

"D":表示DNS查询

"C":表示关闭连接

"L":表示正在写日志

"G":表示退出完成

"I":表示该线程释放

".":表示当前未使用状态


1.2apachetop监控

在类unix下我们通常使用第三方监控工具:apachetop

apachetop监控命令

apachetop -f 日志文件

apachetop -f /usr/local/apache2/logs/access_log

apache日志文件是access_log

apachetop显示的监控信息如下:

主要显示以下内容:

1.总的请求数、每秒的请求数

2.总的字节数、每秒的字节数

3.每个请求的字节数

4.HTTP返回状态码的统计

5.详细的URL信息

*表示当前光标所在的位置,使用向上和向下键可以切换我们要选择的记录

使用向右键可以显示详细的URL信息,使用向左键返回列表模式

按键可以去切换显示的模式,通常有三种显示的模式:URL、Referrer、Host。