ngxtop:在命令行实时监控 Nginx 的神器

ngxtop:在命令行实时监控 Nginx 的神器

Nginx网站服务器在生产环境中运行的时候需要进行实时监控。实际上,诸如Nagios, Zabbix, Munin 的网络监控软件是支持 Nginx 监控的。

如果你不需要以上软件提供的综合性报告或者长期数据统计功能,只是需要一种快速简便的办法去监控 Nginx 服务器的请求的话,我建议你采用一个叫 ngxtop 的命令行工具。

你马上就会发现 ngxtop 从界面和名称都借鉴了著名的top命令。ngxtop 是通过分析 Nginx 或者其他的日志文件,使用类似 top 命令的界面实时展示出来的。你可以说你知道的其他高端监控工具,但是在简洁这方面 ngxtop 无疑是最好的。简单就意味着不可替代。

本指南中,我将介绍如何使用 ngxtop 实时监控 Nginx 网站服务器。

Linux 上安装 ngxtop

首先在 Linux 系统中安装依赖库pip(LCTT译注:ngxtop是用python编写的)。

然后使用如下命令安装 ngxtop。


  1. $ sudo pip install ngxtop

ngxtop 使用

基本使用方法如下:


  1. ngxtop [options]
  2. ngxtop [options] (print|top|avg|sum) <var>
  3. ngxtop info

这里是一些通用选项。

  • -l : 指定日志文件的完整路径 (Nginx 或 Apache2)
  • -f : 日志格式
  • --no-follow: 处理当前已经写入的日志文件,而不是实时处理新添加到日志文件的日志
  • -t : 更新频率
  • -n : 显示行号
  • -o : 排序规则(默认是访问计数)
  • -a ..., --a ...: 添加表达式(一般是聚合表达式如: sum, avg, min, max 等)到输出中。
  • -v: 输出详细信息
  • -i : 只处理符合规则的记录

以下是一些内置变量,他们的含义不言自明。

  • bodybytessend
  • http_referer
  • httpuseragent
  • remote_addr
  • remote_user
  • request
  • status
  • time_local

使用 ngxtop 监控 Nginx

ngxtop 默认会从其配置文件 (/etc/nginx/nginx.conf) 中查找 Nginx 日志的地址。所以,监控 Nginx ,运行以下命令即可:


  1. $ ngxtop

这将会列出10个 Nginx 服务,按请求数量排序。

显示前20个最频繁的请求:


  1. $ ngxtop -n 20

获取Nginx基本信息:


  1. $ ngxtop info

你可以自定义显示的变量,简单列出需要显示的变量。使用 "print" 命令显示自定义请求。


  1. $ ngxtop print request http_user_agent remote_addr

显示请求最多的客户端IP地址


  1. $ ngxtop top remote_addr

显示状态码是404的请求


  1. $ ngxtop -i 'status == 404' print request status

除了Nginx,ngtop 还可以处理其他的日志文件,比如 Apache 的访问文件。使用以下命令监控 Apache 服务器:


  1. $ tail -f /var/log/apache2/access.log | ngxtop -f common

原文发布时间:2014-06-16

本文来自云栖合作伙伴“linux中国”

时间: 2024-08-04 04:46:49

ngxtop:在命令行实时监控 Nginx 的神器的相关文章

利用ngxtop实时监控nginx的访问情况

关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目前是通过cacti每5分钟取nginx status,实时性也不是很好,记得前一阵为maptail兴奋一点,以为能够解决我的问题,可是他只是漂亮的在地图上显示实时用户的ip地理位置信息,没有其他功能了,不过他的思想很重要---"tail -f log",如今的ngxtop其实也是这种思想,

如何使用 Datadog 监控 NGINX(第三篇)

如果你已经阅读了前面的如何监控 NGINX,你应该知道从你网络环境的几个指标中可以获取多少信息.而且你也看到了从 NGINX 特定的基础中收集指标是多么容易的.但要实现全面,持续的监控 NGINX,你需要一个强大的监控系统来存储并将指标可视化,当异常发生时能提醒你.在这篇文章中,我们将向你展示如何使用 Datadog 安装 NGINX 监控,以便你可以在定制的仪表盘中查看这些指标: NGINX dashboard Datadog 允许你以单个主机.服务.流程和度量来构建图形和警告,或者使用它们的

