Nagios

 Nagios 系统介绍

  Nagios是一个用来监视系统和网络的开源应用软件,它通常运行于一个主服务器上,
  这个服务器运行 Liunx 或 Unix 操作系统。Nagios 利用其众多的插件实现对本机和远端服务的监控,当被监控对象出现异常,Nagios 就会及时给管理人员告警。它是一个基于 TCP/IP
  协议的软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,也可以通过自定义 shell 脚本进行监控服务,非常适合各类企业的网络应用。
 Nagios 系统的主要特点
  Nagios 系统的特点主要有下面几点:
  1.监控主机资源和网络服务
  2.允许用户通过设计实现简单的插件来监控自己特定的服务
  3.当被监控对象出现问题时,会及时通知管理人员
  4.事先定义事件处理程序,当对象出现问题时自动调用对应的处理程序
  5.通过 web 页面来监视对象状态,警告提示和日志文件。
  可见,Nagios 采用分布--集中的管理模式。在 Nagios 服务器上安装 Nagios 主程序,
  在被监控主机上安装 Nagios 代理程序。通过 Nagios 主程序和 Nagios 代理程序之间的通讯,监视对象的状态。
 
以下是我在RHEL5.4上进行的配置过程:
准备软件包

nagios-3.2.1.tar.gz
nagios-plugins-1.4.14.tar.gz
nrpe-2.12.tar.gz
安装必备软件包:

[root@station1 ~]# yum -y install httpd gcc glibc glibc-common gd gd-devel php

 

支持PHP

 

[root@station1 ~]# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.html.var index.php index.phps

 

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 

[root@station1 html]# cat index.php
<?php
 phpinfo();
?>
[root@station1 html]#
 
创建nagios用户与组(用户组nagcmd用于从web接口执行外部命令.)

[root@station1 ~]# useradd nagios;passwd nagios

Changing password for user nagios.

New UNIX password:

BAD PASSWORD: it is too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@station1 ~]# groupadd nagcmd

[root@station1 ~]# usermod -G nagcmd nagios

[root@station1 ~]# usermod -G nagcmd apache

[root@station1 ~]#

 

