linux - CentOS 7 无法解析 Zabbix 触发器

标签 linux triggers centos zabbix agent

我有 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

最佳答案

长话短说:如果某些插入/更新没有失败(尤其是在 event_recovery 和问题表中),则可能检查数据库日志
长话短说:
我们在 ZBX 4.4 上观察到类似的行为,并且只有某些触发器检查最后 10 分钟的数据(例如 item_key.str('problem',10m)=1 )。尽管触发条件不再匹配,但即使经过几天的事件,问题也会被检测到,但稍后也不会得到解决。
在我们的特殊情况下:

  • 我查看了数据库并在事件表中找到了具有适当 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';
    问题在于这不是解决方案,只是一次性解决方法。问题不断出现,此时我们怀疑问题出在数据库方面(我们有一个主 + 备用数据库,其选择定向到备用数据库,这可能导致某些最终写入的选择操作失败,因为备用数据库处于读取状态-仅模式)。
    我们将尝试将所有内容重定向到主数据库,看看是否有帮助。
  • 关于linux - CentOS 7 无法解析 Zabbix 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65085206/

    相关文章:

    linux - 如果在一台 x86 主机上运行 2 个 type-2 VMX hypervisor 会怎样?

    sql-server - SQL Server 复制触发器

    bash - 如何在邮件命令中同时使用 html 和纯文本标题?

    selenium - java.lang.IllegalStateException : The driver executable does not exist:/usr/local/bin/geckodriver

    linux - Yum 试图在 CentOS 6 上安装 .el7 版本

    linux - 将日志文件挂载到其他位置

    c - linux加载器如何在libc.so加载之前调用malloc?

    linux - 将目录树符号链接(symbolic link)到一个目录

    list - Salesforce 顶点触发列表中的重复 ID

    sql-server-2008 - 检索 MS SQL 2008 中生成的 ID