在 Zabbix 中监控一个 Item 中的多个值

Posted

技术标签:

【中文标题】在 Zabbix 中监控一个 Item 中的多个值【英文标题】:Monitor multiple values within one Item in Zabbix 【发布时间】:2015-10-09 06:19:18 【问题描述】:

我们需要监控数据库表,以了解系统中某个操作的响应时间。如果响应时间超过阈值,我们需要发送包含操作详细信息的警报: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 中的所有字段,但它只获取第一个值(用于 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 

【问题讨论】:

【参考方案1】:

如果查询返回多列,则只有第一列是 阅读。

参考:https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/odbc_checks

=> 因为 Zabbix 的设计,您不能在开箱时为每个项目处理多个值。您仍然可以为每个字段创建一个项目/查询。

您可以使用一些解决方法 (zabbix UserParameter return 2 or more values),但您会遇到其他限制。

【讨论】:

我正在考虑为每个值创建一个项目,然后在一个值超过阈值时设置一个触发器和通知。在这种情况下,我能否将其他项目的值传递到通知中?这有意义吗? 如果您的项目是触发条件的一部分,那么您可以在通知中使用项目值。因此,您可以为只想在通知中使用的项目添加始终为真条件。 谢谢,Jan。我用 Zabbix 文档给出的通用示例编辑了这个问题。看起来这可以处理多个值?我的“项目值”语法对于多个项目是否正确?

以上是关于在 Zabbix 中监控一个 Item 中的多个值的主要内容,如果未能解决你的问题,请参考以下文章

使用zabbix监控nginx的活动连接数

Zabbix Dependent items 从属依赖监控项监控类型

zabbix 告警小试

zabbix监控之自定义item

zabbix监控实例

Zabbix监控——Zabbix创建模板(templates)及监控项(item)