PHP脚本监控Nginx 502错误并自动重启php-fpm

  这篇文章主要介绍了PHP脚本监控Nginx 502错误并自动重启php-fpm,本文直接给出实现代码,然后放到cron中执行,需要的朋友可以参考下 最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办? 没关系,写个脚本检测服务状态,发现异常,自动重启. 自动重启脚本: 代码如下: $url = 'http://blog.rebill.info'; $cmd = '/usr/local/php/sbin/php-fpm restart

zabbix监控nginx连接状态(转)

zabbix监控nginx zabbix可以监控nginx的状态,关于一个服务的状态可以查看服务本身的状态(版本号.是否开启),还应该关注服务能力(例如以nginx的负载效果:连接数.请求数和句柄数).下面我们使用zabbix监控nginx. nginx的安装 如果想要查看nginx的服务状态,在对nginx进行源码安装的时候要选中–with-http_stub_status_module模块. 1.解压安装包: [root@server5 mnt]# tar xvf nginx-1.6.2.t

如何监控 NGINX(第一篇)

NGINX 是什么? NGINX (发音为 "engine X") 是一种流行的 HTTP 和反向代理服务器.作为一个 HTTP 服务器,NGINX 可以使用较少的内存非常高效可靠地提供静态内容.作为反向代理,它可以用作多个后端服务器或类似缓存和负载平衡这样的其它应用的单一访问控制点.NGINX 是一个自由开源的产品,并有一个具备更全的功能的叫做 NGINX Plus 的商业版. NGINX 也可以用作邮件代理和通用的 TCP 代理,但本文并不直接讨论 NGINX 的那些用例的监控.

用nginx-rrd监控nginx访问数【转】

可以使用cacti.nagios等监控程序监控nginx服务器,不过有时候不用那么复杂,用nginx-rrd就能完成连接.请求的监控功能. 首先编译安装nginx,注意加载stub_status模块,Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定 tar xzvf nginx-1.2.0.tar.gz   cd  nginx-1.2.0   ./configure --pref

Linux:使用sed命令替换时,如何在前面添加四个空格呢

问题描述 Linux:使用sed命令替换时,如何在前面添加四个空格呢 1C sed -i '/Alias admin/c Alias chao' httpd.conf 这个指令是将httpd.conf中包含Alias admin的行替换为了后面的Alias Chao,但是Alias Chao前面还有4个空格,发现用sed替换后,这4个空格没显示,Alias Chao在行首了,如何在Alias Chao前面添加四个空格呢?感谢各位大神能指点一下 解决方案 linux的sed命令使用

Zabbix 监控 Nginx

Zabbix监控Nginx 首先,大家如果看到有什么不懂的地方,欢迎吐槽!!! 我会在当天或者第二天及时回复,并且改进~~ 在添加监控之前,必须要强调的是,Nginx必须支持stub_status状态的访问,不然一切都是空谈!!! 首先zabbix监控nginx 是根据nginx的Stub Status模块,抓取Status模块所提供的数据. 如果想启用Stub Status模块,在编译nginx的时候要加上参数 --with-http_stub_status_module 例如: ./conf

通过zabbix 3.x 监控nginx、php等错误日志并报警

之前也配置过多次zabbix监控日志了,也监控过不少东西,不过自己网站没有这方面内容,今天就填写补充一下这块.今天就拿一个监控nginx前段error中php报错的例子.假设php报错都含有一个字符串:stderr ,我们针对这个进行匹配.   1,添加一个监控项:   注意地方就是类型要选择active.   2,设置触发器 触发器原则有两条:第一是产生数据以后我们要报警,第二是一个时间段没有新报错产生则停止报警.  如果仅仅设置第一个,那么会频繁报警,包括网上一些不靠谱的资料都没有设置这点.