日常生产环境搭建了Nginx集群后,就需要继续深入研究的就是日常Nginx监控。
Nginx如何监控?相信百度就可以找到:nginx-status
通过Nginx-status,实时获取到Nginx监控数据后,如何和现有监控系统集成?一个很好的解决方案:
Nginx+Telegraf+Influxdb+Grafana
即通过Telegraf监控插件定时收集Nginx的监控状态,存储到时序数据库Influxdb中,然后通过Grafana展现即可。
一、Nginx启用nginx-status功能
源码编译安装的nginx,那么需要在编译的时候加上对应的模块
./configure --with-http_stub_status_module
使用 ./configure --help 能看到更多的模块支持。然后编译安装即可。
如果是直接 apt-get install 安装的 nginx,那么使用命令来查看是否支持 stub_status 这个模块。
如下命令: nginx –V 看看是否有 --with-http_stub_status_module 这个模块。
![cf81211e66d031036305b6595b72e9fa.png](https://i-blog.csdnimg.cn/blog_migrate/8bab0cae08f83be1f37dbd764f254d00.jpeg)
修改Nginx配置文件:在Server章节中增加:
location /nginx-status { allow 127.0.0.1; //允许的IP deny all; stub_status on; access_log off;}
Reload 重启Nginx,查看Nginx-Status
![f85c71d2f950f7cce373d6e9c3ca70ec.png](https://i-blog.csdnimg.cn/blog_migrate/15c02a3bb19f719beb1829fbf787cd8c.jpeg)
输出信息的说明:
active connections – 活跃的连接数量server accepts handled requests — 总共处理了11989个连接 , 成功创建11989次握手, 总共处理了11991个请求reading — 读取客户端的连接数writing — 响应数据到客户端的数量waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.
二、Telegraf安装配置Nginx监控
关于Telegraf的安装,请参考官方介绍
https://www.influxdata.com/time-series-platform/telegraf/
![e9ae5c82763f0f9e68f4afce5da62f25.png](https://i-blog.csdnimg.cn/blog_migrate/2414fc300b282cdaf38e579bc9824b68.jpeg)
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.4.3-1.x86_64.rpmsudo yum localinstall telegraf-1.4.3-1.x86_64.rpm
然后,在配置文件teldgraf.conf中配置Influxdb连接
![05f194f0535873bd53eb0389c979314a.png](https://i-blog.csdnimg.cn/blog_migrate/dcbcf7ce1148b09d29115a155f23a3a8.jpeg)
增加对Nginx的监控
![c0264df43aeb9254ac4ec598789eeea8.png](https://i-blog.csdnimg.cn/blog_migrate/4cbcfbdf0e022c0369f6e3ad105e86c3.jpeg)
配置完成,重启telegraf服务即可。
三、Grafana集成Nginx监控
Grafana中支持Influxdb数据源,配置上上个步骤的Influxdb数据源之后,我们定制Nginx监控图表:
数据源:Influxdb
FROM:nginx
SELECT:field(accepts)
![692404d241a077e15930754ddcb5c9a9.png](https://i-blog.csdnimg.cn/blog_migrate/1fc2fe3134f752f80a934577cebe42ef.jpeg)
![63507d96f712cced5391052ee4bed34b.png](https://i-blog.csdnimg.cn/blog_migrate/a9fb8bb44953bfbdce8c486ee9190033.jpeg)
展现效果:
![e6fbd6fc4c9267c48e91790d8d47fdd7.png](https://i-blog.csdnimg.cn/blog_migrate/6e4a89b3b188105ce859da0f83b97dae.jpeg)
以上我们通过Nginx+Telegraf+Influxb+Grafana,实现了Nginx的监控,非常方便。
你们在日常实际生产环境对Nginx的状态监控使用的是何种技术?
欢迎留言分享你的经验。
作者:周国庆
原文:https://www.cnblogs.com/tianqing/p/7745436.html