1.平台及所用组件, 监控服务器:RHEL4(192.168.1.211)+nagios-3.2.0+ nagios-plugins-1.4.14+ nrpe-2.12 被监控端RHEL4 (192.168.1.212)+ nagios-plugins-1.4.14+ nrpe_2.12 内容简介 本文档介绍nagios监控linux服务器, 因为监控都是依靠插件去完成的,而监控linux主要使用NRPE插件,本文首先简单介绍一下NRPE监控基础,及监控过程,然后一步步的配置一个实例实现监控linux服务器 1.NRPE监控插件基础 NRPE总共由两部分组成: check_nrpe插件,运行在监控主机上。 NRPE daemon,运行在远程的linux主机上(通常就是被监控机) 整个的监控过程:(如下图) 当Nagios需要监控某个远程linux主机的服务或者资源情况时: 1).nagios运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么. 2).check_nrpe插件会通过SSL连接到远程的NRPE daemon. 3).NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务. 4).NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理. 注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项, ./configure --enable-ssl --with-ssl-lib=/lib/,否则也会出错. 一.配置监控端 1.1 安装nagios useradd -r nagios -s /sbin/nologin ./configure --prefix=/usr/local/nagios-4.0.8 make all make install make install-init make install-config make install-commandmode (make install-webconf #可以自动配置httpd.conf) cp sample-config/httpd.conf /usr/local/apache/conf/extra/nagios.conf /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin (nagiosadmin 要与 /usr/local/nagios/etc/objects/contacts.cfg 里的 contact_name 相同) chkconfig --add nagios chkconfig --levels 345 nagios on chown -R nagios.nagios nagios-4.0.8 ln -s nagios-4.0.8 nagios 1.2 安装nagios-plugins cd nagios-plugins-1.4.12 ./configure --prefix=/usr/local/nagios-4.0.8 --with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround make make install 1.3 安装NRPE cd nagios-nrpe_2.12 ./configure #默认自动添加了openssl ./configure --prefix=/usr/local/nagios-4.0.8 --enable-ssl --with-ssl-lib=/lib/ make all make install-plugin make install-daemon make install-daemon-config 1.4 commands.cfg定义外部构件nrpe vi /usr/local/nagios/etc/objects/commands.cfg #添加 #check nrpe define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } 1.5.配置要监控的linux主机 vi /usr/local/nagios/etc/nagios.cfg #中间添加 cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg vi /usr/local/nagios/etc/objects/mylinux.cfg define host{ use linux-server host_name mylinux alias mylinux # 客户端IP address 192.168.1.212 } define service{ use generic-service host_name mylinux service_description check-swap check_command check_nrpe!check_swap } define service{ use generic-service host_name mylinux service_description check-load check_command check_nrpe!check_load } define service{ use generic-service host_name mylinux service_description check-disk check_command check_nrpe!check_hda1 } define service{ use generic-service host_name mylinux service_description check-users check_command check_nrpe!check_users } define service{ use generic-service host_name mylinux service_description otal_procs check_command check_nrpe!check_total_procs } 1.6.其它设置 chkconfig --add nagios #配置机器启动时自动启动Nagios chkconfig nagios on /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #检查Nagios配置文件 vi /etc/selinux/config #关闭SELinux SELINUX=disabled service iptables stop #关闭SELinux,或打开80,5666端口 service nagios start 二. 配置WEB服务: 2.1 安装httpd和php yum install httpd php -y 2.2配置nagios的web服务: 在/etc/httpd/http.d中建立nagios.conf文件: [root@yucheng22 tmp]# cat nagios.conf # SAMPLE CONFIG SNIPPETS FOR APACHE WEB SERVER # # This file contains examples of entries that need # to be incorporated into your Apache web server # configuration file. Customize the paths, etc. as # needed to fit your system. ScriptAlias /nagios/cgi-bin "/usr/local/nagios-4.0.8/sbin" <Directory "/usr/local/nagios-4.0.8/sbin"> # SSLRequireSSL Options ExecCGI AllowOverride None Order allow,deny Allow from all # Order deny,allow # Deny from all # Allow from 127.0.0.1 AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios-4.0.8/etc/htpasswd.users Require valid-user </Directory> Alias /nagios "/usr/local/nagios-4.0.8/share" <Directory "/usr/local/nagios-4.0.8/share"> # SSLRequireSSL Options None AllowOverride None Order allow,deny Allow from all # Order deny,allow # Deny from all # Allow from 127.0.0.1 AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios-4.0.8/etc/htpasswd.users Require valid-user </Directory> 在/etc/http/conf的http.conf中找到: DirectoryIndex index.html index.html.var 修改为: DirectoryIndex index.html index.html.var index.php 产生密码文件: htpasswd -mb -c /usr/local/nagios-4.0.8/etc/htpasswd.users1 nagios nagios 三. 配置被监控端 3.1.安装nagios-plugin useradd nagios -r -s /sbin/nologin tar -zxvf nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure --prefix=/usr/local/nagios-plugins-2.0.3 --with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround make make install ln -s nagios-plugins-2.0.3 nagios-plugins 3.2 改变主目录权限 chown -R nagios:nagios /usr/local/nagios-plugins [root@client nagios]# ll drwxr-xr-x 2 nagios nagios 4096 Jun 1 00:07 libexec drwxr-xr-x 3 nagios nagios 4096 Jun 1 00:07 share 3.3安装客户端的nrpe tar -zxvf nrpe_2.12.tar.gz cd nrpe_2.12 ./configure --prefix=/usr/local/nagios-plugins-2.0.3 --enable-ssl --with-ssl-lib make all make install-plugin make install-daemon make install-daemon-config 3.4.配置nrpe信息 vi /usr/local/nagios-plugins/etc/nrpe.cfg allowed_hosts=127.0.0.1,192.168.1.211 3.5.启动nrpe /usr/local/nagios-plugins/bin/nrpe -c /usr/local/nagios-plugins/etc/nrpe.cfg -d #或 vi /etc/rc.d/rc.local /usr/local/nagios-plugins/bin/nrpe -c /usr/local/nagios-plugins/etc/nrpe.cfg -d 3.6.验证nrpe netstat -an | grep 5666 tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN /usr/local/nagios-plugins/libexec/check_nrpe -H 127.0.0.1 NRPE v2.8.12 #服务端测试 /usr/local/nagios-plugins/libexec/check_nrpe -H l92.168.1.212 -p 5666 -c check_load NRPE v2.8.12 3.7.配置监控对像(关键) 由监控原理可知被监控端做监控然后传给监控服务器绘总,设置监控详细参数主要是设置被监控端的nrpe.cfg文件 可以看到里面监控对象 vi /usr/local/nagios-plugins/etc/nrpe.cfg command[check_users]=/usr/local/nagios-plugins/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios-plugins/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/usr/local/nagios/libexec-plugins/check_disk -w 20 -c 10 -p /dev/hda1 command[check_zombie_procs]=/usr/local/nagios-plugins/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/local/nagios-plugins/libexec/check_procs -w 150 -c 200 command[check_swap]=/usr/local/nagios-plugins/libexec/check_swap -w 20% -c 10% 3.8.常用启动命令: 监控端进程启动方式: /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg service ngios start 被监控端进程启动方式: /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d