nagios通过nrpe远程执行linux脚本,通过nsclient++远程执行windows脚本

    nagios可以作为远程脚本执行器,以下是现网环境中nagios通过nrpe远程执行脚本的一个示例。

前言:

1、web界面

http://192.168.62.119/nagios

状态:
0、 1、 2、 3
ok、warn、critical、unknown

2、设备信息

1)192.168.62.119 nagios监控服务器(或者称为监控端)
2)192.168.62.120 linux被监控端(或者称为客户端)
3)192.168.62.57 windows被监控端(或者称为客户端

3、nagios性能数据

nagios将插件输出中”|”号后的内容作为性能数据。性能数据格式如下:(意思是:客户端脚本执行的结果必须是下面这种格式,然后客户端将该结果传给服务端,服务器就可以web展示该结果

'label'=value[UOM];[warn];[crit];[min];[max]


4、注意:

  • 多个性能数据之间用空格分割
  • label 可以包含任何字符
  • 如果label中包含空格、等号、或者单引号,则label需要用单引号来括起来
  • warn/crit/min/max可以为null值
    value, min and max只能为负号“-” “0到9” 和小数点“.” 并且单位必须统一
    例如:cpu_user=0.5%;99.9;-9;
  • 如果UOM单位是%,则min和max不需要再指定
  • UOM单位可以是如下: 默认空,表示数量(用于用户数、处理器数等)
    • s 表示秒(也可以用us,ms)
    • % 表示百分比
    • B 表示字节(也可以用KB,MB,TB,GB)
    • c 一个连续的计数(如:接口传输的字节数)

一、服务监控端

1、文件commands.cfg里面添加如下

[root ~]#vi /usr/local/nagios/etc/objects/commands.cfg
# 'check_nrpe' command definition
define command{
        command_name    check_nrpe         
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

2、文件nagios.cfg里面添加如下

注意:
1)192.168.62.120.cfg和192.168.62.57.cfg分别是2个客户端的配置文件
2)192.168.62.120.cfg的cfg前缀不需要一定是ip,只是我为了管理方便,这么命名而已。192.168.62.57.cfg也是为了方便命名而已

[root ~]# vi /usr/local/nagios/etc/nagios.cfg
/usr/local/nagios/etc/objects/192.168.62.120.cfg
/usr/local/nagios/etc/objects/192.168.62.57.cfg

3、配置客户端的配置文件

1)配置客户端linux的配置文件,其中”check_nrpe!check_memory“里面的check_memory就是客户端脚本的命名名称

[root ~]# vi /usr/local/nagios/etc/objects/192.168.62.120.cfg
define host{
        use                     linux-server                                                      
        host_name               IDCSV10-Splunk
        alias                   Splunk日志服务器
        address                 192.168.62.120
        }

define service{
        use                     generic-service
        host_name               IDCSV10-Splunk
        service_description     memory
        check_command           check_nrpe!check_memory
        }

2)配置客户端windows的配置文件,,其中”check_nrpe!check_time“里面的check_time就是客户端脚本的命名名称

[root ~]# vi /usr/local/nagios/etc/objects/192.168.62.57.cfg
define host{
        use                     windows-server                                                      
        host_name               IDCSV27_WSUS
        alias                   Windows 补丁服务器
        address                 192.168.62.57
        }

define service{
        use                     generic-service
        host_name               IDCSV27_WSUS
        service_description     memory
        check_command           check_nrpe!check_time
        }

4、检查配置是否正确

[root ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

5、
修改配置后需要重启nagios

[root ~]# /etc/init.d/nagios restart
或者
[root ~]# /etc/init.d/nagios reload

二、被监控端(linux)

1、写脚本

在/usr/local/nagios/libexec/目录下写脚本:check_memory.pl

2、命名脚本check_memory.pl的名称为”check_memory

[root ~]#vi   /usr/local/nagios/etc/nrpe.cfg 
command[check_memory]=/usr/local/nagios/libexec/check_memory.pl -u  -w 75  -c 90 

3、重启nrpe

[root ~]# /etc/init.d/xinetd restart

4、测试

在监控端执行如下命令, 参数-H后面是客户端的ip,参数-c后面是客户端脚本的命名名称

[root ~]# /usr/local/nagios/libexec/check_nrpe -H 192.168.62.120 -c check_memory

三、被监控端(windows)

前言

    编辑NSClient配置文件NSC.ini,去掉如下几行前面的“;”号,使之生效

[modules]
NRPEListener.dll
script_dir=scripts\
CheckExternalScripts.dll
[Settings]
allowed_hosts=192.168.62.83,192.168.62.119

1、写脚本

在NSClient安装目录D:\Program Files\NSClient++\scripts\lib下写脚本:check_time.vbs

2、配置文件NSC.ini,命名脚本check_time.vbs的名称为”check_time

[External Scripts]
check_time=cscript.exe //T:30 //NoLogo scripts\lib\check_time.vbs 192.168.10.22 5 10

3、重启NSClient++ (从0.4.0开始,软件代码大改动,并且nsclient++改名为nscp。此处所讲是0.39版本)

4、测试

在监控端执行如下命令, 参数-H后面是客户端的ip,参数-c后面是客户端脚本的命名名称

[root ~]# /usr/local/nagios/libexec/check_nrpe -H 192.168.62.57 -c check_time
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值