一、安装前准备

1.1 解决安装nagios的依赖关系

 
  1. # yum groupinstall -y "Development Tools"           # 安装开发包 
  2.       # yum -y install httpd  gd gd-devel php  mysql-devel  # 安装nagios需要的环境,但不是必须的。 

1.2 添加nagios运行所需要的用户和组

 
  1. #groupadd  nagcmd 
  2. #useradd –G nagcmd nagios   
  3. #passwd nagios 
  4. #usermod  –G  nagcmd apache                   # 把apache加入到nagcmd组 

1.3 配置apache与php结合

 
  1. # vim /etc/httpd/conf/httpd.conf   
  2.  DirectoryIndex index.html index.html.var index.php    # 这一行添加index.php  
  3.  # vim /var/www/html/index.php                    # 编辑测试页面  
  4.  <?php 
  5.  phpinfo(); 
  6.  ?>  
  7.   # service httpd start                              # 启动httpd 
在浏览器输入你的IP出现下面图片,则说明apache和php结合成功

二、编译安装nagios

2.1 所有需要的软件包都放在 /usr/local/src下:

 
  1. #cd /usr/local/src  
  2.      # tar zxf nagios-3.3.1.tar.gz  
  3.      # cd nagios-3.3.1 
  4.      # ./configure --with-command-group=nagcmd --enable-event-broker 
  5.      # make all && make install 
  6.      # make install-init                     # 安装启动脚本,可以用service控制nagios服务 
  7.       /usr/bin/install -c -m 755 -d -o root -g root /etc/rc.d/init.d 
  8.       /usr/bin/install -c -m 755 -o root -g root daemon-init /etc/rc.d/init.d/nagios 
  9.       *** Init script installed ***               
  10.      # make install-commandmode           # 安装外部命令  
  11.      # make install-config                  # 生成配置文件/usr/local/nagios/etc  

