4 低级发现宏

概述

low-level discovery(LLD)功能中使用了一类宏:

{#MACRO} 

这是一种用于LLD规则的宏,可返回file系统名称、网络接口、SNMP OID等的实际值。

这些宏可用于创建监控项、触发器和图形原型。当发现实际的file系统、网络接口等时,这些宏会被替换为实际值,并成为创建真实监控项、触发器和图形的基础。

这些宏还用于在虚拟机主机原型中创建主机和主机组原型

Zabbix中部分低级发现宏已与LLD功能"预打包"——{#FSNAME}、{#FSTYPE}、{#IFNAME}、{#SNMPINDEX}、{#SNMPVALUE}。但在创建custom低级发现规则时,并不强制要求使用这些名称。您可以使用任何其他LLD宏名称并引用该名称。

支持的位置

LLD宏可用于:

  • 在低级发现规则过滤器中

  • 用于监控项原型的

    • 名称
    • 键参数
    • 单位
    • update间隔1
    • 历史存储周期1
    • 趋势存储周期1
    • 监控项值预处理步骤
    • SNMP OID
    • IPMI传感器字段
    • 计算/聚合监控项表达式,包括:
      • 表达式常量和函数参数
      • 监控项键参数
    • 聚合监控项过滤条件(主机组名称和标签名称)
    • SSH脚本和Telnet脚本
    • 数据库监控SQLquery
    • JMX监控项端点字段
    • 描述
    • HTTPagentURL字段
    • HTTPagentHTTPquery字段字段
    • HTTPagent请求体字段
    • HTTPagent所需状态码字段
    • HTTPagent头部字段键和值
    • HTTPagentHTTP认证用户名字段
    • HTTPagentHTTP认证密码字段
    • HTTPagentHTTP proxy字段
    • HTTPagentHTTP SSL证书file字段
    • HTTPagentHTTP SSL密钥file字段
    • HTTPagentHTTP SSL密钥密码字段
    • HTTPagentHTTP超时1字段
    • 标签
  • 用于触发器原型的

    • 名称
    • 操作数据
    • 表达式(仅限常量和函数参数)
    • URL
    • 描述
    • 标签
  • 用于图形原型的

    • 名称
  • 用于主机原型的

    • name
    • visible name
    • custom interface fields: IP, DNS, port, SNMP v1/v2 community, SNMP v3 context name, SNMP v3 security name, SNMP v3 authentication passphrase, SNMP v3 privacy passphrase
    • host group prototype name
    • host tag value
    • host macro value
    • (see the full list)

在所有这些位置中,除了低级发现规则过滤器外,LLD宏都可以在静态用户macro context内部使用。

使用宏函数

宏函数支持低级发现宏(除低级发现规则过滤器外),允许使用正则表达式提取宏值的特定部分。

例如,出于事件标记目的,您可能希望从以下LLD宏中提取客户名称和接口编号:

{#IFALIAS}=customername_1

为此,可以在触发器原型的事件标记值字段中使用带有宏的regsub宏函数:

请注意,未加引号的监控项键参数中不允许使用逗号,因此包含宏函数的参数必须加引号。反斜杠(\)字符应用于转义参数内的双引号。示例:

net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

有关宏函数语法的更多信息,请参阅:Macro functions

自Zabbix 4.0起,宏函数支持在低级发现宏中使用。

脚注

1 在标记为1的字段中 单个宏必须填满整个字段。不支持在一个字段中使用多个宏或将宏与文本混合使用。