下载并安装nagios (下载站点: http://www.nagios.org/download)

[root@station1 src]# cd /usr/local/src/

[root@station1 src]# ls

nagios-3.2.1.tar.gz  nagios-plugins-1.4.14.tar.gz  nrpe-2.12.tar.gz

[root@station1 src]# tar zxvf nagios-3.2.1.tar.gz

[root@station1 src]# cd nagios-3.2.1

[root@station1nagios-3.2.1]#./configure–with-command-group=nagcmd –prefix=/usr/local/nagios

[root@station1nagios-3.2.1]#make all

[root@station1nagios-3.2.1]#make install                 #安装主程序,CGIHTML文件

[root@station1nagios-3.2.1]#make install-init              #/etc/rc.d/init.d安装启动脚本

[root@station1nagios-3.2.1]#make install-config           #安装示例配置文件

[root@station1nagios-3.2.1]#make install-commandmode    #配置目录权限

 

验证是否安装成功:

[root@station1 nagios]# pwd

/usr/local/nagios

[root@station1 nagios]# ls

bin  etc  libexec  sbin  share  var

[root@station1 nagios]# cd var/

[root@station1 var]# ls

archives  rw  spool

[root@station1 var]

 

编译并安装nagios插件 nagiosplugins

[root@station1 src]# tar zxvf nagios-plugins-1.4.14.tar.gz

[root@station1 src]# cd nagios-plugins-1.4.14

[root@station1nagios-plugins-1.4.14]#./configure--with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/

[root@station1nagios-plugins-1.4.14]# make && make install

验证插件是否安装成功:

[root@station1 nagios]# du -h libexec/

3.4M    libexec/

[root@station1 nagios]#

配置Apache

[root@station1 ~]# vim /etc/httpd/conf/httpd.conf

 

###############################

#  setting for nagios 20100719     #

###############################

 

ScriptAlias /nagios/cgi-bin/ "/usr/local/nagios/sbin"

 

<Directory "/usr/local/nagios/sbin">

    Options ExecCGI

    Order allow,deny

    Allow from all

    AllowOverride None

    AuthName "Nagios Access"

    AuthType basic

    AuthUserFile /usr/local/nagios/etc/htpasswd

    Require valid-user

</Directory>

 

Alias /nagios  "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

    Options None

    Order allow,deny

    Allow from all

    AllowOverride None

    AuthName "Nagios Access"

    AuthType basic

    AuthUserFile /usr/local/nagios/etc/htpasswd

    Require valid-user

</Directory>

 

创建apache目录验证文件

[root@station1 ~]# htpasswd -cm /usr/local/nagios/etc/htpasswd nagiosadmin

New password:

Re-type new password:

Adding password for user nagiosadmin

 

查看cgi.cfg是否允许nagiosadmin用户的认证

[root@station1 etc]# pwd

/usr/local/nagios/etc

[root@station1 etc]# grep authorized < cgi.cfg

authorized_for_system_information=nagiosadmin

authorized_for_configuration_information=nagiosadmin

authorized_for_system_commands=nagiosadmin

authorized_for_all_services=nagiosadmin

authorized_for_all_hosts=nagiosadmin

authorized_for_all_service_commands=nagiosadmin

authorized_for_all_host_commands=nagiosadmin

#authorized_for_read_only=user1,user2

[root@station1 etc]#

 

 

配置nagios配置文件

#vi /usr/local/nagios/etc/objects/contacts.cfg      修改email地址为自己的email地址.

 

启动nagios

[root@station1 ~]# chkconfig --add nagios

[root@station1 ~]# chkconfig nagios on

[root@station1 ~]#

 

检查配置文件

[root@station1 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  

Total Warnings: 0

Total Errors:   0

 

[root@station1 ~]# service nagios start

Starting nagios: done.

[root@station1 ~]# service httpd start

Starting httpd:                                            [  OK  ]

[root@station1 ~]#

 

 

访问http://localhost/nagios 输入用户名密码

安装附加插件nrpe

[root@station1 src]# tar zxvf nrpe-2.12.tar.gz

[root@station1 src]# cd nrpe-2.12

[root@station1 nrpe-2.12]# ./configure

[root@station1 nrpe-2.12]# make all

[root@station1 nrpe-2.12]# make install-plugin  #服务器端只要安装nrpe监控插件就行

[root@station1 nrpe-2.12]# make install-daemon

[root@station1 nrpe-2.12]# make install-daemon-config

 

添加要监控的主机

[root@station1 ~]# vim /usr/local/nagios/etc/nrpe.cfg

 

allowed_hosts=127.0.0.1

 

以独立守护进程启动nrpe

[root@station1 ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

写入开机脚本

[root@station1 ~]# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d">> /etc/rc.d/rc.local

 

检查nrpe是否安装正常

[root@station1 ~]# /usr/local/nagios/libexec/check_nrpe -H localhost

NRPE v2.12

[root@station1 ~]# netstat -tln | grep 5666

tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN

[root@station1 ~]#

 

定义监控命令

[root@station1 ~]# vim /usr/local/nagios/etc/nrpe.cfg

以下是默认定义好的:

# The following examples use hardcoded command arguments...

 

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

自定义监控命令:

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

command[check_disk_root]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

测试:
[root@station1 ~]# /usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /home
DISK OK - free space: /home 86 MB (93% inode=99%);| /home=5MB;76;86;0;96
[root@station1 ~]#

[root@station1 etc]# pwd

/usr/local/nagios/etc

[root@station1 etc]# vim resource.cfg

$USER1$=/usr/local/nagios/libexec   #定义插件路径

 

:SWAP监控

[root@station1 etc]# vim objects/commands.cfg  #命令配置文件

# 'check_local_swap' command definition

define command{

        command_name    check_local_swap

        command_line    $USER1$/check_swap -w $ARG1$ -c $ARG2$

        }

[root@station1 objects]# vim localhost.cfg        #监控对象控制

define service{

        use                             local-service         ; Name of service template to use

        host_name                       localhost

        service_description                 Swap Usage

        check_command                   check_local_swap!20!10

        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章