nagios 的安装与配置

Nagios  特性
监控网络服务( SMTPPOP3HTTPNNTPPING等);
监控主机资源(处理器负荷、磁盘利用率等);
简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
并行服务检查机制;
具备定义网络分层结构的能力,用 "parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
当服务或主机问题产生与解决时将告警发送给联系人(通过 EMail、短信、用户定义方式);
具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
自动的日志回滚;
可以支持并实现对主机的冗余监控;
可选的 WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等


Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。启动 Nagios后,它会周期性的自动调用插件去检测服务器状态,同时 Nagios 会维持一个队列,所有插件返回来的状态信息都进入队列, Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过 web 显示出来。 Nagios 提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在 nagios 主目录下的 /libexec 里放有 nagios 自带的可以使用的所有插件,如, check_disk 是检查磁盘空间的插件, check_load是检查 CPU负载的,等等。每一个插件可以通过运行 ./check_xxx �C h 来查看其使用方法和功能。 Nagios 可以识别 4 种状态返回信息,即 0(OK)表示状态正常、 1(WARNING)表示出现一定的异常、 2(CRITICAL)表示出现非常眼中的错误、 3(UNKNOWN)表示被监控的对象已经停止了。
Nagios 通过 NRPE 来远端管理服务
 
1.Nagios 执行安装在它里面的 check_nrpe 插件,并告诉 check_nrpe 去检测哪些服务。
 
2. 通过 SSLcheck_nrpe 连接远端机子上的 NRPE daemon
 
3.NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)
 
4. 最后,NRPE 把检测的结果传给主机端的 check_nrpecheck_nrpe 再把结果送到 Nagios状态队列中。
 
5.Nagios 依次读取队列中的信息,再把结果显示出来

安装前的准备工作

(1)解决安装Nagios的依赖关系:

Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装:
# yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server

(2)所需要安装组件:
服务端所用的安装包为 nagios nagios-plugins ndoutils(非必须)
linux客户端 nrpe
windows客户端 NSClient++
(3)
进行selinux设置,或者关闭selinux
开始搭建:
(1)添加nagios运行所需要的用户和组:


# useradd nagios


把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -g nagios apache

2、编译安装nagios:

# tar zxf nagios-3.1.2.tar.gz
# cd nagios-3.1.2
# ./configure --with-command-group=nagios --enable-event-broker --prefix=/var/www/nagios
# make all
# make install
# make install-init
# make install-config
# make install-commandmode

为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
# vi /usr/local/nagios/etc/objects/contacts.cfg
email        nagios@localhost        #这个是默认设置

在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:
# make install-webconf

创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
# htpasswd -c /var/www/nagios/etc/htpasswd.users nagiosadmin

以上过程配置结束以后需要重新启动httpd:
# service httpd restart

3、编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。

# tar zxf nagios-plugins-1.4.13.tar.gz
# cd nagios-plugins-1.4.13
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/var/www/nagios --with-mysql
确定mysql的库文件位置没有错,但是编译时候跳过找不到采用以下方法解决:
1、如果在编译过程中找不到mysql,cp /usr/lib/mysql到/usr/lib/pkgconfig 即可
2、可以去网上找check_mysql的脚本 或者安装开发库组 在指定mysql的库目录
# make
# make install

4、配置并启动Nagios

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
# chkconfig --add nagios
# chkconfig nagios on

(2)检查其主配置文件的语法是否正确:
# /var/www/nagios/bin/nagios  -c /var/www/nagios/etc/nagios.cfg

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

(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
#getenforce

如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#setenforce 0

如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。

当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share

(5)通过web界面查看nagios:
http://your_nagios_IP/nagios

登录时需要指定前面设定的web认证帐号和密码。
##################################################################
windos端
1.被监控端安装NSClient++-0.3.8-Win32.msi
2.安装完成后修改配置文件NSC.ini把需要的库都打开

3.在监控服务器上修改nagios配置文件nagios.cfg
去掉注释cfg_file=/usr/local/nagios/etc/objects/windows.cfg
定义windows.cfg
define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we're giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         192.168.0.191   ; 你主机的IP
        }