2.2 Nagios的默认安装路径是 /usr/local/nagios/*,生成目录说明:

 
  1. bin  etc  include  libexec  sbin  share  var  
  2.       /bin :nagios的主程序,执行程序             /etc  :nagios的配置文件  
  3.       /include :头文件的所在目录                 /libexec :安装插件产生的命令 
  4.       /sbin :cgi 文件所在目录                     /share  :网页文件所在目录 
  5.       /var  日志文件,锁文件等目录   

2.3 为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:

 
  1. # vi /usr/local/nagios/etc/objects/contacts.cfg  
  2.       email        nagios@localhost       #这个是默认设置 根据自己的情况修改 

2.4 在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:

 
  1. # make install-webconf 
  2.      /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf 
  3.      *** Nagios/Apache conf file installed *** 

2.5 创建一个登录nagios的web程序的用户,这个用户帐号在以后通过web登录nagios
认证时所用:

 
  1. # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 

2.6 以上过程配置结束以后需要重启httpd:

 
  1. # service httpd restart 

三、编译安装nagios-plugins

 
  1. Nagios的所有工作都是通过插件完成的,因此,在启动nagios前先安装插件 
  2.  # tar zxf nagios-plugins-1.4.15.tar.gz  
  3.  # cd nagios-plugins-1.4.15 
  4.  # ./configure --with-nagios-user=nagios --with-nagios-group=nagios 
  5.  # make && make install 

四、配置并启动nagios

4.1把nagios添加为系统服务并将之加入到自动启动服务队列:

 
  1. # chkconfig --add nagios 
  2.      # chkconfig nagios on 

4.2检查其主配置文件的语法是否正确:

 
  1. # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 

出现这样的信息 说明配置文件没有错误 可以启动
如果有错误,可以根据上面的提示修改,哪里出错误了提示很详细的。很容易就可以找出错误。
 

4.3我们也可以为上面的检测命令添加别名,这样会很方便:

 
  1. #alias check-nagios=’ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg’ 

4.4如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:

 
  1. # service nagios start 

4.5配置selinux

如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
 
 
  1. # getenforce 
  2.     # setenforce 0                           # 关闭selinux  
  3.     # /etc/rc.d/init.d/iptables stop               # 关闭iptables  

4.6通过Web界面查看nagios

http://ip/nagios
 

输入用户名密码
 

这就是nagios的主页面 很丑陋的 默认已经监控本机,并监控本机的负载均衡,当前用户等8个服务。

五、NDOUtils的安装与设置

5.1 Ndoutils 主要用来将nagios的配置信息和event产生的数据存入数据库以方便实现数据的快速检索和处理,因此要先安装mysql:

 
  1. # yum -y install  php-mysql mysql-server 

5.2 编译安装ndoutils

 
  1. # tar zxf ndoutils-1.4b9.tar.gz 
  2.  # cd ndoutils-1.4b9 
  3.  #./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql --with-mysql-inc=/usr/include     
  4.   --with-mysql-lib=/usr/ lib 
  5.  #make  
  6.  # cp ./src/ndomod-3x.o /usr/local/nagios/bin 
  7.  # cp ./src/ndo2db-3x /usr/local/nagios/bin 
  8.  # cp ./src/log2ndo /usr/local/nagios/bin 
  9.  # cp ./src/file2sock /usr/local/nagios/bin 
  10.  # chown nagios:nagios /usr/local/nagios/bin/* 
  11.  # cp ./config/ndo* /usr/local/nagios/etc/              # 复制配置文件 
  12.  # chown nagios:nagios /usr/local/nagios/etc/* 

5.3 为NDOUtils创建数据库

5.3.1 第一次启动mysql,要进行初始化

 
  1. # service mysqld start    
  2.         Initializing MySQL database:  Installing MySQL system tables... 
  3.         OK 
  4.         Filling help tables... 
  5.         OK 
  6.         。。。。。。。。。。。                       # 中间部分省略 
  7.         Support MySQL by buying support/licenses at http://shop.mysql.com 
  8.                                                           [  OK  ] 
  9.         Starting MySQL:                                    [  OK  ]       # MySQL启动成功 

5.3.2 授权用户

 
  1.  # mysql    进入mysql 
  2.     mysql> create database ndodb;            # 创建nagios需要的数据库 
  3. mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON ndodb.* TO ndouser@localhost   
  4. IDENTIFIED BY '123456';               # 给ndouser 用户授权 密码为“123456” 
  5.         mysql> flush privileges; 
  6.     mysql> \q 
 

5.3.3 生成ndoutils所需要的数据库

 
  1. # cd db 
  2.    # ./installdb -undouser -p123456  -hlocalhost -d ndodb 

数据库初始化成功,也可以连到mysql数据库里面,此时ndodb库中已经有59张表。

5.4 编辑配置文件

 
  1. # cp -p /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg 
  2.      # vim /usr/local/nagios/etc/ndo2db.cfg 
  3.   socket_type=tcp //**line 33 
  4.   db_servertype=mysql //**line 78                   
  5.   db_host=localhost //**line 86                 # 链接的数据库主机地址,这里是本机  
  6.   db_port=3306 //**line 95                    # 链接端口  
  7.   db_name=ndodb                           # 数据库的名字 
  8.   db_prefix=nagios_ //**line 111            
  9.   db_user=ndouser //** line 121                # 用户名(就是数据库授权的用户) 
  10.   db_pass=123456 //**line 122                 # 密码  
  11.      # cp -p /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg 
  12.      # vim/usr/local/nagios/etc/ndomod.cfg 
  13.   output_type=tcpsocket //** line 26 
  14.   output=127.0.0.1 //**line 39 
  15.      # vim /usr/local/nagios/etc/nagios.cfg 
  16.    复制下面内容粘贴到#broker_module=...下面。 
  17.    broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg 
  18.    此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加: 
  19.    event_broker_options=-1                   # 为Nagios开启event broker 

5.5 启动ndo2db

 
  1. # /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg 
  2. # echo '/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg' >> /etc/rc.local # 开机自动启动 

5.6 重启动nagios

 
  1. # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg   # 检查配置文件 
  2. # service nagios restart 

六、检测安装结果

 
  1. # tail -20 /usr/local/nagios/var/nagios.log 

七、基于NRPE监控远程Linux主机

7.1 NRPE简介

    Nagios监控远程主机的方法有多种,其方式包括SNMP、NRPE、SSH和NCSA等。这里介绍其通过NRPE监控远程Linux主机的方式。
    NRPE(Nagios Remote Plugin Executor)是用于在远端服务器上运行检测命令的守护进程,它用于让Nagios监控端基于安装的方式触发远端主机上的检测命令,并将检测结果输出至监控端。而其执行的开销远低于基于SSH的检测方式,而且检测过程并不需要远程主机上的系统帐号等信息,其安全性也高于SSH的检测方式。
 

7.2 安装配置被监控端

 
  1. 7.2.1 先添加nagios用户 
  2.     # useradd -s /sbin/nologin nagios 
  3.   7.2.2 NRPE依赖于nagios-plugins,需要先安装之 
  4.     # tar zxf nagios-plugins-1.4.15.tar.gz  
  5.     # cd nagios-plugins-1.4.15 
  6.     # ./configure --with-nagios-user=nagios --with-nagios-group=nagios 
  7.     # make all && make install 
  8.       7.2.3 安装NRPE 
  9.         # yum -y install openssl* 
  10.     # tar -zxvf nrpe-2.12.tar.gz 
  11.     # cd nrpe-2.12.tar.gz 
  12.     # ./configure --with-nrpe-user=nagios \ 
  13.      --with-nrpe-group=nagios \ 
  14.      --with-nagios-user=nagios \ 
  15.      --with-nagios-group=nagios \ 
  16.      --enable-command-args \                 # 允许传递参数 
  17.      --enable-ssl                            # 需要安装openssl组件 
  18.     # make all 
  19.     # make install-plugin 
  20.     # make install-daemon 
  21.     # make install-daemon-config 
  22. 7.2.4 配置NRPE 
  23.   # vim /usr/local/nagios/etc/nrpe.conf 
  24.    log_facility=daemon 
  25.    pid_file=/var/run/nrpe.pid 
  26.    server_address=172.16.100.11    # 监听的服务地址,不选择此项默认是0.0.0.0 
  27.    server_port=5666 
  28.    nrpe_user=nagios 
  29.    nrpe_group=nagios 
  30.    allowed_hosts=172.16.100.1     # 定义本机所允许的监控端的IP地址 
  31.    command_timeout=60          # 命令执行的超时时间 
  32.    connection_timeout=300        # 连接超时时间 
  33.    debug=0 
  34.    上述配置指令可以做到见名知义,因此,配置过程中根据实际需要进行修改即可。其中,需要特定  
  35.    说明的是allowed_hosts指令用于定义本机所允许的监控端的IP地址。 
  36. 7.2.5 启动NRPE 
  37. 7.2.5.1  方式一: 
  38.   # cp init-script /etc/init.d/nrped              # 复制nrpe启动脚本 
  39.   # chmod +x /etc/init.d/nrped                # 赋予nrpe启动脚本执行权限 
  40.   # service nrped start 
  41.   # chkconfig --add nrped 
  42.   # chkconfig nrped on 
  43. 7.2.5.2  方式二: 
  44.   # /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d 
  45.    为了便于NRPE服务的启动,可以将如下内容定义为/etc/init.d/nrped脚本: 
  46.   #!/bin/bash 
  47.   # chkconfig: 2345 88 12 
  48.   # description: NRPE DAEMON 
  49.    NRPE=/usr/local/nagios/bin/nrpe 
  50.    NRPECONF=/usr/local/nagios/etc/nrpe.cfg 
  51.   #!/bin/bash 
  52.   # chkconfig: 2345 88 12 
  53.   # description: NRPE DAEMON 
  54.    case "$1" in 
  55.      start) 
  56.         echo -n "Starting NRPE daemon..." 
  57.         $NRPE -c $NRPECONF -d 
  58.         echo " done." 
  59.         ;; 
  60.     stop) 
  61.         echo -n "Stopping NRPE daemon..." 
  62.         pkill -u nagios nrpe 
  63.         echo " done." 
  64.     ;; 
  65.     restart) 
  66.         $0 stop 
  67.         sleep 2 
  68.         $0 start 
  69.         ;; 
  70.     *) 
  71.         echo "Usage: $0 start|stop|restart" 
  72.         ;; 
  73.         esac 
  74.    exit 0 
  75.   # chmod +x /etc/init.d/nrped                # 赋予nrpe启动脚本执行权限 
  76.   # service nrped start 
  77.   # chkconfig --add nrped 
  78.   # chkconfig nrped on 
  79. 7.2.5.1  方式三 
  80.   或者,也可以在/etc/xinetd.d目录中创建nrpe文件,使其成为一个基于非独立守护进程的服务; 
  81.   文件内容如下: 
  82.   service nrpe 
  83.   { 
  84.     flags = REUSE 
  85.     socket_type = stream 
  86.     wait = no 
  87.     user = nagios 
  88.     group = nagios 
  89.     server = /opt/nagios/bin/nrpe 
  90.     server_args = -c /etc/nagios/nrpe.cfg -i 
  91.     log_on_failure += USERID 
  92.     disable = no 
  93.   } 
  94.   此种情况下启动NRPE进程需要通过重启xinetd来实现。 
  95.  # service xinetd start                                 # 必须事先安装xinetd,默认没安装 
  96. 7.2.6 配置允许远程主机监控的对象 
  97.   在被监控端,可以通过NRPE监控的服务或资源需要通过nrpe.conf文件使用命令进行定义,定  
  98.   义命令的语法格式为:command[<command_name>]=<command_to_execute>。比如: 
  99.   command[check_rootdisk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p / 
  100.   command[check_swap]=/usr/local/nagios/libexec/check_disk -w 40% -c 20% 
  101.   command[check_sensors]=/usr/local/nagios/libexec/check_sensors 
  102.   command[check_users]=/usr/local/nagios/libexec/check_users -w 10 -c 20 
  103.   command[check_load]=/usr/local/nagios/libexec/check_load -w 10,8,5 -c 20,18,15 
  104.   command[check_zombies]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z 
  105.   command[check_all_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 

7.3 配置监控端

 
  1. 7.3.1 安装NRPE 
  2.   # tar -zxvf nrpe-2.12.tar.gz 
  3.   # cd nrpe-2.12.tar.gz 
  4.   # ./configure --with-nrpe-user=nagios \ 
  5.     --with-nrpe-group=nagios \ 
  6.     --with-nagios-user=nagios \ 
  7.     --with-nagios-group=nagios \ 
  8.     --enable-command-args \ 
  9.     --enable-ssl 
  10.   # make all 
  11.   # make install-plugin       
  12.  7.3.2 定义如何监控远程主机及服务: 
  13.   通过NRPE监控远程Linux主机要使用chech_nrpe插件进行,其语法格式如下: 
  14.   check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>
  15.   7.3.2.1  使用示例1: 
  16.   1)定义监控远程Linux主机swap资源的命令: 
  17. define command 
  18.     command_name check_swap_nrpe 
  19.     command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c "check_swap" 
  20.   2)定义远程Linux主机的swap资源: 
  21. define service 
  22.     use generic-service 
  23.     host_name linuxserver1,linuxserver2 
  24.     hostgroup_name linux-servers 
  25.     service_description SWAP 
  26.     check_command check_swap_nrpe 
  27.     normal_check_interval 30 
  28.   7.3.2.2  使用示例2: 
  29.   如果希望上面的command定义更具有通用性,那么上面的定义也可以修改为如下: 
  30.   1)定义监控远程Linux主机的命令: 
  31. define command 
  32.     command_name     check_nrpe 
  33.     command_line         $USER1$/check_nrpe –H $HOSTADDRESS$ -c $ARG1$ 
  34.   2)定义远程Linux主机的swap资源: 
  35. define service 
  36.     use                     generic-service 
  37.     host_name            linuxserver1,linuxserver2 
  38.     hostgroup_name       linux-servers 
  39.     service_description     SWAP 
  40.     check_command       check_nrpe!check_swap 
  41.     normal_check_interval   30 
  42.   7.3.2.3  使用示例3: 
  43.   如果还希望在监控远程Linux主机时还能向其传递参数,则可以使用类似如下方式进行: 
  44.   1)定义监控远程Linux主机disk资源的命令: 
  45. define command 
  46.     command_name    check_swap_nrpe 
  47.     command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c "check_swap" -a $ARG1$    
  48.   $ARG2$ 
  49.   2)定义远程Linux主机的swap资源: 
  50. define service 
  51.     use                     generic-service 
  52.     host_name           linuxserver1,linuxserver2 
  53.     hostgroup_name      linux-servers 
  54.     service_description     SWAP 
  55.     check_command       check_swap_nrpe!20!10 
  56.     normal_check_interval   30 

八、基于NSClinet++监控Windows主机

NSClient++与Nagios服务器通信,主要使用Nagios服务器的check_nt插件。原理图如下

(一)windows服务器上安装NSClient++软件

1、下载并解压NSClient++(下载地址:http://sourceforge.net/projects/nscplus)
2、安装插件与配置(安装过程十分简单,直接点击下一步,下一步即可。安装过程注意如下图的设
置即可)

编辑NSClient安装目录下的NSC.ini文件,修改后,重启NSClient即可,如下图所示
 

(二) NSClient应用监控

8.1基于check_nt:

 
  1. 8.1.1 Windows端要启用的模块: 
  2.     [modules] 
  3.     CheckSystem.dll 
  4.     CheckDisk.dll 
  5.     FileLogger.dll 
  6.     NSClientListener.dll 
  7.     [settings] 
  8. allowed_hosts=10.15.62.199                 # 监控端IP 
  9. password=123456                         # 用于与监控端通信的密码(可以不添加) 
  10.   8.1.2 修改配置后要重启服务,在dos命令窗口执行如下命令: 
  11.     C:\Program Files\NSClient++>nsclient++ /stop    # 停止nsclient++服务 
  12.     C:\Program Files\NSClient++>nsclient++ /start    # 启动nsclient++服务 
  13.   8.1.3 在nagios端使用如下命令测试: 
  14.     check_nt -H <client ip> -p <port> -v <command> ... 
  15.     # check_nt -H 172.16.100.66 -p 12489 -s 123456 -v CPULOAD -w 80 -c 90 -l 5,80,90 
  16.   8.1.4 定义监控主机和服务对象: 
  17.     # vim /usr/local/nagios/etc/objects/windows.cfg 
  18.      define host{  
  19.        use          windows-server   
  20.        host_name        winserver 
  21.        alias            My Windows machine 
  22.        address      172.16.100.66 
  23.      } 
  24.     define service{ 
  25.       use                    generic-service 
  26.       host_name              winserver 
  27.       service_description       NSClient++ Version 
  28.       check_command         check_nt!CLIENTVERSION 
  29.     } 
  30.     define service { 
  31.       use                    generic-service 
  32.       host_name             winserver 
  33.       service_description       Uptime 
  34.       check_command         check_nt!UPTIME 
  35.     } 
  36.     define service { 
  37.       use                    generic-service 
  38.       host_name             winserver 
  39.       service_description       CPU Load 
  40.       check_command         check_nt!CPULOAD!-l 5,80,90 
  41.     } 
  42.     define service{ 
  43.       use                   generic-service 
  44.       host_name             winserver 
  45.       service_description       Memory Usage 
  46.       check_command         check_nt!MEMUSE!-w 80 -c 90 
  47.     } 
  48.    说明:如果NSClient++安装过程中使用了密码按以下操作 
  49.    # vim /usr/local/nagios/etc/objects/commands.cfg 
  50.     define command{ 
  51.     command_name    check_nt 
  52.     command_line        $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s "PASSWORD" -v $ARG1$   
  53.     $ARG2$ 
  54.     } 

8.2基于NRPE:

 
  1. 8.2.1 windows端的配置: 
  2.   8.2.1.1  NSClient++要启用如下模块: 
  3.     [modules] 
  4.     CheckSystem.dll 
  5.     CheckDisk.dll 
  6.     CheckExternalScripts.dll 
  7.     FileLogger.dll 
  8. NRPEListener.dll 
  9.     [NRPE]  
  10.     use_ssl 
  11.     allow_arguments 
  12. allow_nasty_meta_chars 
  13.   8.2.1.2 修改配置后要重启服务,在dos命令窗口执行如下命令: 
  14.     C:\Program Files\NSClient++>nsclient++ /stop    # 停止nsclient++服务 
  15.     C:\Program Files\NSClient++>nsclient++ /start    # 启动nsclient++服务 
  16. 8.2.2  Nagios端的配置: 
  17.  8.2.2.1  定义模板: 
  18.    define host{ 
  19.       name              tpl-windows-servers  
  20.       use                generic-host  
  21.       check_period        24x7 
  22.       check_interval       5 
  23.       retry_interval        1 
  24.       max_check_attempts  10 
  25.       check_command     check-host-alive 
  26.       notification_period   24x7 
  27.       notification_interval  30 
  28.       notification_options  d,r 
  29.       contact_groups      admins 
  30.       register            0  
  31.    } 
  32. 8.2.2.2  定义主机: 
  33.   define host{ 
  34.       use         tpl-windows-servers  
  35.       host_name   windowshost 
  36.       alias        My First Windows Server 
  37.       address     172.16.100.66 
  38.   } 
  39. 8.2.2.3  定义服务: 
  40.   define service{ 
  41.       use               generic-service 
  42.       host_name             windowshost 
  43.       service_description   CPU Load 
  44.       check_command     check_nrpe!alias_cpu 
  45.   } 
  46.   define service{ 
  47.       Use                generic-service 
  48.       host_name             windowshost 
  49.       service_description   Free Space 
  50.       check_command      check_nrpe!alias_disk 
  51.   } 
  52. 8.2.3  check_nrpe语法: 
  53.   check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] -c <command> [-a <argument> <argument>   
  54.   <argument>
  55.   check_nrpe的内置命令: 
  56.   • CheckAlwaysCRITICAL (check) 
  57.   • CheckAlwaysOK (check) 
  58.   • CheckAlwaysWARNING (check) 
  59.   • CheckCPU (check) 
  60.   • CheckCRITICAL (check) 
  61.   • CheckCounter (check) 
  62.   • CheckEventLog/CheckEventLog (check) 
  63.   • CheckFile (check) 
  64.   • CheckFileSize (check) 
  65.   • CheckMem (check) 
  66.   • CheckMultiple (check) 
  67.   • CheckOK (check) 
  68.   • CheckProcState (check) 
  69.   • CheckServiceState (check) 
  70.   • CheckTaskSched/CheckTaskSched (check) 
  71.   • CheckUpTime (check) 
  72.   • CheckVersion (check) 
  73.   • CheckWARNING (check) 
  74.   • CheckWMI/CheckWMI (check) 
  75.   • CheckWMIValue (check) 
  76.   用法示例如下: 
  77.   # check_nrpe -H <host> -c CheckCPU -a warn=80 crit=90 time=20m time=10s time=4 

8.3 基于NSCA

 
  1. 8.3.1 windows端的配置: 
  2.     8.3.1.1  NSClient++要启用如下模块: 
  3.       [modules] 
  4.       CheckSystem.dll 
  5.       CheckDisk.dll 
  6.       CheckExternalScripts.dll 
  7.       CheckHelpers.dll 
  8.       FileLogger.dll 
  9.       NSCAAgent.dll 
  10.    8.3.1.2  NSCA Agent配置: 
  11.       interval 
  12.       encryption_method 
  13.       password 
  14.       nsca_host 
  15.   8.3.1.3 修改配置后要重启服务,在dos命令窗口执行如下命令: 
  16.     C:\Program Files\NSClient++>nsclient++ /stop    # 停止nsclient++服务 
  17.     C:\Program Files\NSClient++>nsclient++ /start    # 启动nsclient++服务 
  18. 8.3.2  Nagios端的配置: 
  19.   8.3.2.1 定义模板: 
  20.     define host{ 
  21.       name                  tpl-windows-servers  
  22.       use                    generic-host  
  23.       check_period            24x7 
  24.       check_interval           5 
  25.       retry_interval            1 
  26.       max_check_attempts      10 
  27.       check_command          check-host-alive 
  28.       notification_period        24x7 
  29.       notification_interval       30 
  30.       notification_options       d,r 
  31.       contact_groups           admins 
  32.       register                 0 
  33.     } 
  34.  8.3.2.2 主机配置: 
  35.    define host{ 
  36.      use                   tpl-windows-servers 
  37.      host_name             windowshost  
  38.      alias                  My First Windows Server 
  39.      address               172.16.100.66  
  40.      active_checks_enabled   0             # 定义主动检测,0表示关闭,1表示开启 
  41.      passive_checks_enabled  1             # 定义被动检测,0表示关闭,1表示开启 
  42.    } 
  43.  8.3.2.2 服务配置: 
  44.    define service{ 
  45.      use                   generic-service 
  46.      host_name             windowshost 
  47.      service_description      CPU Load 
  48.      check_command        check_nrpe!alias_cpu 
  49.      active_checks_enabled   0  
  50.      passive_checks_enabled  1  
  51.    } 
  52.    define service{ 
  53.      use                   generic-service 
  54.      host_name             windowshost 
  55.      service_description      Free Space 
  56.      check_command        check_nrpe!alias_disk 
  57.      active_checks_enabled   0  
  58.      passive_checks_enabled  1  
  59.    }