zabbix监控在目前监控中的应用越来越广泛,由于业务的不统一性,及服务器本身的配置差异就造成了针对某同一监控项可能需要不同的报警阈值
举个栗子:
web服务需要较高的网络流量,大数据服务器又比较关注内存及cpu使用,而对于存储服务器可能更在意硬盘使用占有率。
在此教大家一招,针对同一模板同一监控项,在不同应用场景配置不同阈值。往下看🡻
一般通用设置是这样的
具体的监控项具体的阈值,这有很大局限性。不同场景无法修改。那怎么办呢 接着看
这里就不得不提“宏”了 ,具体大家自行百度
宏介绍
宏是一种抽象概念(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}等。
只需简单设置,增加一个变量,格式固定里面内容可以自定义
另外还需要在模板的宏 里面设置一个通用的值。这个的意思就是不修改情况下通用的报警阈值。
这样做的意义就在于有了一个变量,你可以不修改所有设备用一个统一的阈值,也可以在不同的服务器上配置不同的阈值。
然后就可以根据自己的需求,自定义设置阈值了
服务器的宏里设置你想要的值。
同一个监控项,不同的报警阈值,神奇吧。