【问题标题】:Zabbix trigger does not resolve for CentOS 7CentOS 7 无法解析 Zabbix 触发器
【发布时间】:2021-03-13 01:29:18
【问题描述】:

我有 zabbix 3.4 版。我有 2 个模板。一个用于监控操作系统,另一个用于监控数据库。我几乎没有将 CentOS 6.9 添加到这些模板中的服务器。一切正常。

然后我使用 CentOS 7 在这些模板中添加了 4 个服务器。项目正常工作。他们有预期的结果。问题是当为这 4 个服务器激活触发器时,它们无法解析并保持活动状态,我们在仪表板中看到它们。

例如,在数据库模板中,我们有一个用于服务状态的项目。如果是1,则表示服务正在运行,如果不是1,则表示服务未运行。我在其中一台 CentOS 7 服务器上停止了该服务。代理得到的结果是0。触发器被激活。然后我开始了服务。在最新数据中,我可以看到该值为1,这意味着服务正在运行,但触发器没有解决,它仍然处于启动状态。

然后我为其中一台 CentOS 6.9 服务器执行了上述步骤,一切正常。

为什么会发生这种情况,我该如何解决?

更新: 触发表达式为:

   {log-b:db2stat.db2instance_service[].last()}<>1

【问题讨论】:

  • 你能分享一下你的触发器表达式吗?
  • 另外,你应该考虑升级到 Zabbix 5
  • @IronBishop 服务不适用于我们的团队。我们只使用它。我应该告诉其他团队看看他们能做什么。
  • 触发器很简单,对 .last() 作出反应。我同意@IronBishop,您应该要求服务所有者升级到更新的版本。
  • 鉴于 PHP 7,在 CentOS 7 上使用 puppet 升级到 zabbix 5 将是一个挑战。

标签: linux triggers centos zabbix agent


【解决方案1】:

长话短说:如果某些插入/更新没有失败(尤其是在 event_recovery 和问题表中),则可能检查数据库日志

长话短说: 我们在 ZBX 4.4 上观察到类似的行为,并且只有某些触发器检查最后 10 分钟的数据(例如 item_key.str('problem',10m)=1 )。问题被检测到,但即使触发条件不再匹配,即使经过几天的事件也无法解决。

在我们的特殊情况下:

  • 我查看了 DB 并在事件表中找到了具有适当 eventid(例如 123)的事件并记下了 objectid(例如 100123)

  • 然后我检查了特定 objectid (100123) 的事件表,发现确实有一个“解决”事件(例如 125)

  • 当检查 event_recovery 表时,我找不到与这两个 eventid 匹配的条目(而在其他触发器的情况下,它们在解决后在 event_recovery 表中有一个条目)

  • 我只是创建了条目:insert into event_recovery (eventid, r_eventid) VALUES ('123', '125');

  • 但这还不够,因为需要在问题表中调整相似的配对

  • 在问题表中,我发现我的 eventid (123) 存在问题,并简单地将恢复事件映射到该问题:更新问题集 r_eventid='125' where eventid='123' and objectid='100123';

    问题在于,这不是解决方案,只是一次性解决方法。问题不断出现,此时我们怀疑问题出在数据库方面(我们有一个主 + 备用数据库,其选择定向到备用数据库,这可能导致某些最终写入的选择操作失败,因为备用数据库处于读取状态-only 模式)。

    我们将尝试将所有内容重定向到主数据库,看看是否有帮助。

【讨论】:

    猜你喜欢
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多