ngxtop实时监控nginx状态
2024-08-27 09:24:53
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
最新文章
- Hibernate 系列 学习笔记 目录 (持续更新...)
- 初识SpringMvc
- TAC 坦克队
- php 文件日志类
- 几条sql语句
- 1) data-options
- 巧用Session Manager还原Firefox丢失会话
- 挂载nfs系统问题之: Root-NFS: Server returned error -13 while mounting
- PHP学习笔记三十四【记录日志】
- 【点击模型学习笔记】Predicting Clicks_Estimating the Click-Through Rate for New Ads_MS_www2007
- 使用nodeitk进行角点检測
- 尺取法 poj3061 poj3320
- Seafile安装踩坑
- snowflake主键生成策略
- 小白的Python之路 day1 变量
- InnoDB存储引擎介绍-(2)redo和undo学习
- GITC简单感触
- 基于typescript 强大的 nestjs 框架试用
- Nginx教程(6) 负载均衡
- server2012/win8 卸载.net framework 4.5后 无法进入系统桌面故障解决
热门文章
- Oracle数据安全(五)审计
- Java设计模式学习之工厂模式
- 汇编指令与Intrinsics指令的对应关系汇总
- 使用axis2构建webservice
- Effective C++ 条款11:在operator=中处理";自我赋值";
- Caffe实现多标签输入,添加数据层(data layer)
- Spring中<;ref local=";";/>;与<;ref bean=";";/>;区别
- windows开dump
- 全方位解读Java反射(reflection)
- 关于Jupyter Notebook默认起始目录设置无效的解决方法