ngxtop之nginx实时监控
1、安装
# pip安装
pip install ngxtop
# 源码安装
wget https://github.com/lebinh/ngxtop/archive/master.zip -O ngxtop-master.zip
unzip ngxtop-master.zip && cd ngxtop-master
python setup.py install
2、使用详解
# ngxtop help
ngxtop - ad-hoc query for nginx access log.
Usage:
ngxtop [options]
ngxtop [options] (print|top|avg|sum) <var> ...
ngxtop info
ngxtop [options] query <query> ...
Options:
-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
-v, --verbose 更多的输出
-d, --debug print every line and parsed record
-h, --help 当前帮助信息.
--version 输出版本信息.
高级选项:
-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
404前十的请求
$ ngxtop top request_path --filter 'status == 404'
3、使用实列
# 获取nginx的基本信息
ngxtop info
# 查看客户端的顶级源ip
ngxtop top remore_addr
# 总流量前10的地址
ngxtop --order-by 'avg(bytes_sent) * count'
# 访问量前10的IP地址
ngxtop --group-by remote_addr
# 获取状态>=400和http引用
ngxtop -i 'status >=400' print request status http_referer
# 从远程服务器解析日志
ssh user@remote_server tail -f /var/log/apache/access.log | ngxtop -f common
# 实时状态
ngxtop -c /opt/nginx/conf/nginx.conf
# 显示前20最频繁的请求
ngxtop -n 20