我们需要监视数据库表以查看系统中操作的响应时间。如果响应时间高于阈值,我们需要发送警报,其中包含操作的详细信息:action_type,action_name和其他。
Zabbix可以实现吗?
我尝试使用以下sql创建数据库监视器项:
select action_type, action_name, window_title, response_time from db.table order by action_timestamp desc limit 1;
我希望Zabbix能够存储并显示select中的所有字段,但它只获得第一个值(for action_type)而不是所有字段。
有没有办法用Zabbix做到这一点?这对我们来说几乎是必须的,所以如果我们不能这样做,我们就必须使用不同的监控工具。
编辑:这是创建的Action
的通知语法,希望在触发器后发送的通知中使用多个值(来自多个项目)。我的问题是,这是正确的语法吗?我尝试在Item values:
下面使用多个项目吗?
Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}
Item values:
1. Action name: {"Item ##5 Name"} ("Zabbix_server"}:{ITEM.KEY1}): {ITEM.VALUE1}
2. Window type: {"Item ##2 Name"} ("Zabbix_server"}:{ITEM.KEY2}): {ITEM.VALUE2}
Original event ID: {EVENT.ID}
答案 0 :(得分:2)
如果查询返回多个列,则只有第一列 读取。
参考:https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/odbc_checks
=>由于Zabbix设计,您无法开箱即可为每个项目处理多个值。您仍然可以为每个字段创建一个项目/查询。
您可以使用一些解决方法(zabbix UserParameter return 2 or more values),但您会遇到其他限制。