要实时查看日志文件变动我们首先想到的应该是tail -f /path/to/log,但是这样看网站的访问日志是相当崩溃的,好一点可以写个脚本进行筛选,但是大部分人还是不擅长的,今天VPS侦探就推荐给大家一个Nginx日志工具:ngxtop。
说起top工具有很多如:iftop、htop、ntop等,今天说的ngxtop功能也毫不逊色,不仅能实时监控Nginx日志的访问还可以对以前的日志进行排查整理。
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 参数 print|top|avg|sum
ngxtop info 显示日志格式信息
高级参数
另外一些变量可以在分析时用到,名字含义同日志格式里的设置:remote_addr、remote_user、time_local、request、request_path、status、body_bytes_sent、http_referer、http_user_agent。
ngxtop -l /home/wwwlogs/www.vpser.net.log
虽然直接执行ngxtop会自动搜索nginx.conf,但是直接解析里面默认虚拟主机的,建议直接指定日志文件。可以指定上-n 限定条数,也可以指定上-g http_user_agent按useragent查看。
日志分析
ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow 可以加一下参数进行详细分析,下面几个例子
按rquest_path且是404的前10请求:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow top request_path --filter 'status == 404'
按总bytes sent最高的前10:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow --order-by 'avg(bytes_sent) * count'
按remote address进行排序前10:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow --group-by remote_addr
显示400或更高返回状态码的且只显示request、status、http_referer这三列信息:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow -i 'status >= 400' print request status http_referer
显示bytes_sent平均值且状态码为200且request_path以vpser开始的前10:ngxtop -l /home/wwwlogs/www.vpser.net.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("vpser")'
大家可以组合前面的命令进行日志的实时监控和日志排查整理,相信ngxtop会给大家带来一些管理上的方便。
VPS论坛邀请码:http://bbs.vpser.net/reg.php?invitecode=39a41e6e55fmGsAG 有效期至:2016-3-25 19:18
© VPS侦探 for VPS侦探, 2016. |
Permalink |
No comment |
Add to
del.icio.us
Post tags: LNMP, Nginx, nginx日志, nginx日志分析, Nginx日志实时监控, ngxtop
美国VPS推荐 | 军哥代购 - 提供美国及海外VPS/VPN/域名代购,美元/欧元代付 QQ:503228080