实验环境如下

Nagios监控服务器IP:192.168.11.5

××× 监控服务器IP:192.168.11.6

Nagios 配置如下:

一 、安装Apache+php

1 编译安装apache服务器。(在之前的博客中已经写过,这里就偷懒了。)

2 编译安装php

  1. yum install libxml2-devel 
  2. Cd  /usr/local/php-5.4.3 
  3. ./configure--prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs 
  4. make  && make install 

3 修改apache的配置文件

  1. vi /usr/local/apache2/conf/httpd.conf 
  2. <IfModule dir_module>  
  3.     DirectoryIndex index.html index.php   # 添加 index.php 
  4. IfModule> 
  5.  
  6. #LoadModule rewrite_module modules/mod_rewrite.so 
  7. LoadModule php5_module        modules/libphp5.so #添加 
  8.  
  9.    AddType application/x-compress .Z 
  10.     AddType application/x-gzip .gz .tgz 
  11. AddType application/x-httpd-php .php  # 添加 

4 测试php是否安装成功

  1. cd /usr/local/apache2/htdocs/ 
  2. vi test.php  
  3. php 
  4. phpinfo(); 
  5. ?> 

5 使用游览器访问

 php到此安装成功

二 、安装Nagios监控服务器

安装nagios

1 安装nagios

  1.  useradd -s /sbin/nologin nagios # 建立nagios用户 
  2. cd /usr/local/nagios-3.2.3/  
  3. ./configure --prefix&#61;/usr/local/nagios 
  4. make all 
  5. make install 
  6. make install-init #在/etc/rc.d/init.d/目录下创建启动脚本 
  7. make install-commandmode #配置目录权限 
  8. make install-config #安装nagios示例配置文件&#xff0c;这里安装路径为/usr/local/nagios/etc 

 2 安装nagios 插件

  1. cd /usr/local/nagios-plugins-1.4.15/ 
  2.  ./configure --prefix&#61;/usr/local/nagios #这里插件安装的位置与nagios相同 
  3. make &&  make install   

&#xff13; 配置apache &#xff0c;使用apache支持nagios

  1. vi /usr/local/apache2/conf/httpd.conf  
  2. 修改为 
  3. User nagios 
  4. Group nagios 
  5. 最后添加 
  6. #nagios 
  7. ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" 
  8. <Directory "/usr/local/nagios/sbin"> 
  9.         AuthType Basic 
  10.         Options ExecCGI 
  11.         AllowOverride None 
  12.         Order allow,deny 
  13.         Allow from all 
  14.         AuthName "Nagios Access" 
  15.         AuthUserFile /usr/local/nagios/etc/htpasswd 
  16.         Require valid-user 
  17. Directory> 
  18.   
  19. Alias /nagios "/usr/local/nagios/share" 
  20. <Directory "/usr/local/nagios/share"> 
  21.         AuthType Basic 
  22.         Options None 
  23.         AllowOverride None 
  24.         Order allow,deny 
  25.         Allow from all 
  26.         AuthName "Nagios Access" 
  27.         AuthUserFile /usr/local/nagios/etc/htpasswd 
  28.         Require valid-user 
  29. Directory> 

4 创建nagios访问的用户 用户名称为nagios

  1.  /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd naigos   
  2. New password:   
  3. Re-type new password:   
  4. Adding password for user naigos  

5 启动apache

  1. /usr/local/apache2/bin/apachectl restart 

6 修改naigos的权限

  1. chown nagios.nagios /usr/local/nagios 
  2.  chown nagios.nagios -R /usr/local/nagios/libexec/ 

7 使用游览器访问nagios服务器

显示乱码&#xff0c;解决方法&#xff1a;

 

主要是apache没有开启cgi脚本的缘故

进入apache的主配置文件httpd.conf

  1. vi /usr/local/apache2/conf/httpd.conf 
  2. #LoadModule cgid_module modules/mod_cgid.so 
  3. #LoadModule actions_module modules/mod_actions.so 
  4. 将上面2行的#去掉&#xff0c;重启apache就OK了 

 

