实验环境说明:
2台虚拟机
VM01角色:Zabbix server ,ubuntu14.04系统,ip:192.168.1.136
VM02角色:zabbix agent,ubuntu14.04系统,IP:192.168.1.135
一、什么是item
Items是从主机里面获取的所有数据。通常情况下我叫itme为监控项,例如我们ttlsa云服务器加入了zabbix监控,我需要监控它的cpu负载,那么实现这个方法的东西就叫item。接下来提到的item都翻译为监控项。
item由key+参数组成,item详细介绍请看下回分析。
监控项中需要获取cpu信息,则需要一个对应的监控key:system.cpu.load。如果是获取网卡流量,那么获取网卡这个监控项需要key:net.if.in或者net.if.out。
一般情况下key要与参数结合起来使用,例如获取5分钟的负载情况:system.cpu.load[avg5],avg5是对应的参数,如果是1分钟则使用avg1,如果是15分钟则使用avg15(有人会问,如果是2分钟是不是avg2,-!-,没有这种说法)。网卡流量net.if.in[eth0],使用eth0作为参数可以获取到eth0网卡的进入流量,同样看一看换成eth1,eth2等等。
二、用户自定义参数
Key的两种的格式
1、key
2、key[接受参数]
#Key可以带参数,该参数为一个数组列表,可以同时传递多个参数
编辑agentd.conf配置文件
root@zabbix-proxy-01:~# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Key自定义语法格式(设置其中一种格式即可)
UserParameter=key,command
UserParameter=key[*] command $1 $2 $3 ….. #$1 $2代表位置参数1、2,如果定义的字符中出现$后面接数字,需要使用$$,例如:awk ‘{print $$2}’
自定义key中对特殊字符的处理
UnsafeUserParameters=0 #默认是无法对特殊字符处理,因此要设置为1
了解一些基本的东西之后,下面来玩个例子
三、自定义key例子
在192.168.1.135机器上做如下配置
1、打开agentd配置文件
root@testweb01:~# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=get.os.type, head -1 /etc/issue # -1是数字1,不是字母l
2、重启agentd
3、在192.168.1.136机器上运行测试命令,查看key
3.1、如没有安装则要安装zabbix-get
Zabbix-get下载地址:http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix/
3.2、安装完成后继续查看key
3.2.1、用zabbix_get命令,查看刚刚自定义的key
root@zabbix-proxy-01:/home/toby# zabbix_get -s 192.168.1.135 -p 10050 -k get.os.type
结果:结果是OK的
注意:get.os.type是自己定义的名称
3.2.2、再做一次测试,回到135的机器上进行再次编辑agentd配置文件
改成命令ifconfig,保存退出后,重启agentd服务
3.2.3、接着回到136的机器,再次查看
结果:也就是说,执行了get.os.type 等价于执行了ifconfig
四、子配置文件的配置
4.1、为了便于维护和分类管理,agentd.conf中的UserParameter的内容可以单独写一个配置文件。
编辑配置文件
root@testweb01:~# vim /etc/zabbix/zabbix_agentd.conf
将红色箭头处的#号注释去掉
Include也就是zabbix_agentd.conf中部分内容的子配置文件路径
4.2、同时把UserParameter= 注释掉
4.3、/etc/zabbix/zabbix_agentd.conf.d/ 目录下的所有配置文件都会被当做子配置文件
目前没有子配置文件
4.4、创建子配置文件
root@testweb01:/etc/zabbix/zabbix_agentd.conf.d# vim get_os.type.conf
添加如下内容:
UserParameter=get.os.type,head -1 /etc/issue
这时候,完成了一个字配置文件
4.5、重启agentd服务
4.5、在136机器上测试key
root@zabbix-proxy-01:~# zabbix_get -s 192.168.1.135 -k get.os.type
结果:测试通过
4.6、也可以再用zabbix_agentd查看key是否被支持(在135机器上操作)
root@testweb01:/etc/zabbix/zabbix_agentd.conf.d# zabbix_agentd -p | grep get\.os
结果:如果能看到key名称,且能获取到数据,说明自定义的key是正确的