08-zabbix自定义模板6 min read

  • A+
所属分类:Zabbix

 

本文自定义监控Nginx状态模板,模板可以导入可以导出

 

1. 要自定义Nginx的状态模板,首先我们可以先获取nginx的状态,在nginx配置文件中添加如下配置:

  1. // /etc/nginx/nginx.conf  
  2.     server {  
  3.         server_name 127.0.0.1;  
  4.         location /nginx_status{  
  5.                  stub_status on;  
  6.                  access_log off;  
  7.                  allow 127.0.0.1;  
  8.                  deny all;  
  9.                 }  
  10.      }  
  11.   
  12. // 重启nginx服务  
  13. [root@linux-node2 ~]# systemctl restart nginx  
  14.    
  15. // 获取nginx状态  
  16. [root@linux-node2 ~]# curl http://127.0.0.1/nginx_status  
  17. Active connections: 1                      // 正在处理的活动连接数  
  18. server accepts handled requests    // 总共接受的连接/成功创建多少次握手/总共处理了多少请求  
  19.  3 3 3  
  20. Reading: 0 Writing: 1 Waiting: 0   

  

2. 这里我们编写一个脚本能获取Nginx的状态

  1. //  vim /etc/zabbix/zabbix_nginx_plugin.sh    // 编写完脚本要加执行权限和用户和组归zabbix  
  2.   
  3. #!/bin/bash  
  4. NGINX_PORT=$1  
  5. nginx_active(){  
  6.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'  
  7.         }  
  8. nginx_reading(){  
  9.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'  
  10.        }  
  11. nginx_writing(){  
  12.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'  
  13.        }  
  14. nginx_waiting(){  
  15.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'  
  16.        }  
  17. nginx_accepts(){  
  18.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'  
  19.        }  
  20. nginx_handled(){  
  21.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'  
  22.        }  
  23. nginx_requests(){  
  24.         /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'  
  25.        }  
  26.    
  27. main(){  
  28.        case $2 in  
  29.               active)  
  30.                      nginx_active;  
  31.                      ;;  
  32.               reading)  
  33.                      nginx_reading;  
  34.                      ;;  
  35.               writing)  
  36.                      nginx_writing;  
  37.                      ;;  
  38.               waiting)  
  39.                      nginx_waiting;  
  40.                      ;;  
  41.               accepts)  
  42.                      nginx_accepts;  
  43.                      ;;  
  44.               handled)  
  45.                      nginx_handled;  
  46.                      ;;  
  47.               requests)  
  48.                      nginx_requests;  
  49.               esac  
  50. }  
  51.    
  52. main $1 $2  

    

3. 定义zabbux键值key,写配置文件

  1. // vim /etc/zabbix/zabbix_agentd.d/zabbix-nginx.conf  
  2. UserParameter=nginx-status[*],/etc/zabbix/zabbix_nginx_plugin.sh "$1" "$2"  
  3.   
  4. // 说明:此配置中key的*号表示接受所有的参数传给后面的脚本所接的参数,此脚本支持两个参数  

       

4. 配置完重启zabbix-agent

  1. systemctl restart zabbix-agent.service  

 

5. 验证在zabbix-server端看是否能获取nginx状态的值,能获取表示成功

  1. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,accepts]  
  2. 67  

       

6. 在终端配置成功后就可以在zabbix-web界面上添加自定义的模板了

  首先创建模板

  配置步骤:配置---模板---创建模板

08-zabbix自定义模板

 

  配置模板信息

08-zabbix自定义模板

  

  以上模板创建完之后模板还是空白的,我们需要创建东西(应用集--监控项),所以在此找到这个模板创建应用集和监控项。

08-zabbix自定义模板



 

  创建应用集

08-zabbix自定义模板

 

08-zabbix自定义模板

 

  创建监控项(item

08-zabbix自定义模板

 

  编辑配置item

08-zabbix自定义模板

 

然后保存,通过克隆加上他的7item

 

08-zabbix自定义模板

08-zabbix自定义模板

08-zabbix自定义模板

 

最后将剩余的item全部克隆出来如下所示:

08-zabbix自定义模板

 

最后将要监控的主机链接上我们这个自定义的模板:

08-zabbix自定义模板

08-zabbix自定义模板
08-zabbix自定义模板

 

现在可以去监控项看看node2的监控项是否添加成功,也可以看看最新数据下面:

08-zabbix自定义模板

 

到此,自定义模板完成!

 


zhaoyulin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: