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

以下是一些内置变量,他们的含义不言自明。使用 ngxtop info 命令也可以查看到可使用的内置变量名

  • body_bytes_sent
  • http_referer
  • http_usera_gent
  • remote_addr
  • remote_user
  • request
  • status
  • time_local

ngxtop print  request  http_user_agent   remote_addr   -l  /usr/local/nginx/logs/access.log

3. ngxtop实例

3.1 实时状态

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

3.2 访问量前十的IP

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

4. 注意事项

4.1 ngxtop单条命令无法执行,提示如下错误提示时:

 Error: Access log file or format was not set and nginx config file cannot be detected. Perhaps nginx is not in your PATH?

方法一:软连接

 ln -sv /usr/local/nginx/sbin/nginx /sbin/
 

方法二:修改环境变量

 # vim /etc/profile

    export PATH=$PATH:/usr/local/nginx/sbin
# source /etc/profile
 

方法三:指定配置文件

# ngxtop -c /usr/local/nginx/conf/nginx.conf 或者还需要指定访问日志文件  -l /usr/local/nginx/logs/access.log

当提示 Error: access log file "logs/accss.log" does not exist 时,修改一下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的更多相关文章

  1. ngxtop实时监控nginx状态

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

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

    关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目 ...

  3. 通过ngxtop实时监控webserver的访问情况 / 解决ImportError: No module named _sqlite3问题

    通过ngxtop实时监控webserver的访问情况 2014-04-03      0个评论    来源:通过ngxtop实时监控web server的访问情况   收藏    我要投稿 关于对ng ...

  4. 一个小工具帮你搞定实时监控Nginx服务器

    Linux运维工程师的首要职责就是保证业务7 x 24小时稳定的运行,监控Web服务器对于查看网站上发生的情况至关重要.关注最多的便是日志变动,查看实时日志文件变动大家第一反应应该是'tail -f ...

  5. Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx

    第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...

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

    Nginx网站服务器在生产环境中运行的时候需要进行实时监控.实际上,诸如Nagios, Zabbix, Munin 的网络监控软件是支持 Nginx 监控的. 如果你不需要以上软件提供的综合性报告或者 ...

  7. zabbix4.2配置监控nginx服务

    1.监控原理 通过status模块监控(--with-http_stub_status_module)  2.修改nginx配置(/etc/nginx/conf.d/default.conf) 在被监 ...

  8. 转载:通过监控Nginx日志来实时屏蔽高频恶意访问的IP

    通过监控Nginx日志来实时屏蔽高频恶意访问的IP   目前在我的VPS上主要通过两种方式来限制ip的访问次数. 通过Nginx的limit_req配置来限制同一ip在一分钟内的访问次数 通过Ngin ...

  9. 如何监控 Nginx?

    什么是 Nginx? Nginx("engine-x")是一个 HTTP 和反向代理服务器,同时也是一个邮件代理服务器和通用的 TCP 代理服务器.作为一个免费开源的服务器,Ngi ...

随机推荐

  1. webpack 打包性能分析工具

    webpack-bundle-analyzer,推荐使用 新版 vue-cli (旧版按照新版的进行配置即可)已经集成该插件,在项目的 package.json 文件中注入如下命令,然后运行(npm ...

  2. Apache Spark 内存管理详解

    在spark里面,内存管理有两块组成,一部分是JVM的堆内内存(on-heap memory),这部分内存是通过spark dirver参数executor-memory以及spark.executo ...

  3. 设置新时间校正服务器NTP SERVER

    时间校正服务器IP : 10.*.*.* 适用系统:windows server 2008/windows 7 net stop w32time net start w32time w32tm /qu ...

  4. mysql联表查询

    2.1 内连接 select a.*,b.* FROM  a INNER join  b  ON a.id = b.id;  查出所有 或者 select a.*,b.* FROM a join b ...

  5. Mysql 性能优化2 系统参数配置方法 和 文件系统

    --------------------------------------------目录------------------------------------------------- • 关于 ...

  6. java正则表达式学习

    1.简单认识正则: public class Test { public static void main(String[] args) { //简单认识正则 p("abc".ma ...

  7. Ubuntu登录系统失败的解决方案

    问题一: 只能用guest用户登录下,如何切换成普通用户登录 解决: 重启,同时按Esc建,直至进入到恢复模式下: 选择第一项,进入: 找到ro...那一行,把ro之后的删除,并把ro修改为rw si ...

  8. 第15章 高并发服务器编程(2)_I/O多路复用

    3. I/O多路复用:select函数 3.1 I/O多路复用简介 (1)通信领域的时分多路复用 (2)I/O多路复用(I/O multiplexing) ①同一线程,通过“拨开关”方式,来同时处理多 ...

  9. 【Linux_Unix系统编程】Chapter8 用户和组

    chapter8 用户和组 8.1 密码文件 /etc/passwd 每行都包含7个字段,之间用冒号分割,如下所示: mtk:x:1000:100:Michael:/home/mtk:/bin/bas ...

  10. Hive基础之Hive是什么以及使用场景

    Hive是什么1)Hive由facebook开源,构建在Hadoop (HDFS/MR)上的用于管理和查询结果化/非结构化的数据仓库:2)一种可以存储.查询和分析存储在Hadoop 中的大规模数据的机 ...