zabbix宏(macro)使用:自定义监控阈值

一.简单应用场景

zabbix在监控cpu load时并没有考虑客户端cpu的个数和核心数量,当平均5分钟的负载达到5时zabbix执行报警动作,这样是非常不合理的,笔者的被监控机器有四核和单核,现在单核机器我希望阈值仍然是5,四核机器192.168.17.107上调为10,怎么办呢?用宏变量可以很好的解决这个问题

 

二.宏介绍

宏是一种抽象概念(Abstraction),它根据一些列预定义的规则替换一定的文本模式,而解释或编译器在遇到宏时会自动进行这一模式替换。类似地,zabbix基于宏保存预设文本模式,并且在调用时将其替换为其中的文本。

zabbix宏变量优先级:

  • 主机宏(checked first)
  • 主机模板定义的宏,如果有多个模板,那么按照模板越靠前那么宏的优先级越高
  • 全局宏(checked last)

换句话说,zabbix找一个宏的值,首先检查hosts有没有,如果没有那么找当前主机的第一个模板,如果还不在找第二个模板,一直到最后一个模板,如果还是没有找到那将会使用全局宏。如果全局宏也不存在,那么宏变量不会被替换掉。

自定义宏

定义全局宏, Administration → General → Macros,zabbix3.2中已有的全局宏名称{$SNMP_COMMUNITY},值public

定义主机/模板级宏变量,编辑主机或者模板,找到Macros选项卡,定义宏变量

宏变量经常用于替代账号、端口、密码等,例如你的某个监控想有用到账号、密码,可以定义为宏,假如下次账号密码有修改,只需要修改宏即可。而不需要每个监控项都去修改账号密码。

宏的命名规范:大写字母、数组、下划线的组合,只能大写字母开头。

内置{MACRO}    不需要加$就可以引用:

zabbix有许多内置的宏,如{HOST.NAME}、{HOST.IP}、{TRIGGER.DESCRIPTION}、{TRIGGER.NAME}、{TRIGGER.EVENTS.ACK}等。

三.宏变量使用

3.1 上调四核机器192.168.17.107cpu load阈值到10

 

 

 

 

3.2 设置单核机器cpu load阈值为5

Template OS Windows模板的cpu load阈值已经从5被改动为宏变量,这将会影响其他使用这个模板的主机,使用该模板的主机都得像四核机器一样单独设置一个宏变量,是不是十分不方便?

其实可直接在模板中定义一个宏变量,这样zabbix在找不到主机宏时就会自动使用模板宏。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值