Zabbix的高级应用


1.展示接口:

 (1)graph:

   simple graph:每个Item对应的展示图形;

   custom graph:创建一个融合了多个simple graph的单个graph;

 (2)screen:

   把多个custom graph整合于一个屏幕进行展示;

 (3)slide show:

   将多个screen以幻灯片的方式进行轮流展示;


(1)graph

创建两个item对入站出站的字节数进行监控

zabbix模板开发 zabbix常用模块_nginx

基于入站监控,可以直接克隆一个出站监控,只需要把in改为out即可。


然后在hosts里面点击Graphs,创建新的graph。

zabbix模板开发 zabbix常用模块_开发工具_02

zabbix模板开发 zabbix常用模块_nginx_03


创建好了,查看graphs可以看到四个监控项,放到了同一张graph里面。

zabbix模板开发 zabbix常用模块_运维_04


(2)screen

新建两个graph

zabbix模板开发 zabbix常用模块_运维_05

zabbix模板开发 zabbix常用模块_nginx_06


在screens里面创建新的screen,然后Edit screen,添加新的graph,即可看到多张graph展示在同一个screen上面。

zabbix模板开发 zabbix常用模块_运维_07

zabbix模板开发 zabbix常用模块_开发工具_08


(3)slide show

如果监控的项目太多,一个screen装不下,可以将多个screen以幻灯片的方式进行轮流展示

创建slide shows,添加两个screen。

zabbix模板开发 zabbix常用模块_zabbix模板开发_09


查看slide shows可以看到两个screen每隔5秒,切换一次,如下两张图。

zabbix模板开发 zabbix常用模块_nginx_10

zabbix模板开发 zabbix常用模块_开发工具_11


2.模板(Template)

一系列配置的集合,它可以方便地快速部署在某个监控对象上,并且支持重复使用;


模板可以继承的,即:在创建模板时,可以链接其他模板;

模板的应用方法:link,unlink,unlink and clear


创建模版

zabbix模板开发 zabbix常用模块_zabbix模板开发_12


在模版中创建一个application监控nginx service


为了监控nginx状态,在nginx的主配置文件的server中添加location监控nginx的状态值。




[root@zrs2 ~]          # vim /etc/nginx/nginx.conf          


                    location           /status           {         


                    stub_status on;         


                    }




重启服务,查看状态


[root@zrs2 ~]          # systemctl restart nginx.service         


          [root@zrs2 ~]          # curl 172.16.1.4/status         


          Active connections: 1          


          server accepts handled requests         


                    1 1 1          


          Reading: 0 Writing: 1 Waiting: 0




监控nginx的状态,需要item的key,默认的没有,需要自定义参数UserParameters


3.自定义参数(UserParameters)

在zabbix-agent端的配置文件中,通过UserParameter指令定义的key;

UserParameter=<key>[*],<command>


nginx自定义参数示例:



vim           /etc/zabbix/zabbix_agentd          .d          /userparameter_nginx          .conf          


          UserParameter=nginx.active,curl -s http:          //172          .16.1.4          /status           |           awk           '/^Active/{print $NF}'         


          UserParameter=nginx.accepts,curl -s http:          //172          .16.1.4          /status           |           awk           '/^[[:space:]]+[0-9]/{print $1}'         


          UserParameter=nginx.handled,curl -s http:          //172          .16.1.4          /status           |           awk           '/^[[:space:]]+[0-9]/{print $2}'         


          UserParameter=nginx.requests,curl -s http:          //172          .16.1.4          /status           |           awk           '/^[[:space:]]+[0-9]/{print $3}'




保存退出,重启服务

[root@zrs2 zabbix_agentd.d]# systemctl restart zabbix-agent.service


在server端查看,可以不用eno查看状态,直接用第二种方法就能获取值



[root@zrs1 ~]          # zabbix_get -s 172.16.1.4 -k net.if.in[eno16777736,bytes]         
          278746802         
          [root@zrs1 ~]          # zabbix_get -s 172.16.1.4 -k nginx.active         
          1         
          [root@zrs1 ~]          # zabbix_get -s 172.16.1.4 -k nginx.accepts         
          3         
          [root@zrs1 ~]          # zabbix_get -s 172.16.1.4 -k nginx.handled         
          4         
          [root@zrs1 ~]          # zabbix_get -s 172.16.1.4 -k nginx.requests         
          5




创建新的item项,可以输入刚才自定义的key,如下

zabbix模板开发 zabbix常用模块_开发工具_13


再创建一个nginx监控项,key的值任然是之前创建的,由于这个数值是不断增长的,需要在preprocessing里面改为Change per second

zabbix模板开发 zabbix常用模块_awk_14


根据accepts监控,直接克隆一个handled和一个requests

zabbix模板开发 zabbix常用模块_开发工具_15

zabbix模板开发 zabbix常用模块_开发工具_16


可以为这几个item创建一个graph

zabbix模板开发 zabbix常用模块_nginx_17


重新创建一个监控nginx的host,把之前的host删除

zabbix模板开发 zabbix常用模块_运维_18



然后在Templates里面添加应用之前创建的模版

zabbix模板开发 zabbix常用模块_运维_19


可以看到,之前创建的4个item和一个graph都已经应用了

zabbix模板开发 zabbix常用模块_zabbix模板开发_20



51CTO博客,原文链接:http://blog.51cto.com/12667170/2045099