#################################################################
linux端
被监控端
先添加nagios用户
useradd nagios
为了安装nrpe,先安装nagios-plugins-1.4.15.tar.gz 插件
# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install
tar -zxvf nrpe-2.12.tar.gz
cd nrpe-2.12.tar.gz
./configure  (会自动加载SSL)
#如果后面make报错,加如下参数
./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)
make all
make install-plugin
make install-daemon
make install-daemon-config
4.配置nrpe信息
vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1  //允许监控的IP
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg �Cd
 
服务端
3.安装NRPE
cd nagios-nrpe_2.8.1
./configure   #默认自动添加了openssl
#因为传送过程要加密,如果后面make报错,加如下参数
rpm -qa| grep ssl
openssl-devel-0.9.7a-43.17.el4_6.1
rpm -ql openssl-devel-0.9.7a-43.17.el4_6.1 | more
./configure --enable-ssl --with-ssl-lib=/lib/(当然前提要有openssl)
make all
make install-plugin
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$
        }
定义 mylinux.cfg
define host{
           use             linux-server
          host_name     mylinux
          alias            mylinux
          address        192.168.0.27(客户端IP既被监控的IP)
        }
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_had1
       }
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
}
#################################################################################
define service{
        use                    generic-service
        host_name           mylinux
        service_description  httpd
        check_command     check_http! -H 192.168.0.27
}
###########################################################################################################
nagios监控mysql服务器:
 
1、建立专用数据库:
[root@svr3 ~]# /usr/local/webserver/mysql/bin/mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 51910
Server version: 5.5.3-m3-log Source distribution
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> create database nagios;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant select on nagios.* to nagios@'%' identified by '123qweasd';
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> select User,Password,Host from user;
+----------------+-------------------------------------------+------------------+
| User           | Password                                  | Host             |
+----------------+-------------------------------------------+------------------+
| root           | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | localhost        |
| nagios         | *A1F1CB851D62F002C09A0C9C4A76262473432F55 | %                |
+----------------+-------------------------------------------+------------------+
14 rows in set (0.00 sec)
12 rows in set (0.00 sec)
 
[root@svr3 ~]# /var/www/nagios/libexec/check_mysql -H 10.1.1.30 -u nagios -d nagios -p 123qweasd
Uptime: 970046  Threads: 1  Questions: 684583  Slow queries: 3  Opens: 672  Flush tables: 1  Open tables: 
 
369  Queries per second avg: 0.705
 
[root@svr4 nrpe_install]# /var/www/nagios/libexec/check_mysql -H 10.1.1.30 -u nagios -d nagios -p 123qweasd
Uptime: 970348  Threads: 1  Questions: 684584  Slow queries: 3  Opens: 672  Flush tables: 1  Open tables: 369  Queries per second avg: 0.705
 
果断开始设置:
#定义用户
#定义组,及隶属用户
#用户增加
 
在command.cfg里增加插件命令:
#check mysql
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -d nagios -p 123qweasd
}
 
#定义服务:
define service {
        host_name mysql
     
        check_period 24x7
        max_check_attempts 2
        normal_check_interval 1
        retry_check_interval 1
        contact_groups admins
        notification_interval 5
        notification_period 24x7
        notification_options w,u,c,r
        check_command check_mysql
        }
       
       
飞信报警
1.修改模板文件
修改concont.cfg
2.
修改
 commands.cfg
define command{
        command_name notify-service-by-fetion
        command_line      /usr/bin/fetion --mobile 15003880800 --pwd 123qweQWE --to 15003880800 --msg-tpye=0  --msg-utf8 $HOSTNAME
 
 

你可能感兴趣的:(原理,特性,nagios)