得过且过 发表于 2015-9-8 11:53:49

Centos部署nagios+apache实现服务器监控

1.Nagios介绍
  nagios是 一款功能强大的网络监视工具,它可以有效的监控windows、linux、unix主机状态以及路由器交换机的网络设置,打印机工作状态等,并将状态出 现异常的服务及时以邮件、msn短信等形式第一时间通告管理员。由于它是一款遵循GPLv2的开源网络监控软件,以其出色的性能低廉的使用成本,深受广大 用户的好评。
  
2.安装前提
  2. 1确定是否有以下组件:
gcc glibc glibc-common gd gd-devel xinetd openssl-devel
  proc-devel pcre-devel perllibxml2-devel
  直接通过yum安装:
yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel proc-devel pcre-devel perl libxml2-devel
  
3.安装nagios,nagios-plugin
  创建nagios用户
  #adduser nagios
  安装nagios
  #tar xvf nagios-cn-3.2.0.tar
  #cd nagios-cn-3.2.0
  #./configure –prefix=/usr/local/nagios
  #make all
  #make install
  #make install-init
  #make install-commandmode
  #make install-config
  安装nagios-plugin
  #tar xvf nagios-plugins-2.0.tar.gz
  #cdnagios-plugins-2.0
  #./configure –prefix=/usr/local/nagios
  # make && make install
  
4.安装apache
  # tar xvf httpd-2.4.9.tar.gz
  #cd httpd-2.4.9
  #./configure --prefix=/usr/local/apache2
  # make && make install
  如果安装提示缺少apr和apr-util包
  #tar xvf apr-1.5.0.tar.gz
  #cd apr-1.5.0
  #./configure–prefix=/usr/local/apr
  #make && make install
  #tar xvf apr-1.5.0.tar.gz
  #cd apr-1.5.0
  #./configure–prefix=/usr/local/apr-util –with-apr=/usr/local/apr
  #make && make install
  安装好了之后在安装apache
  #./configure --prefix=/usr/local/apache2 –with-apr-util=/usr/local/apr-util
  #make && make install
  
5.安装php
  #tar xvf php-5.4.10.tar.gz
  #cd php-5.4.10
  #./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
  #make && make install
  
6.配置apahe
  找到apache 的配置文件/usr/local/apache2/conf/httpd.conf
  找到:
User daemon
Group daemon
修改为
User nagios
Group nagios
  
然后找到
<IfModule dir_module>
  DirectoryIndex index.html
</IfModule>
修改为
<IfModule dir_module>
  DirectoryIndex index.html index.php
  AddType application/x-httpd-php .php
</IfModule>
  为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf 文件最后添加如下信息:
#setting for nagios
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
   AuthType Basic
   Options ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Nagios Access"
   AuthUserFile /usr/local/nagios/etc/htpasswd         
   Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
   AuthType Basic
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "nagios Access"
   AuthUserFile /usr/local/nagios/etc/htpasswd
   Require valid-user
</Directory>
  创建apache目录验证文件
  # /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd ssap
  
7.启动apache和nagios
  启动apache
  # /usr/local/apache2/bin/apachectl start
  启动nagios
  Service nagios start

  nagios登录
  

  nagios首页
  
8.配置nagios
  Nagios安装完毕后,需要配置nagios,配置文件在/usr/local/nagios/etc目录下。
文件名或目录名
用途
cgi.cfg
控制CGI访问的配置文件
nagios.cfg
Nagios 主配置文件
resource.cfg
变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$
objects
objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
objects/commands.cfg
命令定义配置文件,其中定义的命令可以被其他配置文件引用
objects/contacts.cfg
定义联系人和联系人组的配置文件
objects/localhost.cfg
定义监控本地主机的配置文件
objects/printer.cfg
定义监控打印机的一个配置文件模板,默认没有启用此文件
objects/switch.cfg
定义监控路由器的一个配置文件模板,默认没有启用此文件
objects/templates.cfg
定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg
定义Nagios 监控时间段的配置文件
objects/windows.cfg
监控Windows 主机的一个配置文件模板,默认没有启用此文件
  假设我们nagios安装在IP为192.168.195.136的服务器上,需要监控192.168.195.136服务器,将对配置文件做以下修改:
  修改localhost.cfg
  define host{
  use                           linux-server
  host_name               Nagios-Server
  alias                           Nagios-Server
  address                     127.0.0.1
  }
  define hostgroup{
  hostgroup_name    linux-servers
  alias                           Linux Servers
  members                  Nagios-Server
  }
  define service{
  use                                     local-service   
  host_name                     Nagios-Server
  service_description      PING
  check_command            check_ping!100.0,20%!500.0,60%
  }
  define service{
  use                                     local-service   
  host_name                     Nagios-Server
  service_description      Root Partition
  check_command             check_local_disk!20%!10%!/
  }
  define service{
  use                                     local-service      
  host_name                     Nagios-Server
  service_description         Current Users
  check_command            check_local_users!20!50
  }
  define service{
  use                                     local-service      
  host_name                     Nagios-Server
  service_description      Total Processes
  check_command             check_local_procs!250!400!RSZDT
  }
  define service{
  use                                     local-service,srv-pnp      
  host_name                     Nagios-Server
  service_description      Current Load
  check_command             check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
  }
  define service{
  use                                     local-service      
  host_name                     Nagios-Server
  service_description      Swap Usage
  check_command             check_local_swap!20!10
  }
  define service{
  use                                     local-service   
  host_name                     Nagios-Server
  service_description      SSH
  check_command             check_ssh
  notifications_enabled   0
  }
  define service{
  use                                     local-service   
  host_name                     Nagios-Server
  service_description         HTTP
  check_command            check_http
  notifications_enabled      0
  }
  
  新增hosts.cfg
  define host{
  use                     linux-server
  host_name       test-Linux
  alias                   test-Linux
  address             192.168.195.137
  }
  
  新增service.cfg
  define service{
  use                                 local-service
  host_name                   test-Linux
  service_description   check-host-alive
  check_command          check-host-alive
  }
  
  修改nagios.cfg
  添加配置文件hosts.cfg,service.cfg
  cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
  cfg_file=/usr/local/nagios/etc/objects/service.cfg
  检测修改的配置
  /usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
  检测无误后,重新启动nagios服务
  Service nagios restart

  nagios监控页
  
注意事项:
  1) 如果设置的用户名不是nagiosadmin,会存在权限问题,不能访问监控页面,需要修改cgi.cfg,在nagiosadmin后追加自己设置的用户名。

  nagios登录用户权限配置
  
  2)Nagios乱码问题
  主要是apache没有开启cgi脚本的缘故,进入apache的主配置文件httpd.conf;
  #LoadModule cgid_module modules/mod_cgid.so;
  #LoadModule actions_module modules/mod_actions.so;
  将上面2行的#去掉,重启apache就OK了。
页: [1]
查看完整版本: Centos部署nagios+apache实现服务器监控