首 页 » VPS管理维护 » Nginx日志实时监控、排查整理工具 – ngxtop

Nginx日志实时监控、排查整理工具 – ngxtop

2016-03-22 | 浏览人数: 2,963次 | 分类: VPS管理维护 | 查看评论 发表评论

要实时查看日志文件变动我们首先想到的应该是tail -f /path/to/log,但是这样看网站的访问日志是相当崩溃的,好一点可以写个脚本进行筛选,但是大部分人还是不擅长的,今天就推荐给大家一个Nginx日志工具:ngxtop。

说起top工具有很多如:iftop、htop、ntop等,今天说的ngxtop功能也毫不逊色,不仅能实时监控Nginx日志的访问还可以对以前的日志进行排查整理。

安装ngxtop

ngxtop是使用python编写的,所以使用pip安装最简单了,可能有些用户没有安装pip,下面我们一块加上pip的安装步骤:

Fedora:yum install python-pip
CentOS/RHEL需先安装EPEL,安装完后:yum install python-pip
Debian/Ubuntu:apt-get install python-pip

安装完pip就可以安装ngxtop:pip install ngxtop

某ss啥的你们懂的,通过pip安装也是很简单的。

ngxtop使用参数

ngxtop 参数 print|top|avg|sum
ngxtop info 显示日志格式信息

  • -l <file>或–access-log <file> 设置日志路径
  • -f <format>或–log-format <format> 设置日志格式,默认格式combined,另外一种较常用格式为common
  • –no-follow 处理以前的日志,实时日志不做处理
  • -t <seconds> 或 –interval <seconds> 刷新频率,默认2秒
  • -g <var>或 –group-by <var> 按变量分组,默认显示 request_path
  • -w <var>或 –having <expr> 筛选 [default: 1]
  • -o <var>或 –order-by <var> 输出的排序方式,默认: 访问数
  • -n <number>或 –limit <number> 显示top多条,默认前top 10条
  • -a <exp> …或 –a <exp> … 对输出字段做处理,可选 sum, avg, min, max
  • -v或 –verbose 详细输出
  • -d或 –debug debug模式,输出每行及记录
  • -h或 –help 显示帮助详细
  • –version 显示版本信息

高级参数

  • -c <file>或 –config <file> 指定nginx配置文件,自动分析日志格式
  • -i <filter-expression>或 –filter <filter-expression> 满足表达式的过滤将被处理
  • -p <filter-expression>或 –pre-filter <filter-expression> in-filter expression to check in pre-parsing phase.

另外一些变量可以在分析时用到,名字含义同日志格式里的设置:remote_addr、remote_user、time_local、request、request_path、status、body_bytes_sent、http_referer、http_user_agent。

ngxtop使用实例

实时监控日志

ngxtop -l /home/wwwlogs/www.deepvps.com.log

虽然直接执行ngxtop会自动搜索nginx.conf,但是直接解析里面默认虚拟主机的,建议直接指定日志文件。可以指定上-n 限定条数,也可以指定上-g http_user_agent按useragent查看。

日志分析

ngxtop -l /home/wwwlogs/www.deepvps.com.log –no-follow 可以加一下参数进行详细分析,下面几个例子

按rquest_path且是404的前10请求:ngxtop -l /home/wwwlogs/www.deepvps.com.log –no-follow top request_path –filter ’status == 404′

按总bytes sent最高的前10:ngxtop -l /home/wwwlogs/www.deepvps.com.log –no-follow –order-by ‘avg(bytes_sent) * count’

按remote address进行排序前10:ngxtop -l /home/wwwlogs/www.deepvps.com.log –no-follow –group-by remote_addr

显示400或更高返回状态码的且只显示request、status、http_referer这三列信息:ngxtop -l /home/wwwlogs/www.deepvps.com.log –no-follow -i ’status >= 400′ print request status http_referer

显示bytes_sent平均值且状态码为200且request_path以vpser开始的前10:ngxtop -l /home/wwwlogs/www.deepvps.com.log –no-follow avg bytes_sent –filter ’status == 200 and request_path.startswith(“deepvps”)’

转自:http://www.vpser.net/manage/ngxtop.html

原创文章如转载,请注明:转载自深度VPS [ http://www.deepvps.com ]
[复制本文链接发送给您的好友]
Tags:
  • 上一篇:
  • 下一篇:
  • 日志信息 »

    该日志于2016-03-22 21:27由 deepvps 发表在VPS管理维护分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

    随机日志

    沙发为空,还不快抢?[点此发言]

    发表评论 »

    = 10 + 9 (防止机器人评论)

     疑问 冷笑 悲伤 坏蛋 感叹 微笑 脸红 大笑 吃惊 惊讶 困惑 酷 大声笑 恼火 古怪 转眼睛 给眼色 好主意 箭头 一般 哭了 绿人