Zabbix service.discovery 针对不同项目和触发器的多个模板

Zabbix service.discovery 针对不同项目和触发器的多个模板

Zabbix 中的 service.discovery 返回每个主机当前正在运行的所有服务(基于过滤器)的 JSON 数组。

我想创建一个模板层次结构,其中我有一个包含 service.discovery LLD 服务的父模板,然后将此模板添加到子模板中,这些子模板将提取其特定角色所需的相应数据,Skype、MySQL、防病毒软件等等。

automatic or automatic delayed我的父模板通过全局正则表达式查找所有具有状态的服务,并通过模板宏^(automatic|automatic delayed)$ [Result is TRUE]在发现规则(过滤器)下激活。{#SERVICE.STARTUPNAME}

但是在创建子模板时,当我尝试为 Skype 等创建项目和触发器时遇到了障碍。

我已经尝试了宏、预处理(在项目下)以及我能想到的任何其他方法,并广泛阅读了 Zabbix 文档,但没有解决方案。

问题 我的子模板按预期看到了来自父模板的 service.discovery 规则,如何从 JSON 对象中提取 Skype 的所有服务并创建发现项?

问题 在 zabbix 中,每个主机不可能同时配置多个活动的 service.discovery LLD。

答案1

  1. 创建包含 service.discovery 的模板
  2. 为要查找的服务创建一个或多个全局正则表达式

2.1 ^(服务1|服务2|服务3) [结果为 TRUE]

2.2 ^(自动|自动延迟)$ [结果为 TRUE]

  1. 在 service.discovery 规则下添加这些作为过滤表达式

3.1 计算类型 = 表达式的‘And’和‘matches’。

  1. 创建发现项目原型

4.1 名称:{#SERVICE.DISPLAYNAME} ({#SERVICE.NAME}) 是 {#SERVICE.STATENAME}

4.2 密钥:service.info[{#SERVICE.NAME},state]

4.3 显示值:Windows 服务状态

  1. 创建一个新模板,例如 Skype,并将第一个模板链接到 Skype 模板。这使得第二个模板继承 service.discovery 规则
  2. 在 Skype 模板中创建一个新宏 {$SKYPE} = ^Skype
  3. 表达式的评估类型 = 'And/Or' 和 'Matches'
  4. 为主持人激活 Skype 模板

扎比克斯 4.0

相关内容