1

我需要设置一个 zabbix 触发器,它将每天从 20 小时到 22 小时检查一个日志文件,并寻找某种模式。如果这两个小时内没有数据,则应发出警报。我配置的触发器的语法是这样的:


“{item.time(0)}>200000&{item.time(0)}<220000&{item.nodata(7800)}=1”


此触发器工作正常。但是,我注意到两个不好的方面:

  1. 如果在 20 小时未收到文件,它会触发警报,但我需要它来触发它,前提是在 22 小时仍未收到文件。
  2. 即使直到 22h 还没有收到文件,它也会在 22h00m30s 时发送一个 OK 消息(一旦它不再在指定的时间段内)

我正在考虑将时间段缩短到 30 分钟(从 21 小时 30 分到 22 小时):这解决了第一个问题,但我仍然遇到第二个问题。

最后一件事。如果我将时间段缩短到 30 分钟,但让代理查找数据 7800 秒(nodata(7800)),它会检查在 21h30 之前写入的日志条目吗?

请,如果您有任何建议,我将不胜感激!

4

1 回答 1

0

使用 cronjob zabbix_trapper 发送数据可能会更好。

在 Zabbix 服务器上,您将使用“file.summary”之类的内容创建一个陷阱检查。在主机上,您将创建一个在适当时间检查文件的脚本。它可能看起来像这样:

#!/bin/bash
set -e

if [[ `pattern check` == "0" ]]
then
  /usr/bin/zabbix_sender -z zabbix-server.com -s `hostname` -k file.summary -o 1
else
  /usr/bin/zabbix_sender -z zabbix-server.com -s `hostname` -k file.summary -o 0
fi

您应该将警报设置为以 != 0 的值触发。

于 2013-01-10T22:20:36.747 回答