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

标签: VPS管理维护 LNMP Nginx nginx日志 nginx日志分析 | 发表时间:2016-03-21 15:18 | 作者:VPS侦探
出处:http://www.vpser.net

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

美国VPS推荐 | 军哥代购 - 提供美国及海外VPS/VPN/域名代购,美元/欧元代付 QQ:503228080

相关 [nginx 日志 实时] 推荐:

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

- - VPS侦探
要实时查看日志文件变动我们首先想到的应该是tail -f /path/to/log,但是这样看网站的访问日志是相当崩溃的,好一点可以写个脚本进行筛选,但是大部分人还是不擅长的,今天 VPS侦探就推荐给大家一个Nginx日志工具: ngxtop. 说起top工具有很多如: iftop、htop、ntop等,今天说的ngxtop功能也毫不逊色,不仅能实时监控Nginx日志的访问还可以对以前的日志进行排查整理.

nginx日志切割

- - haohtml's blog
nginx的日志文件没有rotate功能. 如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件. 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志. 在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件.

Nginx 日志滚动

- - Linux - 操作系统 - ITeye博客
Nginx 日志滚动配置. 在linux下配置日志滚动一般都用系统自带的logrotate,但是在之前的使用中发现,如果一个daemon只打开一个日志文件写日志,在logroate的配置文件中使用copytruncate,会有少部分日志丢失. 在对日志要求不是特别严格的情况下这是可行的,但有时候这丢失的几行日志很重要,就需要一个比较严格的日志滚动方法.

nginx cronolog日志分割

- 伟伟 - 高进波博客 - 零起点一步配置你的linux服务器,linux博客,linux教程,web架构 [expanded by feedex.net]
八月 3rd, 2011 Posted in Nginx | 阅读次数: 8 次. nginx cronolog日志分割配置文档,根据下面方法,每小时分割一次NGINX访问日志. cronolog必须在nginx启动前启动,如果是ubuntu,可以将cronolog配置那行写到/etc/init.d/nginx start函数那.

nginx 日志文件切割

- - 企业架构 - ITeye博客
转载: http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html. 偶然发现access.log有21G大,所以将其切割. Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点. 但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.

goaccess分析nginx日志

- - C1G军火库
GoAcces是一款实时日志分析工具. 目前,我们可以通过这款软件查看的统计信息有:. 静态web请求,如图片、样式表、脚本等. 支持超大日志(分析速度很快). GoAccess的基本语法如下:. -b – 开启流量统计,如果希望加快分析速度不建议使用该参数. -s – 开启HTTP响应代码统计. -a – 开启用户代理统计.

shell脚本分析nginx日志

- - 互联网 - ITeye博客
以下脚本都是基于上面日志格式的,如果你的日志格式不同需要调整awk后面的参数. 分析日志中的UserAgent. 上面的脚本将分析出日志文件中最多的20个UserAgent. 分析日志中那些IP访问最多. 分析日志中那些Url请求访问次数最多. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

shell 分析nginx日志 - 简书

- -
通过日志查看当天访问页面排前10的. 通过日志查看当天ip连接数,统计ip地址的总连接数. 通过日志查看当天访问次数最多的10个IP ,只需要在上一个命令后加上head命令. 通过日志查看当天指定ip访问次数过的url和访问次数. 通过日志查看当天访问次数最多的时间段.

Nginx日志分析常用脚本 |

- -
IP相关统计 统计IP访问量(独立ip访问数量). 查看某一时间段的IP访问量(4-5点). 查看访问最频繁的前100个IP. 查询某个IP的详细访问情况,按访问频率排序. 页面访问统计 查看访问最频的页面(TOP100). 查看访问最频的页面([排除php页面】(TOP100). 查看页面访问次数超过100次的页面.

如何挖掘Nginx日志中隐藏的金矿?

- - 运维派
对很多开发运维人员来说,Nginx日志文件在被删除前可能都不会看上一眼. 但实际上,Nginx隐藏了相当丰富的信息,或许其中便蕴含着未知的金矿等你挖掘. Nginx(读作Engine-X)是现在最流行的负载均衡和反向代理服务器之一. 如果你是一名中小微型网站的开发运维人员,很可能像我们一样,仅Nginx每天就会产生上百M甚至数以十G的日志文件.