黑帽联盟

 找回密码
 会员注册
查看: 1356|回复: 0
打印 上一主题 下一主题

[运维监控] zabbix用户宏变量详解macro

[复制链接]

852

主题

38

听众

3175

积分

白金VIP

Rank: 8Rank: 8

  • TA的每日心情
    开心
    2024-3-7 12:52
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

    zabbix宏变量让zabbix变得更灵活,变量可以定义在主机、模板以及全局,变量名称类似:{$MACRO},宏变量都是大写的。认识了宏变量,你会感叹zabbix越发的强大。

    变量可以用于如下地方:
    item名称
    item key参数
    触发器名称和描述
    触发器表达式
    其他地方
    宏名称

    宏变量名称定义只允许后面包含后面的字符: A-Z , 0-9 , _ , .
    zabbix宏变量优先级:

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

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

    自定义宏

    定义全局宏, Administration → General → Macros,例如宏名称${TTLSA_SITE},值bbs.cnblackhat.com.
    定义主机/模板级宏变量,编辑主机或者模板,找到Macros选项卡,定义宏变量
    宏变量经常用于替代账号、端口、密码等,例如你的某个监控想有用到账号、密码,可以定义为宏,假如下次账号密码有修改,只需要修改宏即可。而不需要每个监控项都去修改账号密码。
    宏变量使用实例

    示例一
    主机SSH服务:
    net.tcp.service[ssh,{$SSH_PORT}]
    如果你监控的ssh端口可能会有不同,那么你只需要定义host级别宏变量SSH_PORT


    示例二
    主机CPU负载触发器
    {ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}
    例如有三台主机A\B\C,A主机定义的MAX_CPULOAD为1,B定义的MAX_CPULOAD为2,C定义MAX_CPULOAD为3,这三台link同一个模板即可。


    示例三
    主机CPU负载触发器(使用2个宏)
    {ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}
    宏可以作为function的一个参数。

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部