8 配置nagios服务器

  1. [root&#64;localhost local]# cd /usr/local/nagios-3.2.3/ 
  2. [root&#64;localhost nagios-3.2.3]# cd /usr/local/nagios 
  3. [root&#64;localhost nagios]# ls 
  4. bin  etc  include  libexec  sbin  share  var 
  5. [root&#64;ac96548d etc]# vi /usr/local/nagios/etc/cgi.cfg
  6. main_config_file&#61;/usr/local/nagios/etc/nagios.cfg
  7. physical_html_path&#61;/usr/local/nagios/share
  8. url_html_path&#61;/nagios show_context_help&#61;0
  9. use_pending_states&#61;1
  10. use_authentication&#61;1
  11. use_ssl_authentication&#61;0
  12. default_user_name&#61;nagios
  13. authorized_for_system_information&#61;nagiosadmin,nagios
  14. #添加刚才使用htpasswd建立的用户naigos &#xff08;使用nagios于nagiosadmin用户才能看到监控的主机&#xff09;
  15. authorized_for_configuration_information&#61;nagiosadmin,nagios
  16. authorized_for_system_commands&#61;nagios
  17. authorized_for_all_services&#61;nagiosadmin,nagios
  18. authorized_for_all_hosts&#61;nagiosadmin,nagios
  19. authorized_for_all_service_commands&#61;nagiosadmin,nagios
  20. authorized_for_all_host_commands&#61;nagiosadmin,nagios
  21. default_statusmap_layout&#61;5 default_statuswrl_layout&#61;4
  22. ping_syntax&#61;/bin/ping -n -U -c 5 $HOSTADDRESS$
  23. refresh_rate&#61;90 escape_html_tags&#61;1
  24. action_url_target&#61;_blank notes_url_target&#61;_blank lock_author_names&#61;1
  25.  
  26. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检测nagios的配置文件是否有语法错误
  27. /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 启动nagios监控服务器

9 通过游览器可以看到nagios监控服务器本机的状态

至此 nagios监控服务器安装成功

三、配置被监控的linux 主机 &#xff08;***主机&#xff09;

1 安装nagios-plugins和nrpe插件

  1. Yum –y  install gcc 
  2. useradd   -s /sbin/nologin nagios 
  3. 安装nagios-plugins 
  4. tar xzvf nagios-plugins-1.4.15.tar.gz 
  5. cd nagios-plugins-1.4.15 
  6. ./configure –prefix&#61;/usr/local/nagios 
  7. make 
  8. make install 
  9.   
  10. 安装 nagios_nrpe_2.9 
  11. wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.9/nrpe-2.9.tar.gz 
  12. tar xzvf  nrpe-2.9.tar.gz 
  13. cd nrpe-2.9 
  14. ./configure --with-command-group&#61;nagios  --prefix&#61;/usr/local/nagios  
  15. (如果报缺少ssl&#xff0c;请安装 yum  install  openssl-devel) 
  16. make all 
  17. make install-plugin 
  18. make install-daemon 
  19. make install-daemon-config 

 2 修改nrpe的配置文件

  1. vi /usr/local/nagios/etc/nrpe.cfg 
  2. 找到 allowed_hosts&#61;127.0.0.1 
  3. 后面加nagios服务器的IP, 用“,”隔开&#xff0c;加了之后如下&#xff1a; 
  4. allowed_hosts&#61;127.0.0.1,192.168.11.5
  5.   

 3 配置nrpe的监控对象

 

  1. #配置监控对象 
  2. 说明&#xff1a;由监控原理可知被监控端做监控&#xff0c;然后将数据传给监控服务器绘总,设置监控详细参数主要是设置被监控端的nrpe.cfg文件&#xff0c;可以看到里面监控对象 
  3. vi /usr/local/nagios/etc/nrpe.cfg&#xff0c;查找并修改如下一行 
  4. command[check_users]&#61;/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]&#61;/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_sda5]&#61;/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda5 command[check_zombie_procs]&#61;/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]&#61;/usr/local/nagios/libexec/check_procs -w 150 -c 200 command[check_***]&#61;/usr/local/nagios/libexec/check_*** -w 150 -c 200  
  5. ............................................#自已添加..........................................................   
  6. #command[check_http]&#61;/usr/local/nagios/libexec/check_http -I 127.0.0.1 -w 10 -c 20 
  7. #command[check_ssh]&#61;/usr/local/nagios/libexec/check_ssh -4 127.0.0.1 

注释 在/usr/local/nagios/libexec 这个目录下&#xff0c;都是监控脚本(当我们需要监控特定服务时&#xff0c;需要在此目录下创建监控脚本&#xff0c;然后

在nrpe.cfg的配置文件中添加监控的命令)

  1. [root&#64;localhost libexec]# ls 
  2. check_apt       check_dummy         check_ircd      check_ntp       check_rpc      check_wave 
  3. check_breeze    check_file_age      check_load      check_ntp_peer  check_sensors  negate 
  4. check_by_ssh    check_flexlm        check_log       check_ntp_time  check_smtp     urlize 
  5. check_clamd     check_ftp           check_mailq     check_nwstat    check_ssh      utils.pm 
  6. check_cluster   check_http          check_mrtg      check_oracle    check_swap     utils.sh 
  7. check_dhcp      check_icmp          check_mrtgtraf  check_overcr    check_tcp 
  8. check_dig       check_ide_smart     check_nagios    check_ping      check_time 
  9. check_disk      check_ifoperstatus  check_nntp      check_pop       check_udp 
  10. check_disk_smb  check_ifstatus      check_nrpe      check_procs     check_ups 
  11. check_dns       check_imap          check_nt        check_real      check_user 

 4 启动nrpe

  1. 启动nrpe&#xff0c;并测试 
  2. /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d  启动nrpe
  3. echo &#39;/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d &> /dev/null&#39; 
  4. >> /etc/rc.local 设置开机自启动 
  5. netstat -atulnp | grep &#39;nrpe&#39; 
  6. tcp        0      0 0.0.0.0:5666                0.0.0.0:*       LISTEN      3308/nrpe 
  7. /usr/local/nagios/libexec/check_nrpe -H localhost 
  8. NRPE v2.12 

 四、配置监控服务器 &#xff08;nagios服务器&#xff09;

1 添加需要监控的linux客户端

  1.  vi /usr/local/nagios/etc/nagios.cfg 
  2. cfg_file&#61;/usr/local/nagios/etc/objects/localhost.cfg 
  3. cfg_file&#61;/usr/local/nagios/etc/objects/***.cfg # 添加此行 

2、在commands.cfg中添加nrpe插件

 

  1. vi /usr/local/nagios/etc/objects/commands.cfg  
  2. #check nrpe 
  3. define command{ 
  4. command_name check_nrpe 
  5. command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 

3、建立被监控服务器的配置文件&#xff08;***.cfg&#xff09; 

  1. vi /usr/local/nagios/etc/objects/***.cfg 
  2. define host{ 
  3.         use                     linux-server            ; Name of host template to use 
  4.         host_name               *** 
  5.         alias                   *** 
  6.         address                 192.168.11.6
  7.         } 
  8. define hostgroup{ 
  9.         hostgroup_name  *** ; The name of the hostgroup 
  10.         alias           Linux Servers ; Long name of the group 
  11.         members         *** Server 
  12.         } 
  13. define service{ 
  14.         use                             local-service         ; Name of service template to use 
  15.         host_name                        *** 
  16.         service_description             PING 
  17.         check_command                   check_ping!100.0,20%!500.0,60% 
  18.         } 
  19. define service{ 
  20.         use                             local-service         ; Name of service template to use 
  21.          host_name                     *** 
  22.         service_description             disk 
  23.         check_command                   check_nrpe!check_sda5 

     # 通过nrpe插件监控***服务器的硬盘

  24.         } 
  25.  
  26. define service{ 
  27.         use                             local-service         ; Name of service template to use 
  28.         host_name                       *** 
  29.         service_description             SSH 
  30.         check_command                   check_ssh 
  31.         notifications_enabled           0 
  32.         } 
  33. define service{ 
  34.         use                             local-service         ; Name of service template to use 
  35.         host_name                        *** 
  36.         service_description             ××× 
  37.         check_command                   check_tcp!1723  #监控tcp的1723端口
  38.         notifications_enabled           0 
  39.         } 

 当我们使用相同的参数监控多台服务器时候&#xff0c;我们可以建立组的方式&#xff0c;这样不必建立多个配置文件&#xff0c;例如监控多台tomcat 服务器

 

  1.  vi /usr/local/nagios/etc/nagios.cfg 
  2. cfg_file&#61;/usr/local/nagios/etc/objects/localhost.cfg 
  3. cfg_file&#61;/usr/local/nagios/etc/objects/***.cfg # 添加此行 
  4. cfg_file&#61;/usr/local/nagios/etc/objects/tomcat.cfg # 添加此行 

 

 当有多台服务器时候使用组的优点

  1. vi /usr/local/nagios/etc/objects/tomcat.cfg 
  2. define host{ 
  3.         use                     linux-server            ; Name of host template to use 
  4.                                                         ; This host definition will inherit all variables that are defined 
  5.                                                         ; in (or inherited by) the linux-server host template definition. 
  6.         host_name               Tomcat1 
  7.         alias                   web1 
  8.         address                192.168.11.7
  9.         } 
  10. define host{ 
  11.         use                     linux-server            ; Name of host template to use 
  12.                                                         ; This host definition will inherit all variables that are defined 
  13.                                                         ; in (or inherited by) the linux-server host template definition. 
  14.         host_name               Tomcat2 
  15.         alias                   web2 
  16.         address               192.168.11.8
  17.         } 
  18. define host{ 
  19.         use                     linux-server            ; Name of host template to use 
  20.                                                         ; This host definition will inherit all variables that are defined 
  21.                                                         ; in (or inherited by) the linux-server host template definition. 
  22.         host_name               Tomcat3 
  23.         alias                   web3 
  24.         address                 192.168.11.9
  25.         } 
  26. define host{ 
  27.         use                     linux-server            ; Name of host template to use 
  28.                                                         ; This host definition will inherit all variables that are defined 
  29.                                                         ; in (or inherited by) the linux-server host template definition. 
  30.         host_name               Tomcat4 
  31.         alias                   web4 
  32.         address               192.168.11.10
  33.         } 
  34. define host{ 
  35.         use                     linux-server            ; Name of host template to use 
  36.                                                         ; This host definition will inherit all variables that are defined 
  37.                                                         ; in (or inherited by) the linux-server host template definition. 
  38.         host_name               Tomcat5 
  39.         alias                   web5 
  40.         address                 192.168.11.11
  41.         } 
  42. define host{ 
  43.         use                     linux-server            ; Name of host template to use 
  44.                                                         ; This host definition will inherit all variables that are defined 
  45.                                                         ; in (or inherited by) the linux-server host template definition. 
  46.         host_name               Tomcat6 
  47.         alias                   web6 
  48.         address                 192.168.11.12
  49.         } 
  50. define hostgroup{ 
  51.         hostgroup_name  Tomcat ; The name of the hostgroup 
  52.         alias           Linux Servers ; Long name of the group 
  53.         members         Tomcat1,Tomcat2,Tomcat3,Tomcat4,Tomcat5,Tomcat6     ; Comma separated list of hosts that belong to this group 
  54.         }  #在组中添加hostname
  55. define service{ 
  56.         use                             local-service         ; Name of service template to use 
  57.         hostgroup_name                       Tomcat  #由 host_name 改成hostgroup—name
  58.         service_description             PING 
  59.         check_command                   check_ping!100.0,20%!500.0,60% 
  60.         } 
  61.  
  62. define service{ 
  63.         use                             local-service         ; Name of service template to use 
  64.         hostgroup_name                       Tomcat 
  65.         service_description             SSH 
  66.         check_command                   check_ssh 
  67.         notifications_enabled           0 
  68.         } 
  69. define service{ 
  70.         use                             local-service         ; Name of service template to use 
  71.         hostgroup_name                       Tomcat 
  72.         service_description             HTTP 
  73.         check_command                   check_http 
  74.         notifications_enabled           0 
  75.         } 

4、通过游览器访问nagios服务器