统计信息
来自SEnginx
2014年5月9日 (五) 09:46Root (讨论 | 贡献)的版本
目录 |
统计信息
概要
统计信息模块是用于记录SEnginx中的多种流量数据和攻击数据的模块,目前提供的统计项目有:
流量统计
- 当前请求数,指的是当前server中有多少个request在处理中
- 总请求数,指从SEnginx启动运行开始,当前server一共共处理的请求数
- 应答数,指从SEnginx启动运行开始,当前server一共处理的应答数,是按状态码进行统计的
- 发送的字节数,指当前server一共发送的字节数
- 接收的字节数,指当前server一共接收的字节数
流量统计目前只支持server端,不支持upstream端
攻击统计
- SQL注入
- 跨站脚本攻击
- 远程文件包含
- 目录遍历
- 攻击逃避
- 文件上传漏洞
- cookie篡改
- 网页篡改
- 机器人缓解挑战次数
以上攻击类型是否有进行需要根据配置文件中是否开启了对应的防御功能决定。目前不支持ModSecurity的攻击统计。
演示地址:http://demo.senginx.org
此模块在SEnginx 1.5.14以及以后的版本中提供。
命令
statistics_zone
语法 | statistics_zone size |
默认值 | - |
上下文 | http |
定义一个统计共享内存,size为内存的大小。
示例:
statistics_zone 10m;
要进行统计的server需要使用virtual_server_name命令指定server的唯一名字,一般可以指定为server的域名,如果没设置virtual_server_name,则此server不会被统计
例如:
statistics_zone 10m; server { listen 80; server_name www.abc.com; virtual_server_name www.abc.com; ... }
statistics
语法 | statistics |
默认值 | - |
上下文 | location |
指定取统计结果的location。
例如:
location /stats { statistics; }
统计数据格式
采用JSON,目前只支持这一种格式。格式如下:
{ "timestamp":123455678, "servers":[ { "name":"server1", "traffic":{"cur_req":10,"req":100,"res_2xx":50,"res_3xx":20,"res_4xx":15, "res_5xx":15,"sent":1453,"recvd":3541}, "attack":{"sql":10,"xss":10,"rfi":5,"dt":2,"evade":1,"fu":1,"cp":1,"wd":3, "rm":50,"other":0} }, { "name":"server2", "traffic":{"cur_req":10,"req":100,"res_2xx":50,"res_3xx":20,"res_4xx":15, "res_5xx":15,"sent":1453,"recvd":3541}, "attack":{"sql":10,"xss":10,"rfi":5,"dt":2,"evade":1,"fu":1,"cp":1,"wd":3, "rm":50,"other":0} }, ...] }
由于统计数据都是存放在内存中,所以如果SEnginx退出了,则会导致数据清0。