我有一个python脚本来检查进程 导入子流程
s = subprocess.check_output('tasklist', shell=True)
if "cmd.exe" in s:
if "java.exe" not in str(s):
print "selenium server is not up"
if "FreeSSHDService.exe" not in str(s):
print "SSH is not up"
else:
print "Everything is awesome"
我想在check_mk仪表板上添加一个检查,添加此检查的步骤是什么以及我必须在哪里编写此脚本。
import subprocess
s = subprocess.check_output('tasklist', shell=True)
if "cmd.exe" in s:
if "java.exe" not in str(s):
return 2, "selenium server is not up")
if "FreeSSHDService.exe" not in str(s):
return 2, "SSH is not up"
else:
return 0, "Everything is awesome"
答案 0 :(得分:0)
首先,我假设您要检查的节点是基于MS Windows的,在这种情况下,我无法帮助您,因为我的专业知识是关于UNIX和Linux的。
此web link将帮助您检查基于Windows的节点,尤其是paragrah 10. Extending the Windows agent
。
在Linux中,一旦安装了check_mk_agent,根据你想进入check_mk胆量的深度,有三种方法。在Windows中我认为有相同的方法。
作为本地服务:将python代码复制到local
文件夹中,无论它在Windows中的位置,并编辑[global]
配置文件的check_mk.ini
部分运行py
和pyc
文件扩展名。
作为MRPE检查:根据Nagios output check format使python程序打印输出,并根据{{3}编辑[mrpe]
配置文件的check_ini
部分}}。作为缺点,WARNING和CRITICAL值/范围在check_ini
文件中是固定的 - 它们不能在WATO中更改。
作为check_mk代理:您将python程序转换为 check_mk代理。我认为这是最困难的方法,因为每个check_mk代理必须在check_mk服务器中具有对应的定义/声明/库存文件,以便在WATO中使用并配置其参数。我从未写过一篇,但如果你热衷于此,你应该阅读the notes in the paragraph 10.2。
最好的问候。
答案 1 :(得分:0)
如果要执行此类脚本,只需将其(具有正确的权限,chmod +755)放在〜/ local / lib / nagios / plugins目录中。
然后,您必须从“主机和服务参数->主动检查->经典主动和被动检查”中创建规则
完成后,您需要输入命令行“ python〜/ local / lib / nagios / plugins / nameofyourscript.py”
尽管我不确定输出结果,但仍在为python脚本工作。