zoukankan      html  css  js  c++  java
  • 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在找不到主机宏时就会自动使用模板宏。

  • 相关阅读:
    C语言 · 最小公倍数
    SSH实战 · SSH项目开发环境搭建
    C语言 · 回文数
    C语言 · 特殊回文数
    C语言 · 查找整数
    SSH实战 · SSH项目中怎么玩验证码
    SSH实战 · JAVA发送邮件相关
    SSH实战 · AJAX异步校验
    C语言 · 打印1-200之间的素数
    Jenkins权限设计错误解决办法
  • 原文地址:https://www.cnblogs.com/xiami-xm/p/7427469.html
Copyright © 2011-2022 走看看