ngxtop实时监控nginx状态

ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop。有了ngxtop,你可以实时了解到当前nginx的访问状况,再也不需要tail日志看屏幕刷新。

1. 安装ngxtop

1.1 源码安装

1

2

3

4

5

6

# wget https://github.com/lebinh/ngxtop/archive/master.zip -O ngxtop-master.zip

# unzip ngxtop-master.zip

# cd ngxtop-master

# python setup.py install

...省略....

Finished processing dependencies for ngxtop==0.0.1

//看到如上输出表示安装成功,安装过程需要网络支持

1.2 ngxtop安装

1

pipinstallngxtop

2. ngxtop使用详解

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

# 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‘

总流量前十的请求

$ ngxtop --order-by ‘avg(bytes_sent) * count‘

访问量前十的ip地址

$ ngxtop --group-by remote_addr

输出400以上状态吗的请求以及请求来源

$ ngxtop -i ‘status >= 400‘ print request status http_referer

Average body bytes sent of 200 responses of requested path begin with ‘foo‘:

$ ngxtop avg bytes_sent --filter ‘status == 200 and request_path.startswith("foo")‘

使用common日志格式分析远程服务器Apache访问日志

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

3. ngxtop实例

3.1 实时状态

1

# ngxtop -c /usr/local/nginx-1.5.2/conf/nginx.conf

ngxtop

3.2 访问量前十的IP

1

# ngxtop -c /usr/local/nginx-1.5.2/conf/nginx.conf top remote_addr

ngxtop

4. 注意事项

4.1 ngxtop单条命令无法执行

1

2

3

# ngxtop

Error:Accesslogfileorformatwasnotsetandnginx

configfilecannotbedetected.PerhapsnginxisnotinyourPATH?

意识说nginx执行文件要加到PATH路径中,

方法一:软连接

1

# ln -s /usr/local/nginx-1.5.2/sbin/nginx /sbin/

方法二:修改环境变量

1

2

3

4

# vim /etc/profile

exportPATH=$PATH:/usr/local/nginx-1.5.2/sbin

# source /etc/profile

方法三:指定配置文件

1

# ngxtop -c /usr/local/nginx-1.5.2/conf/nginx.conf

4.2 虚拟主机配置文件必须在nginx.conf主配置中

一般情况下,我们会将虚拟主机单独写到一个配置文件中,然后nginx.conf做个include。例如我们站点www.ttlsa.com

配置文件:/usr/local/nginx-1.5.2/conf/vhost/www.ttlsa.com.conf

再nginx.conf的http段中添加include vhost/*.conf

这种情况下ngxtop不支持,必须要保证所有配置都在nginx.conf中才行。不知道是否我哪里理解不对,如果是的话,知道的兄弟留言告知。本人在此感激不尽。

5. 结束

ngxtop非常实用,值得推荐。

项目地址:https://github.com/lebinh/ngxtop

时间: 2024-10-21 06:36:03

ngxtop实时监控nginx状态的相关文章

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

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

使用ngxtop实时监控nginx

Ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop.有了ngxtop,你可以实时了解到当前nginx的访问状况,再也不需要tail日志看屏幕刷新. 首先在 Linux 系统中安装依赖库pip(ngxtop是用python编写的). 1.安装ngxtop #yum install python python-pip -y #yum install ngxtop  -y 2. ngxtop使用详解 # ngxtop --help

Zabbix 监控 Nginx 状态

1.获取 Nginx 状态条件( 需要nginx安装模块) [localhost]#/usr/local/nginx/sbin/nginx -V nginx version: nginx/1.8.0built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_sta

zabbix监控nginx状态

一.zabbix客户端配置 首先修改一下zabbix客户端的配置,习惯上将zabbix的配置文件拷贝到自建的/etc/zabbix/目录,方便管理: [[email protected] ~]# sed -e '/^$/d;/^#/d'  /etc/zabbix/zabbix_agentd.conf PidFile=/tmp/zabbix_agentd.pid LogFile=/tmp/zabbix_agentd.log Server=192.168.199.79 ServerActive=12

Zabbix之监控Nginx状态信息

Zabbix 之监控Nginx状态信息 nginx需要支持 http_stub_status_module 编译的时候需要使用--with-http_stub_status_module yum默认支持此选项 1. 配置nginx stuats 源码: vim nginx.conf yum: vim /etc/nginx/conf.d/default.conf #and add the following to your server block location /nginx_status {

zabbix监控nginx 状态

利用zabbixt监控nginx的各种状态,达到对nginx的实时监控: 一,首先需要开启nginx的nginx_status模块 开启nginx_status功能:  location /nginx_status{     stub_status on;     access_log off;     allow 192.168.1.113;  访问IP     deny all;   } 访问: http://192.168.1.113/nginx_status 需要写一个脚本在被监控机上跑

Zabbix快速部署及自定义Item监控Nginx状态原理

监控软件的选择 1)Nagios 优点:监控协议多.完善的告警机制.服务抖动检测 缺点:只能在终端配置.基于文件的配置方式.不方便扩展.易读性差.管理耗时 2)Cacti 优点:多样的图形化数据.历史数据存储.趋势对比 缺点:报警机制不完善.只支持集中式数据监控 3)Zabbix 优点:集合了Nagios和Cacti大部分优点,功能强大:特别是在针对集群机器较多.业务环境复杂和跨机房监控方面有优势(proxy收集功能) 缺点:部署稍微复杂,不支持服务抖动检测等... Zabbix特点 · 多种数

zabbix专题:第九章 自定义key(案例:监控内存,监控nginx状态)

第九章 自定义key 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 为什么要自定义KEY 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter. 语法如下: UserParameter=key,command 用户自定义参数包含一个key和一个命令,ke

iOS实时监控网络状态的改变

在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI网络:自动下载高清图片 4G/3G网络:只下载缩略图 没有网络:只显示离线的缓存数据 常用的有以下两种方法: (1).使用苹果观法提供的检测iOS设备网络环境用的库 Reachablity (2).使用AFN框架中的AFNetworkReachabilityManager来监听网络状态的