ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop。有了ngxtop,你可以实时了解到当前nginx的访问状况,再也不需要tail日志看屏幕刷新。
1. 安装ngxtop
1.1 源码安装
Finished processing dependencies for ngxtop==0.0.1 |
//看到如上输出表示安装成功,安装过程需要网络支持
1.2 ngxtop安装
2. ngxtop使用详解
ngxtop - ad-hoc query for nginx access log. |
ngxtop [options] (print| top |avg| sum ) <var> ... |
ngxtop [options] query <query> ... |
-l < file >, --access-log < file > 需要分析的访问日志 |
-f < format >, --log- format < format > log_format指令指定的日志格式 [默认: combined] |
--no-follow ngxtop default behavior is to ignore current lines in log |
and only watch for new lines as they are written to the access log. |
Use this flag to tell ngxtop to process the current content of the access log instead. |
-t <seconds>, --interval <seconds> report interval when running in follow mode [default: 2.0] |
-g <var>, --group-by <var> 根据变量分组 [默认: request_path] |
-w <var>, --having < expr > having clause [default: 1] |
-o <var>, --order-by <var> 排序 [默认: count] |
-n <number>, --limit <number> 显示的条数 [default: 10] |
-a <exp> ..., --a <exp> ... add exp (must be aggregation exp: sum , avg, min, max, etc.) into output |
-d, --debug print every line and parsed record |
-c < file >, --config < file > 运行ngxtop解析nginx配置文件 |
-i <filter-expression>, --filter <filter-expression> filter in , records satisfied given expression are processed. |
-p <filter-expression>, --pre-filter <filter-expression> in -filter expression to check in pre-parsing phase. |
All examples read nginx config file for access log location and format . |
If you want to specify the access log file and / or log format , use the -f and -a options. |
"top" like view of nginx requests |
$ ngxtop top request_path --filter 'status == 404' |
$ ngxtop --order-by 'avg(bytes_sent) * count' |
$ ngxtop --group-by remote_addr |
$ ngxtop -i 'status >= 400' print request status http_referer |
Average body bytes sent of 200 responses of requested path begin with 'foo' : |
$ ngxtop avg bytes_sent --filter 'status == 200 and request_path.startswith("foo")' |
使用common日志格式分析远程服务器Apache访问日志 |
$ ssh remote tail -f /var/log/apache2/access.log | ngxtop -f common |
3. ngxtop实例
3.1 实时状态
ngxtop
3.2 访问量前十的IP
ngxtop
4. 注意事项
4.1 ngxtop单条命令无法执行
Error: Access log file or format was not set and nginx |
config file cannot be detected. Perhaps nginx is not in your PATH? |
意识说nginx执行文件要加到PATH路径中,
方法一:软连接
方法二:修改环境变量
export PATH=$PATH:/usr/ local /nginx-1.5.2/sbin |
方法三:指定配置文件
4.2 虚拟主机配置文件必须在nginx.conf主配置中
一般情况下,我们会将虚拟主机单独写到一个配置文件中,然后nginx.conf做个include。例如我们站点www.ttlsa.com
配置文件:/usr/local/nginx-1.5.2/conf/vhost/www.ttlsa.com.conf
再nginx.conf的http段中添加include vhost/*.conf
这种情况下ngxtop不支持,必须要保证所有配置都在nginx.conf中才行。不知道是否我哪里理解不对,如果是的话,知道的兄弟留言告知。本人在此感激不尽。
5. 结束
ngxtop非常实用,值得推荐。
项目地址:https://github.com/lebinh/ngxtop