如何编写check_mk手动检查

时间:2017-07-05 23:51:48

标签: python nagios check-mk

我有一个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"

2 个答案:

答案 0 :(得分:0)

首先,我假设您要检查的节点是基于MS Windows的,在这种情况下,我无法帮助您,因为我的专业知识是关于UNIX和Linux的。

web link将帮助您检查基于Windows的节点,尤其是paragrah 10. Extending the Windows agent

在Linux中,一旦安装了check_mk_agent,根据你想进入check_mk胆量的深度,有三种方法。在Windows中我认为有相同的方法。

  1. 作为本地服务:将python代码复制到local文件夹中,无论它在Windows中的位置,并编辑[global]配置文件的check_mk.ini部分运行pypyc文件扩展名。

  2. 作为MRPE检查:根据Nagios output check format使python程序打印输出,并根据{{3}编辑[mrpe]配置文件的check_ini部分}}。作为缺点,WARNING和CRITICAL值/范围在check_ini文件中是固定的 - 它们不能在WATO中更改。

  3. 作为check_mk代理:您将python程序转换为 check_mk代理。我认为这是最困难的方法,因为每个check_mk代理必须在check_mk服务器中具有对应的定义/声明/库存文件,以便在WATO中使用并配置其参数。我从未写过一篇,但如果你热衷于此,你应该阅读the notes in the paragraph 10.2

  4. 最好的问候。

答案 1 :(得分:0)

如果要执行此类脚本,只需将其(具有正确的权限,chmod +755)放在〜/ local / lib / nagios / plugins目录中。

然后,您必须从“主机和服务参数->主动检查->经典主动和被动检查”中创建规则

完成后,您需要输入命令行“ python〜/ local / lib / nagios / plugins / nameofyourscript.py”

尽管我不确定输出结果,但仍在为python脚本工作。