自定义监控案例
自定义监控key
语法格式: UserParameter=key,command
UserParameter=key[*],<command>
key里的所有参数,都会传递给后面命令的位置变量
如:UserParameter=ping[*],echo $1
ping[0], 返回的结果都是0
ping[aaa], 返回的结果都是aaa
注意:被监控端修改配置文件,注意要允许自定义key并设置Include!
步骤一:监控Nginx服务状态
1)安装nginx:
[root@zabbixclient_web1 nginx-1.12.2]# yum -y install gcc pcre-devel openssl-devel
[root@zabbixclient_web1 nginx-1.12.2]# cd nginx-1.12.2/
[root@zabbixclient_web1 nginx-1.12.2]# ./configure --with-http_stub_status_module //安装nginx软件,开启status模块
[root@zabbixclient_web1 nginx-1.12.2]# make && make install
[root@zabbixclient_web1 ~]# cat /usr/local/nginx/conf/nginx.conf
… …
location /status {
root html;
index index.html index.htm;
stub_status on;
}
… …
[root@zabbixclient_web1 ~]# nginx -s reload
[root@zabbixclient_web1 ~]# curl http://192.168.2.100/status
Active connections: 1
server accepts handled requests
10 10 3
Reading: 0 Writing: 1 Waiting: 0
2)自定义监控key
[root@zabbixclient_web1 ~]# vim /usr/local/etc/zabbix_agentd.conf.d/nginx.status //创建自定义key
UserParameter=nginx.status[*],/usr/local/bin/nginx_status.sh $1 #/usr/local/bin/nginx_status.sh #此脚本文件将在后面创建
重起zabbix_agentd
[root@zabbixclient_web1 ~]# killall zabbix_agentd
[root@zabbixclient_web1 ~]# zabbix_agentd
//创建/usr/local/bin/nginx_status.sh 脚本文件
[root@zabbixclient_web1 ~]# vim /usr/local/bin/nginx_status.sh //自定义监控脚本,必须该路径
#!/bin/bash
case $1 in
active)
curl -s http://192.168.2.100/status |awk '/Active/{print $NF}';;
waiting)
curl -s http://192.168.2.100/status |awk '/Waiting/{print $NF}';;
accepts)
curl -s http://192.168.2.100/status |awk 'NR==3{print $2 }';;
esac
[root@web1 ~]# chmod +x /usr/local/bin/nginx_status.sh
测试效果:
[root@zabbixclient_web1 ~]#zabbix_get -s 127.0.0.1 -k 'nginx.status[accepts]'
499267
步骤二:创建过程
1)登陆Zabbix监控Web,创建监控项目item,点击 配置 -->模板-->创建模板。并把模板加入nginx_status群组和主机(zabbixclient_web1)加入模板中修改项目参数如图所示。
2)创建应用集
3)创建监控项
4)创建图形:
5)测试