Zabbix LLD自定义进程监控项报错

Zabbix LLD custom process monitoring item error

我想通过 Zabbix (v2.4.8) 跟踪我的自定义流程。我正在生成以下 json 对象并通过 UserParameter=service.value[*],/usr/lib/zabbix/externalscripts/custom1.bash:

发送它
{
    "data":[

    {
        "{#NAME}":"ntp",
        "{#VALUE}":"1"
    },
    {
        "{#NAME}":"mysql",
        "{#VALUE}":"1"
    },
    {
        "{#NAME}":"prometheus",
        "{#VALUE}":"0"
    },
    {
        "{#NAME}":"apache2",
        "{#VALUE}":"0"
    }

    ]
}

此外,使用新发现规则在新模板中创建项目原型和图形原型,具有以下信息:

Discovery rule name: Service Graph
Type: Zabbix Agent
key: service.value

Item Prototype name: Service {#NAME} Graph
Type: Zabbix Agent
key: service.value[{#NAME},{#VALUE}]
Type of info: Numeric(Unsigned) & Decimal

当我应用这些设置时,项目不断出现以下错误:

Not supported: Received value [{ "data":[ { "{#NAME}":"ntp", "{#VALUE}":"1" }, { "{#NAME}":"mysql", "{#VALUE}":"1" }, { "{#NAME}":"prometheus", "{#VALUE}":"0" }, { "{#NAME}":"apache2", "{#VALUE}":"0" } ]}] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]

我必须使用这些设置创建图形原型,因此出于显而易见的原因,我不能将类型指定为 "Text"。

另一个问题:这样生成的图表与其他现有图表完全不可点击。

请让我知道哪里出错了。

如果您的 service.value 密钥生成 JSON,那应该只与 LLD 规则一起使用。您不应在其中发送任何值。原型中使用的密钥应该像任何普通密钥一样,它们只 returns 要求的值,不要在那里使用 LLD 生成密钥。

您当前的 JSON 看起来您可以使用内置项目进行进程监控,但如果没有其他详细信息,则很难确定。

另请注意,如果不向此键传递参数,则不需要 UserParameter 定义中的 [*]