如何获取与 Windows check_mk_agent 配合使用的自定义日志文件检查?

如何获取与 Windows check_mk_agent 配合使用的自定义日志文件检查?

简单的例子:我在 C:\users\user\test.log 中有一个日志文件,其中包含一行文本:

crit

我已在 Program Files (x86)\check_mk 中安装了 check_mk_agent.exe,并将 check_mk.ini 安装在同一文件夹中,其中包含以下文本:

[logfiles]
    # # Define textfiles to be monitored, separated by |
    # textfile = C:\tmp logfiles\message_*.log|D:\log\sample.txt
    # # Set patterns for defined textfiles
    # ok = Successfully logged in*
    # crit = Error in*
    # warn = Unable to contact*
    # ignore = Backup * saved

    textfile = C:\users\user\test.log
    warn = *
    crit = crit
    ok = ok

如果该行显示“ok”,则返回 OK;如果该行显示“crit”,则返回 CRIT;否则返回 WARN。

但是,它根本没有报告任何状态。如果我运行check_mk_agent.exe test(对于 类似debug),我会得到以下几行,表明它已成功找到文本文件,但没有报告其状态:

( ... )
<<<logwatch>>>
[[[C:\users\user\test.log]]]
<<<>>>

<<<>>>
<<<local>>>
( ... )

有人能帮我让它工作吗?我不是 Check MK 专家,这超出了我的知识范围。

答案1

check_mk 代理测试运行未显示服务状态(ok、crit 等),因此您看到的内容是正确的。它实际上显示新配置已成功加载。要查看其运行情况,请在 check_mk 服务器上运行新清单以列出新服务。

现在有两件事:

  • 首先,您需要将其更改warn = *为其他内容,因为*将匹配任何内容并且您将始终获得warn状态。
  • 其次,在测试日志文件中添加更多行,看看状态是否发生变化。 check_mk 代理读取文件并在添加新条目时获取更新的信息。从 Web 前端,如果您单击Open Log服务的(服务名称旁边的打字机按钮),您可以看到代理读取了哪些日志数据。您还可以在那里看到它是否正在更新。

相关内容