zabbix监控nginx服务
环境介绍:
172.25.40.11:
zabbix-server
Zabbix-agent
172.25.40.6:
Zabbix-agent
nginx-1.14.0
1.首先查看 nginx 是否加入状态监控模块
Nginx -V
2.配置 nginx.conf
location /status {
stub_status on;
access_log off;
allow 172.25.40.0/24;
allow 172.25.40.11;
#
allow all;
deny all;
}
3.查看nginx状态:
curl 172.25.40.6/status
或者,
4.编写脚本获取上面的 key 值
vim /etc/zabbix/script/nginx_status.sh
#!/bin/bash
case $1 in
active)
curl -s http://172.25.40.6/status | awk '/Active/ {print $3}' ;;
accepts)
curl -s http://172.25.40.6/status | awk 'NR==3 {print $1}' ;;
handled)
curl -s http://172.25.40.6/status | awk 'NR==3 {print $2}' ;;
requests)
curl -s http://172.25.40.6/status | awk 'NR==3 {print $3}' ;;
reading)
curl -s http://172.25.40.6/status | awk '/Reading/ {print $2}' ;;
writing)
curl -s http://172.25.40.6/status | awk '/Writing/ {print $4}' ;;
waiting)
curl -s http://172.25.40.6/status | awk '/Waiting/ {print $6}' ;;
*)
echo "Usage: $0 { active | accepts | handled | requests | reading | writing | waiting }" ;;
esac
## -s 静默模式,如果不加 -s 参数,则获取到的结果是不正确的
5.添加自定义 key 配置文件
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
## Nginx_status
UserParameter=nginx.active,/etc/zabbix/script/nginx_status.sh active
UserParameter=nginx.accepts,/etc/zabbix/script/nginx_status.sh accepts
UserParameter=nginx.handled,/etc/zabbix/script/nginx_status.sh handled
UserParameter=nginx.requests,/etc/zabbix/script/nginx_status.sh requests
UserParameter=nginx.reading,/etc/zabbix/script/nginx_status.sh reading
UserParameter=nginx.writing,/etc/zabbix/script/nginx_status.sh writing
UserParameter=nginx.waiting,/etc/zabbix/script/nginx_status.sh waiting
6.重启 Zabbix_agentd
/etc/init.d/zabbix-agent restart
7.Zabbix 服务端测试能否拿到 Key
安装 zabbix_get
zabbix_get -s 172.25.40.6 -k nginx.active
8.Zabbix 监控 Nginx 状态–Web 端操作
首先添加server6主机,然后添加模版选择导入事先写好的模版文件
vim zbx_nginx_templates.xml
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>3.2</version>
<date>2017-08-01T02:19:26Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template Nginx Status</template>
<name>Template Nginx Status</name>
<description>nginx 監控</description>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>nginx status</name>
</application>
</applications>
<items>
<item>
<name>Nginx Active</name>
<type>0</type>
<snmp_community/>
<multiplier>0</multiplier>
<snmp_oid/>
<key>nginx.active</key>
<delay>30</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<delta>0</delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_priv