Zabbix 2.4 - 宏的设置

前言

在之前的文章中,我主要介绍了Zabbix经常用到的功能。下面我将介绍一些Zabbix的宏的设置。

什么是宏?

1、宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式,而解释器或编译器在遇到宏时会自动进行这一模式替换。
2、类似地,zabbix基于宏保存预设文本模式,并且在调用时将其替换为其中的文本。
3、zabbix有许多内置的宏,如{HOST.NAME}、{HOST.IP}、{TRIGGER.DESCRIPTION}、{TRIGGER.NAME}、{TRIGGER.EVENTS.ACK}等。
4、为了更强的灵活性,zabbix还支持在全局、模版或主机级别使用用户自定义宏(user macor)
5、用户自定义宏要使用“{$MACRO}”这种特殊的语法格式。
6、宏可以应用在item keys和descriptions、trigger名称和表达 式、主机接口IP/DNS及端口、discovery机制的SNMP协议 的相关信息中等。


宏的级别

在Zabbix中,宏分为三个级别,其优先级如下所示

Host --> Template --> Global


全局宏的设置:

点击”Administration” –> “General” –> “Macros”:

zabbix-macro

在里面直接添加宏与其相对应的值即可。

zabbix-macro


模版宏的设置:

点击”Configuration” –> “Templates “ –> “选择一个模版” –> “Macros”:

zabbix-macro

直接定义宏即可,此宏仅会对模版内的主机生效。


主机宏的设置:

此宏只能在Agent端设置,并且要写在zabbix_agentd.conf的配置文件中,或者在zabbix_agentd.d目录下创建一个.conf文件,用于专门定义宏

宏的语法格式为:

UserParameters=<key>,<command>

例如:

[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.d/os.conf

1
2
3
UserParameter=os.memory.used,free -m | awk '/^Mem/ {print $3}'
UserParameter=os.memory.free,free -m | awk '/^Mem/ {print $4}'
UserParameter=os.memory.total,free -m | awk '/^Mem/ {print $2}'

在设置itme的key时,输入os.memory.used,即可监控已经使用的内存大小,其余同理。

当然也可以设置能够传参的宏

1
UserParameter=mysql.processlist[#],mysql -e "SHOW PROCESSLIST" | grep "$1" | wc -l

使用[#]表示可以传递参数给mysql.processlist,示例中给的是获取特定用户的mysql线程数。

设置完成后,记得要重启zabbix-agent方能生效。

[root@node1 ~]# service zabbix-agent restar


由于最近工作繁忙,写博客的时间有限,在此就不做验证配置了,如对上面的参数或设置有问题,可以给我发送邮件或联系QQ:779834367。

分享到 评论