一:相关环境准备:

1.1相关软件以及系统

系统要求:Centos 6及以上(64位)

环境要求:zabbix监控系统(服务端,客户端)

相关中间件:nginx (版本1.6.0及以上)

二:配置zabbix监控nginx

2.1修改nginx配置文件,在server区块添加nginxs状态监控配置,如下所示

location ^~ /ngx_status {
stub_status on;
access_log off;
}
注意:nginx配置nginx状态监控的前提是nginx能够支持此模块,即:http_stub_status_module模块,编译时必须添加此模块

2.2 添加zabbix监控nginx配置,(这里zabbix相关安装目录为:/usr/local),相关操作如下

2.2.1新建nginx状态值获取脚本

由于zabbix监控nginx主要是用到nginx_status状态数值,而要获取到nginx状态数据,就必须要通过脚本来print相关数值,所以我们需要建立一个获取nginx的状态数值的脚本,脚本内容如下:

[root@master ~]# cat /usr/local/bin/nginx_status.sh
#!/bin/bash
case $1 in 
active)
     curl -s http://192.168.56.128/status | awk '/Active/{print $NF}';;
waiting)
     curl -s http://192.168.56.128/status | awk '/Waiting/{print $NF}';;
accepts)
     curl -s http://192.168.56.128/status | awk 'NR==3{print $1}';;
reading) #获取nginx_reading状态的数量
     curl -s http://192.168.56.128/status | grep 'Reading' | awk '{print $2}';;
writing)
     curl -s http://192.168.56.128/status | grep 'Writing' | awk '{print $4}';;
handled)
     curl -s http://192.168.56.128/status | awk NR==3 | awk '{print $2}';;
requests)
     curl -s http://192.168.56.128/status | awk NR==3 | awk '{print $3}';;
esac

编辑zabbix_agent的配置文件:/usr/local/zabbix-agent/etc/zagentd.conf,添加以下内容,引用扩展目录下的配置文件

Include=/usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/*.conf

添加zabbix监控nginx配置,内容如下

[root@master ~]# cat /usr/local/etc/zabbix_agentd.conf.d/nginx_status.conf 
UserParameter=nginx.status[*],/usr/local/bin/nginx_status.sh $1

2.3 赋予脚本执行权限,重启zabbix_agentd 服务

chmod o+x /usr/local/bin/nginx_status.sh
service zabbix_agentd reload

2.4 测试是否能够正常获取到nginx状态相关数据

添加完之后还需要测试server端是否可以收到数据, 在server端zabbix_get测试一下

[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[active]
3
[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[accepts]
52
[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[handled]
53
[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[requests]
1868
[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[reading]
0
[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[writing]
1
[root@master ~]# zabbix_get -s 127.0.0.1 -k nginx.status[waiting]
2

如果获取到数据,说明配置无误,接下来就需要到zabbix页面添加相关监控项。
三:在web页面添加nginx监控项目

登陆zabbix,点击“配置”-“模板”-“创建模板”,如下:

创建一个模板,名称为:“Tempalte App Nginx”

zabbix监控nginx带证书 zabbix监控nginx状态_centos


点击“”新建一个应用集,名称为:“Nginx”

zabbix监控nginx带证书 zabbix监控nginx状态_nginx_02


添加监控Item 项目,相关参数值分别如下:

zabbix监控nginx带证书 zabbix监控nginx状态_zabbix监控nginx带证书_03


此时就完成nginx的第一个监控项目即nginx accepts监控 ,同理其他监控指标依次类推,添加完成后的结果如下:

zabbix监控nginx带证书 zabbix监控nginx状态_zabbix监控nginx带证书_04


添加完监控项后,将此监控模板应用到主机上,然后点击“监测中”-“最新数据”,选择主机,点击应用等30s刷新一下就能看到实时数据了

zabbix监控nginx带证书 zabbix监控nginx状态_nginx_05


zabbix监控nginx带证书 zabbix监控nginx状态_zabbix监控nginx带证书_06