【问题标题】:Custom LLD rules自定义 LLD 规则
【发布时间】:2023-03-16 09:25:01
【问题描述】:

我想在 zabbix 中监控我的 pfsense 网关,我需要你的帮助来进行低级发现。 目前,我有一个脚本可以返回一个像这样的 json 对象:

{
  "data":[
    {"{#GATEWAY}":"WAN_SFRGW", "{{#LOSS}}":"0.0"},
    {"{#GATEWAY}":"WAN_NUMERICABLE_DHCP", "{{#LOSS}}":"0.0"}
  ]
}

我在主机设置中创建了发现规则:

  • 名称:网关
  • 类型:Zabbix 代理(主动)
  • 关键:网关

Filters我什么都没有。

那么,如何获取 JSON 中的信息?我试图创建一个项目原型,但在Monitoring -> Overview 中看不到结果。 我想保存数据包丢失,将它们与接口相关联,并在 > X% 时发出警报,但我不知道该怎么做。 我在项目原型中尝试了一些设置,但我不知道如何调试以及是否真的可能。

问候。

【问题讨论】:

    标签: zabbix


    【解决方案1】:

    JSON 中有一个错误:它应该是 {#LOSS} 而不是 {{#LOSS}}

    一旦修复,您就可以创建一个项目原型,如下所示:

    gateway[{#GATEWAY}]
    

    从这个项目原型,将创建以下项目:

    gateway[WAN_SFRGW]
    gateway[WAN_NUMERICABLE_DHCP]
    

    您还可以创建如下触发器原型:

    {host:gateway[{#GATEWAY}].min(#3)} > {#LOSS}
    

    这将创建以下触发器:

    {host:gateway[WAN_SFRGW].min(#3)} > 0.0
    {host:gateway[WAN_NUMERICABLE_DHCP].min(#3)} > 0.0
    

    假设我正确理解了您的意图,希望这能描述总体思路。当然,您需要将 gateway[] 项目替换为实际收集一些数据的项目。

    低级发现的过程在https://www.zabbix.com/documentation/2.4/manual/discovery/low_level_discovery的官方文档中有非常详细的描述。

    【讨论】:

    • {#LOSS} 是丢包的百分比。我可以定义一个常量并执行类似if #gateway.#loss > 20 % => send a mail alert 的操作吗?
    • 如果你希望{#LOSS}是一个item的常量值,你可以定义一个计算item,key gateway[{#GATEWAY}]和{#LOSS}作为表达式。然后您可以创建一个触发器原型 {host:gateway[{#GATEWAY}].min(#3)} > 20。但是,我不确定创建常量项并使用每个 LLD 更改它们是一个很好的 Zabbix 实践。
    • 通常,LLD 仅用于发现项目,而不是填充它们的值。值通常是单独填充的,尽管从技术上讲,常量方法也有效(您应该验证项目是否保留了它们的历史,尽管它们的表达式发生了变化)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2021-04-24
    • 2017-07-25
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多