安装方法请参考 Linux学习笔记:Nagios的安装


客户端

由于我的安装是使用xinetd这个daemon的,所以需要调整相关的配置文件

[root@Smb-Backup ~]# vi /etc/xinetd.d/nrpe 
service nrpe
{
        flags           = IPv4
        socket_type     = stream
        port            = 5666
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1 192.168.5.33
}
#注意我的flags改为了IPv4,结尾的only_from加入了nagios服务器端的ip地址,用空格分隔
#如果nrpe使用独立daemon模式启动(即不透过xinetd),则需要修改其配置文件放行合法访问的主机,用逗号分隔
#[root@Smb-Backup ~]# cat /usr/local/nagios/etc/nrpe.cfg 
#allowed_hosts=127.0.0.1,192.168.5.33


在安装完客户端的NRPE后,默认已经有几个命令可以使用

编辑[root@Smb-Backup nagios]# vi /usr/local/nagios/etc/nrpe.cfg

在这个文件的结尾,已经预先配置了几个命令

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200


为了监控某个硬盘的容量,我加入了一个命令

command[check_disk]=/usr/local/nagios/libexec/check_disk -w 10% -c 5% -p /dev/sdb1

command[check_disk]是建立命令别名,将被服务器端调用

/usr/local/nagios/libexec/check_disk是真正的执行程序文件,命令别名和执行文件名可以不一样

-w   对于check_disk命令来说,用于制定可用空间的警告Warning值,意味着当可用空间小于等于10%时发出警告

-c    用于制定可用空间的严重告警Critical值,意味着可用空间小于等于5%时,将发出严重警告。

-p    用于指定分区

自我测试一下,证明客户端上的nrpe服务是开启的

[root@Smb-Backup ~]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_disk
DISK OK - free space: /data 148997 MB (31% inode=99%);| /data=329362MB;453563;478761;0;503959


nrpe自带了很多执行程序,这些程序位于

[root@Smb-Backup ~]# ls /usr/local/nagios/libexec/
check_apt      check_disk_smb  check_ide_smart     check_mrtg      check_ntp_time  check_rpc      check_ups
check_breeze   check_dns       check_ifoperstatus  check_mrtgtraf  check_nwstat    check_sensors  check_uptime
check_by_ssh   check_dummy     check_ifstatus      check_nagios    check_oracle    check_smtp     check_users
check_clamd    check_file_age  check_imap          check_nntp      check_overcr    check_ssh      check_wave
check_cluster  check_flexlm    check_ircd          check_nrpe      check_ping      check_swap     negate
check_dhcp     check_ftp       check_load          check_nt        check_pop       check_tcp      urlize
check_dig      check_http      check_log           check_ntp       check_procs     check_time     utils.pm
check_disk     check_icmp      check_mailq         check_ntp_peer  check_real      check_udp      utils.sh

每个程序都有不同的参数,可以通过--help来查看

其中几个常用的是

check_nrpe    用于收集本地或远程的nrpe信息,类似于服务器端程序

check_nt         用于收集windows服务器的信息

check_tcp       用于测试tcp链接是否正常


客户端只要在nrpe.cfg里配置好命令就行了,也不用重启;另外记得配置好防火墙即可。


服务器端

先进行一下收集测试,成功再进行下一步;不成功则检查下是哪步做错了。

[root@Nagios-Server ~]# /usr/local/nagios/libexec/check_nrpe -H 192.168.5.34 -c check_disk
DISK OK - free space: /data 148997 MB (31% inode=99%);| /data=329362MB;453563;478761;0;503959


加入新的配置文件,注意我的文件路径是servers,这是因为我在上一篇安装篇里加入了这个目录,为了更方便组织配置文件。如果默认安装不进行任何修改的话,应该把servers改为objects

vi /usr/local/nagios/etc/servers/smb-backup.cfg
define host{
        use                     linux-server
        host_name               Smb-Backup
        alias                   Smb-Backup
        address                 192.168.5.34
        normal_check_interval           1       #1 minute
        }
define service{
        use                             generic-service
        host_name                       Smb-Backup
        service_description             check disk
        check_command                   check_nrpe!check_disk
        contact_groups                  admins
        normal_check_interval           1       #1 minute
        }
        
#这里上下的host_name必须一致。check_command后面使用check_nrpe!check_disk,意思是使用本机的check_nrpe程序去检查指定主机上的check_disk命令(别名)


注意配置文件必须是.cfg结尾,其他后缀nagios是不读取的

如果写法没有问题,可以让nagios检查一下配置,正确的话warning和errors都是0,如果errors不为0,则必须检查是哪里出错了,Warning则可以忽略但不建议忽略

[root@Nagios-Server ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.1.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-19-2015
License: GPL
Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
        Checked 7 services.
        Checked 7 hosts.
        Checked 0 host groups.
        Checked 0 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 27 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 7 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors:   0
Things look okay - No serious problems were detected during the pre-flight check


重新加载一下配置文件才能生效

[root@Nagios-Server ~]# /etc/init.d/nagios reload
Running configuration check...
Reloading nagios configuration...
done

当重新加载前,也是会自行检查,只是显示的信息比较简单,不方便排错。如果愿意研究的话,可以修改/etc/init.d/nagios脚步,让其检查时输出详细信息。


这时就可以查看服务器上的nagios网页

Linux学习笔记:Nagios的配置_nagios