使用NRPE执行远程脚本

fre*_*tma 1 vbscript nagios nrpe

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

 command[get_disk]=csript.exe c:\nagios\checks\check_disks_percentage_spave_used.vbs
Run Code Online (Sandbox Code Playgroud)

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

check_nrpe  -H 196.35.132.9 -t 60 -c 'csript.exe c:\\nagios\\checks\\check_disks_percentage_space_used.vbs'
Run Code Online (Sandbox Code Playgroud)

GKV*_*GKV 5

您可以按照以下步骤从nagios运行命令以监视远程计算机

  1. 我只想说你有2台机器,
  2. 从你想要监控的地方(将其称为主人)
  3. 你想监视谁(将其称为奴隶)
  4. 假设你在linux和主机上工作nagios位置是"/ usr/local/nagios"
  5. 你的奴隶机也是linux和nrpe安装位置是"/ usr/local/nagios"
  6. 将您的脚本/插件/可执行文件放在slave机器@/usr/local/nagios/libexec位置.

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

    1. 编辑nrpe.cfg并在其中添加命令


    vi /usr/local/nagios/etc/nrpe.cfg
    添加以下行
    命令[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. 添加服务

    定义服务{
    使用通用服务
    host_name web-node01
    service_description计数远程mc中的cmd命令
    check_command check_nrpe!testScript
    }
    现在nagios知道它必须在slave机器中调用testScript命令,
    而在slave机器中我们定义了接收到的testScript命令运行时
    来自' s/usr/local/nagios/libexec'位置的'test.sh' (第7点)

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

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