0

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

2 回答 2

0

首先,我假设您要检查的节点是基于 MS Windows 的,在这种情况下,我无法为您提供太多帮助,因为我的专长是 UNIX 和 Linux。

Web 链接将帮助您检查基于 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 检查:您让您的 python 程序根据Nagios 输出检查格式打印其输出,并根据第 10.2 段中的注释[mrpe]编辑配置check_ini文件的部分。作为一个缺点,WARNING 和 CRITICAL 值/范围在文件中是固定的——它们不能在 WATO 中更改。check_ini

  3. 作为一个 check_mk 代理:你将你的 python 程序变成一个check_mk 代理。我认为这是最困难的方法,因为每个 check_mk 代理都必须在 check_mk 服务器中具有对应的定义/声明/库存文件,才能在 WATO 中使用并配置其参数。我从来没有写过,但如果你热衷于,你应该阅读这个指南

此致。

于 2017-07-06T18:43:14.253 回答
0

如果您想执行这样的脚本,您只需将它(使用正确的权限,chmod +755)放在 ~/local/lib/nagios/plugins 目录中。

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

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

虽然我不确定输出,但仍在为 python 脚本工作。

于 2019-03-14T10:08:51.490 回答