我想通过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"原因很明显。
另一个问题:这样生成的图表根本不像其他现有图表那样可点击。
请让我知道我哪里出错。
答案 0 :(得分:1)
如果您的service.value
密钥生成JSON,则该密钥应仅与LLD规则一起使用。您不应该在其中发送任何值。在原型中使用的密钥应该像任何普通密钥一样,只返回它所要求的值,不要在那里使用LLD生成密钥。
您当前的JSON看起来似乎可以使用内置项进行流程监控,但如果没有其他详细信息,则很难确定。
另请注意,如果您不将参数传递给此密钥,则不需要[*]
定义中的UserParameter
。