我想实现一个基于telnet的检查。每隔5分钟检查一次网络设备的telnet并在其上运行一些命令并获得输出。
是否有可能对此进行被动检查,check_mk是否提供了基于telnet的被动检查的任何便利。
答案 0 :(得分:0)
我刚开始使用Check_MK,但我认为如果您可以编写脚本来执行检查所需的任何操作,那么check_mk可以监控它。
你的脚本只需要写这样的东西到STDOUT:
0 my_telnet_test time = 0.1 OK:一切都很好
...或:
2 my_telnet_test time = 0.7严重:设备说" foo",但我期待" baa"
这里详细描述了STDOUT格式:http://mathias-kettner.com/checkmk_localchecks.html
一旦你的脚本正常工作,如果你可以不带参数运行它,你可以将它放到你想要运行检查的机器上的/ usr / local / check_mk_agent / local中,然后在check_mk服务器上运行清单。它会接收更改,并为您运行脚本。
答案 1 :(得分:0)
对于telnet部分,你应该看看
Creating a script for a Telnet session?
对于我要添加的Check_MK部分:为了完成每5分钟运行脚本的要求,您可以创建一个文件夹内部的Check_MK本地插件目录(/ usr / lib / check_mk_agent / local /)以时间命名秒名为。例如,Check_MK将每隔300秒在/ usr / lib / check_mk_agent / local / 300 /内运行每个脚本,并将前一个检查结果保存在代理的缓存中。
https://mathias-kettner.de/checkmk_localchecks.html
有时,脚本会运行超过几秒钟。如果代理的所有脚本和插件的运行时间超过了监视核心的活动检查超时(通常为60或120秒),则将中止完整检查。为了避免这种情况,您可以异步运行本地检查并使用缓存文件。这是通过将您的脚本放入由数字命名的子目录 - >脚本输出有效的秒数来完成的:
/ usr / lib中/ check_mk_agent /本地/ 300 /的MyScript
在这种情况下,代理人将:
在后台运行此脚本,等待它不完成。 将脚本的结果存储在/ etc / check_mk / cache下的缓存文件中。 在再次运行脚本之前,请使用该文件300秒。