2

如果在远程服务器上指定插件命令,则可以执行脚本。
在下面的示例中,插件命令是get_disk

 command[get_disk]=csript.exe c:\nagios\checks\check_disks_percentage_spave_used.vbs

但是,我希望远程服务器上的 NRPE 在客户端服务器上执行脚本,而不需要插件命令。
在远程服务器上是这样的:

check_nrpe  -H 196.35.132.9 -t 60 -c 'csript.exe c:\\nagios\\checks\\check_disks_percentage_space_used.vbs'
4

1 回答 1

6

您可以按照以下步骤从 nagios 运行命令来监控远程机器

  1. 假设你有两台机器,
  2. 从您要监视的位置(将其称为主控)
  3. 您要监视的对象(将其称为奴隶)
  4. 假设您在 linux 中工作并且在主机 nagios 中的位置是“/usr/local/nagios”
  5. 您的从机也是 linux 并且 nrpe 安装位置是“/usr/local/nagios”
  6. 将您的脚本/插件/可执行文件放在从机@ /usr/local/nagios/libexec 位置。

    例如 - /usr/local/nagios/libexec/test.sh
    并赋予它可执行权限。
    chmod +x test.sh

    1. 编辑 nrpe.cfg 并将命令添加为


    vi /usr/local/nagios/etc/nrpe.cfg
    添加以下行
    command[testScript]=/usr/local/nagios/libexec/test.sh
    告诉 nrpe 在收到 testScript 命令时运行 test.sh


8. 重启 nrpe
9. 转到主机
10. 编辑 commands.cfg

vi /usr/local/nagios/etc/objects/commands.cfg
并添加以下行

通过添加这个来定义命令{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
,现在主机知道什么是 check_nrpe 命令。

  1. 添加服务

    define service{
    use generic-service
    host_name web-node01
    service_description count number of cmd in remote mc
    check_command check_nrpe!testScript
    }
    现在 nagios 知道它必须在从机调用 testScript 命令,
    并且在从机中我们定义了当接收到 testScript 命令时运行
    来自 '/usr/local/nagios/libexec' 位置的'test.sh' (第 7 点)

  2. 现在在从 nagios 尝试之前,您可以直接调用 nrpe 命令通过以下命令检查一切是否正常

    /usr/local/nagios/libexec/check_nrpe -H slave_IP_Address -c testScript
    PS 这与 nagios 将在后台运行的命令完全相同

于 2015-01-07T10:32:33.383 回答