【发布时间】:2012-07-02 04:48:00
【问题描述】:
这是否可以从 Ruby 脚本生成新的 Zabbix 事件?有人建议我使用zabbix_sender 脚本,但我找不到任何示例。
另外,我找不到任何与 events 创建相关的 API。
【问题讨论】:
这是否可以从 Ruby 脚本生成新的 Zabbix 事件?有人建议我使用zabbix_sender 脚本,但我找不到任何示例。
另外,我找不到任何与 events 创建相关的 API。
【问题讨论】:
首先创建一些 zabbix trapper 类型的项目,然后你可以通过 zabbix_sender 向它的名称发送一些值。您可以发送一个值或多个带有时间戳的收集数据。 Here are docs.
您也可以编写自己的 zabbix 陷阱发送器。 Protocol 很简单。我在 Python 中做了同样的事情……没有外部命令。
【讨论】:
Zabbix API 不允许按设计更新项目值。
我研究了几个选项*,我从 Ruby 更新 Zabbix 项目值的首选方法是使用miyucy's gist 中的这种方法:
简单错误处理程序示例:
s = Zabbix::Sender.new 'zabbix_server', 10051
zabbix_resp = s.send('host', item_key, value)
if zabbix_resp["response"] != "success" or zabbix_resp["info"].split(';')[1] != " failed: 0"
puts "error: zabbix responded with #{zabbix_resp} when trying to update #{item_key}"
end
*另一种方式的一个例子 - calling zabbix_sender binary
【讨论】: