简单的例子:我在 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
服务的(服务名称旁边的打字机按钮),您可以看到代理读取了哪些日志数据。您还可以在那里看到它是否正在更新。