zabbix_nginx监控
实验环境
[root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-node1 ~]# cat /etc/hosts 192.168.56.11 linux-node1 linux-node1.example.com 192.168.56.12 linux-node2 linux-node2.example.com [root@linux-node1 ~]# ip a | grep .11 inet 192.168.56.11/24 brd 192.168.56.255 scope global eth0 inet 172.16.0.11/24 brd 172.16.0.255 scope global eth1
[root@linux-node2 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-node2 ~]# cat /etc/hosts 192.168.56.11 linux-node1 linux-node1.example.com 192.168.56.12 linux-node2 linux-node2.example.com [root@linux-node2 ~]# ip a | grep .12 inet 192.168.56.12/24 brd 192.168.56.255 scope global eth0 inet 172.16.0.12/24 brd 172.16.0.255 scope global eth1
在include中创建新的conf文件
[root@linux-node2 ~]# ll /etc/zabbix/ total 12 -rw-r--r-- 1 root root 10353 Aug 27 15:06 zabbix_agentd.conf drwxr-xr-x 2 root root 61 Aug 27 15:20 zabbix_agentd.d [root@linux-node2 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=192.168.56.11 ServerActive=127.0.0.1 Hostname=linux-node2.example.com Include=/etc/zabbix/zabbix_agentd.d/ UnsafeUserParameters=1
创建的conf文件
[root@linux-node2 zabbix_agentd.d]# pwd /etc/zabbix/zabbix_agentd.d [root@linux-node2 zabbix_agentd.d]# cat zabbix_nginx.conf UserParameter=nginx-alive,curl --head -s http://127.0.0.1/ | grep "200 OK" | wc -l
在监控服务器上安装zabbix_get测试是否能获取到值
[root@linux-node1 ~]# yum -y install zabbix-get [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-alive 1
在监控的主机中创建监控项


描述

是否成功
分割线----------------------------------------------------------------------------------------------------------------
在linux-node2上传我们自己写好的脚本
[root@linux-node2 zabbix]# pwd /etc/zabbix [root@linux-node2 zabbix]# ll -rwxr-xr-x 1 zabbix zabbix 1288 Oct 29 17:10 zabbix_nginx_plugin.sh 加上对应的权限
开启zabbix-agent上UnsafeUserParameters=1
[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=192.168.56.11 ServerActive=127.0.0.1 Hostname=linux-node2.example.com Include=/etc/zabbix/zabbix_agentd.d/ UnsafeUserParameters=1
脚本的内容
[root@linux-node2 zabbix]# pwd /etc/zabbix [root@linux-node2 zabbix]# cat zabbix_nginx_plugin.sh #!/bin/bash NGINX_PORT=$1 nginx_active(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}' } nginx_reading(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' } nginx_writing(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}' } nginx_waiting(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}' } nginx_accepts(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}' } nginx_handled(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}' } nginx_requests(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}' } main(){ case $2 in active) nginx_active; ;; reading) nginx_reading; ;; writing) nginx_writing; ;; waiting) nginx_waiting; ;; accepts) nginx_accepts; ;; handled) nginx_handled; ;; requests) nginx_requests; esac } main $1 $2
在linux-node1上
[root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,accepts] 52 [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,reading] 0 [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,writing] 1 [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,waiting] 0 [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,active] 1 [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,handled] 412 [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,requests] 417








链接到监控的主机上

链接上就可以看到主机上的监控项

最后的图形
这样的图形数据差别太大,我们把值大的放到一起
Nginx status1

Nginx status2

创建聚合图形

创建3*3

如果需要什么表格,可以让开发写一个URL

创建幻灯片


浙公网安备 33010602011771号