原理:zabbix监控nginx是根据nginx的Stub Status模块,抓取Stub Status提供nginx的数据,然后拆分
首先要检查一下nginx 是否安装http_stub_status_module
rpm安装的用以下命令检查
- nginx -V
源码安装的用以下命令检查
- /usr/local/nginx/sbin/nginx -V
我这里是rpm安装的,请看图

如果没有安装,网上找一下nginx平滑添加模块
agent机子开始配置nginx_status
nginx添加配置
- vi /usr/local/nginx/conf/nginx.conf
- location /nginx_status
- {
- stub_status on;
- access_log off;
- allow 127.0.0.1;
- allow 192.168.171.22; #(zabbix服务器的IP地址,一般是内网地址,当然也可以不加)
- deny all;
- }
把上面的代码放带可以ip访问的server里
我的nginx直接有这个代码不用修改
用ip访问一下
http://192.168.171.22/nginx_status
看我的访问结果

解释一下上面的结果
Active connections: 2 #对后端发起的活动连接数
server accepts #nginx 总共处理了23个连接
handled #成功创建了23次握手
requests #总共处理了120请求
Reading:0 #nginx读取客户端的header数
Writing: 1 #nginx 返回给客户端的header数
Waiting: 1 #nginx 请求处理完成,正在等待下一请求指令的连接
添加agentd监控nginx的脚本
脚本的内容就是访问http://192.168.171.22/nginx_status的结果拆分
脚本内容我共享出来
nginx_status.sh
这个脚本我放到了/etc/zabbix/scripts/目录下
nginx_status.conf
放到agent的配置目录下,也可以放到agent配置文件里
我放到/etc/zabbix/zabbix_agentd.d目录里(推荐)
也可以放到 /etc/zabbix/zabbix_agentd.conf
在服务端测试一下
- zabbix_get -s 192.168.171.22 -k custom.nginx.connections.waiting
发现ZBX_NOTSUPPORTED: Unsupported item key.的错误

打开
vi /etc/zabbix/zabbix_agentd.conf
把参数UnsafeUserParameters修改成1
UnsafeUserParameters=1
重启一下agent服务器
- service zabbix-agent restart
在执行
- zabbix_get -s 192.168.171.22 -k custom.nginx.connections.waiting
发现
sh: /etc/zabbix/scripts/nginx_status.sh: 权限不够

修改一下nginx_status.sh的权限
- chmod 755 /etc/zabbix/scripts/nginx_status.sh
在测试一下就成功了
模板导入到zabbix web端
zabbix_template.xml

然后使用这个模板


监控图

如果不清楚请加群
QQ交流群:136351212如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息: 转载保留版权:小松博客?
zabbix 监控nginx菜鸟版
本文链接地址:http://www./2063.html
|