使用来自不同模板的项目创建 Zabbix 触发器
Creating Zabbix trigger with item from different template
我在 Template A
中有一个项目,我想只为一部分配置了 Template A
的主机设置触发器。
我不想在 Template A
上创建触发器并为我不需要它的主机手动禁用它(我有太多主机,可能需要额外的触发器,可能需要罚款-调整(重新启用它们)),所以我创建了 Template B
并分配给了我想要新触发器的主机。
我试过...
用表达式 {Template B:item}>value
创建一个触发器,但是 Zabbix 抱怨说 Template B
没有这样的项目(如果只考虑这个模板但 Template A
是也分配给所有主机)。而且我无法在 Template B
中创建项目,因为它与其他项目冲突。
在 Template B
上创建触发器并引用 Template A
中的项目,但触发器已移至 Template A
并应用于所有主机。
为 Template B
创建一个宏,将其分配给我需要的主机,并使用表达式 {$MACRO_NAME}=1 and {Template A:item}>limit
.[=24 向 Template A
添加一个新触发器=]
这种情况的正确解决方案是什么?
(如果重要,服务器和主机是 运行 Zabbix 3.2.1 版和 Debian Linux。)
正常流程是这样的:
- Link
Template B
到 Template A
。
- 仅在所需主机上应用
Template B
。
- 为
Template A
中的项目创建触发器到 Template B
。
- (第 3 步的)触发器应仅针对(第 2 步的)所需主机调用,而不应在未应用
Template B
的情况下调用。
the trigger moved to Template A and got applied to all hosts
的说法似乎不正确。
您可以使用 Macro。
在您的模板中定义一个宏,并根据主机更改此宏的值。
您可以使用 zabbix api 更改宏的值。
我在 Template A
中有一个项目,我想只为一部分配置了 Template A
的主机设置触发器。
我不想在 Template A
上创建触发器并为我不需要它的主机手动禁用它(我有太多主机,可能需要额外的触发器,可能需要罚款-调整(重新启用它们)),所以我创建了 Template B
并分配给了我想要新触发器的主机。
我试过...
用表达式
{Template B:item}>value
创建一个触发器,但是 Zabbix 抱怨说Template B
没有这样的项目(如果只考虑这个模板但Template A
是也分配给所有主机)。而且我无法在Template B
中创建项目,因为它与其他项目冲突。在
Template B
上创建触发器并引用Template A
中的项目,但触发器已移至Template A
并应用于所有主机。为
Template B
创建一个宏,将其分配给我需要的主机,并使用表达式{$MACRO_NAME}=1 and {Template A:item}>limit
.[=24 向Template A
添加一个新触发器=]
这种情况的正确解决方案是什么?
(如果重要,服务器和主机是 运行 Zabbix 3.2.1 版和 Debian Linux。)
正常流程是这样的:
- Link
Template B
到Template A
。 - 仅在所需主机上应用
Template B
。 - 为
Template A
中的项目创建触发器到Template B
。 - (第 3 步的)触发器应仅针对(第 2 步的)所需主机调用,而不应在未应用
Template B
的情况下调用。
the trigger moved to Template A and got applied to all hosts
的说法似乎不正确。
您可以使用 Macro。 在您的模板中定义一个宏,并根据主机更改此宏的值。
您可以使用 zabbix api 更改宏的值。