ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop。有了ngxtop,你可以实时了解到当前nginx的访问状况,再也不需要tail日志看屏幕刷新。 1. 安装ngxtop 1.1 源码安装
# wget https://github.com/lebinh/ngxtop/archive/master.zip -O ngxtop-master.zip
# unzip ngxtop-master.zip
# cd ngxtop-master
# python setup.py install
...省略....
Finished processing dependencies for ngxtop==0.0.1
//看到如上输出表示安装成功,安装过程需要网络支持 1.2 ngxtop安装
pip install ngxtop
2. ngxtop使用详解
# ngxtop --help
ngxtop - ad-hoc query for nginx access log.
Usage:
ngxtop [options]
ngxtop [options] (print|top|avg|sum) ...
ngxtop info
ngxtop [options] query ...
Options:
-l , --access-log 需要分析的访问日志
-f , --log-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 , --interval report interval when running in follow mode [default: 2.0]
-g , --group-by 根据变量分组 [默认: request_path]
-w , --having having clause [default: 1]
-o , --order-by 排序 [默认: count]
-n , --limit 显示的条数 [default: 10]
-a ..., --a ... add exp (must be aggregation exp: sum, avg, min, max, etc.) into output
-v, --verbose 更多的输出
-d, --debug print every line and parsed record
-h, --help 当前帮助信息.
--version 输出版本信息.
高级选项:
-c , --config 运行ngxtop解析nginx配置文件
-i , --filter filter in, records satisfied given expression are processed.
-p , --pre-filter 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
404前十的请求
$ ngxtop top request_path --filter 'status == 404'
总流量前十的请求
$ ngxtop --order-by 'avg(bytes_sent) * count'
访问量前十的ip地址
$ ngxtop --group-by remote_addr
输出400以上状态吗的请求以及请求来源
$ 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 -c /usr/local/nginx-1.5.2/conf/nginx.conf
原文转自:http://huidu.lanxijun.com/articleDetail.html?id=19619&from=huidu&platform=android