`
eavesice
  • 浏览: 18679 次
  • 性别: Icon_minigender_1
  • 来自: 甘肃
最近访客 更多访客>>
社区版块
存档分类
最新评论

Nagios3.2.0的安装和配置

阅读更多

一、安装支持包

 

#yum -y install gcc gcc-c++ gd gd-devel php httpd openssl-devel 

 

二、安装nagios

创建用户

 

#useradd nagios #passwd nagios

 

创建组

 

#groupadd nagcmd #usermod -G nagcmd nagios #usermod -G nagcmd apache

 

安装

#tar xzf nagios-3.2.0.tar.gz 
#cd nagios-3.2.0 
#./configure --with-command-group=nagcmd --prefix=/usr/local/nagios 
#make all 
#make install # 使用make install来安装主程序,CGI和HTML文件 
#make install-init # 使用make install-init在/etc/rc.d/init.d安装启动脚本 #make install-config # 使用make install-cofig来安装示例配置文件,安装的路径是/usr/local/nagios/etc. 
#make install-commandmode # 使用make install-commandmode来配置目录权限

 

nagios目录功能的简要说明:
bin    Nagios执行程序所在目录,nagios文件即为主程序
etc    Nagios配置文件位置
sbin    Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share    Nagios网页文件所在的目录
var    Nagios日志文件、spid 等文件所在的目录
var/archives    日志归档目录
var/rw    用来存放外部命令文件

配置apache

 

 

#vi /etc/httpd/conf/httpd.conf #加入末尾

  

 

 

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"  
  
<Directory "/usr/local/nagios/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/etc/htpasswd.users   
   Require valid-user   
</Directory>   
  
Alias /nagios "/usr/local/nagios/share"  
  
<Directory "/usr/local/nagios/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/etc/htpasswd.users   
   Require valid-user   
</Directory>  

 

创建apache目录验证文件

 

#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 
New password: (输入密码) 
Re-type new password: (再输入一次密码) 
Adding password for user nagiosadmin 

#service httpd restart

 

配置nagios配置文件

 

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

 

三、安装nagios插件

 

#tar xzf nagios-plugins-1.4.13.tar.gz 
#cd nagios-plugins-1.4.13 
#./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios 
#make 
#make install

 

四、启动nagios

添加服务

 

#chkconfig --add nagios 
#chkconfig nagios on

 

检查配置文件

 

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 

启动nagios

 

#service nagios start

 

启动apache

 

#service httpd start

 

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

 

五、安装nrpe

#tar xzvf nrpe-2.12.tar.gz 
#cd nrpe-2.12 
#./configure 
#make all 
#make install-plugin #服务器端只要安装nrpe监控插件就行

 

在/usr/local/nagios/etc/objects/commands.cfg中定义check_nrpe命令

 

#vi /usr/local/nagios/etc/objects/commands.cfg

 

 

 

# 'check_nrpe ' command definition
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

  

六、在被监控机上安装nagios插件和nrpe

 

#useradd nagios   
#tar xzvf nagios-plugins-1.4.13.tar.gz   
#cd nagios-plugins-1.4.13  
#./configure   
#make   
#make install   
#chown nagios.nagios /usr/local/nagios/   
#chown -R nagios.nagios /usr/local/nagios/libexec/   
  
    
  
#tar xzvf nrpe-2.12.tar.gz   
#cd nrpe-2.12  
#./configure   
#make all          
#make install-plugin         #安装nrpe插件,本监控端可以不装         
#make install-daemon        # 安装nrpe守护进程          
#make install-daemon-config         #安装nrpe配置文件  

 

#vi /usr/local/nagios/etc/nrpe.cfg        #修改nrpe配置文件,允许Nagios监控服务器(192.168.0.19)监控

 

allowed_hosts=127.0.0.1,192.168.0.19        #多台机器用逗号隔开

  

#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d        以独立守护进程启动nrpe,也可以使用xinetd启动nrpe,具体清查看nrpe官方文档。   
  
#cat >> /etc/rc.d/rc.local << EOF               #开机自动启动nrpe   
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d   
  
EOF   
  
# /usr/local/nagios/libexec/check_nrpe -H localhost        #检查nrpe是否安装正常   
NRPE v2.12  
  
#netstat -tln        #查看端口   
  
tcp        0      0 0.0.0.0:5666                0.0.0.0:* 

 

我们需要在/usr/local/nagios/etc/nrpe.cfg中定义我们用到的监控本地资源的命令。
下面的命令是默认定义的:

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

下面的命令是自己定义的:
#监控交换分区的使用情况,使用超过20%时为警告状态,超过10%时为严重状态

 

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 /

  

七、nagios监控流程

NRPE总共由两部分组成:
(1).check_nrpe插件,运行在监控主机上。
(2).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不能做任何的监控.

八、nagios配置文件

#控制cgi访问的配置文件
cgi.cfg
#Nagios主配置文件
nagios.cfg
#resource.cfg定义了一些变量,以便被其他文件引用,如$USER1$
resource.cfg
# objects是一个目录,用于定义Nagios对象
objects
# servers是自己创建的一个目录,Nagios可以加载一个目录下面的所有配置文件(需要在nagios.cfg中配置)
servers

./objects:
#命令定义配置文件,里面定义的命令可以被其他文件引用
commands.cfg
#联系人和联系人组配置文件
contacts.cfg
#监控本地机器的配置文件
localhost.cfg
#监控打印机的一个事例配置文件(默认未启用)
printer.cfg
#监控路由器的一个事例配置文件(默认未启用)
switch.cfg
#模板配置文件,在此可以定义模板,在其他文件中引用
templates.cfg
#定义监控时间段的配置文件
timeperiods.cfg
#监控Windows的一个事例配置文件(默认未启用)
windows.cfg

./servers:
#自己创建的主机群组配置文件
hostgroup.cfg
#自己创建的监控远程Linux主机的配置文件
sectop.cfg

配置文件是怎样引用的?
 

用 nagios主要是监控一台主机的各种信息,包括本机资源以及对外的服务等等.这些在nagios里面都是被定义为一个个的项目(nagios称之为服务,为了与主机提供的服务相区别,我这里用项目这个词),而实现每个监控项目,则需要通过commands.cfg文件中定义的命令。
为了不必重复定义一些项目,Nagios引入了一个模板配置文件(templates.cfg),将一些共性的属性定义成模板,以便于多次引用。
我们现在有一个监控项目是监控一台机器的web服务是否正常, 我们需要哪些元素呢?最重要的有下面三点:首先是监控哪台机器,然后是这个监控要用什么命令实现,最后就是出了问题的时候要通知哪个联系人。


我们首先应该在commands.cfg中定义监控远程服务和资源的命令,以及如何发送邮件的命令。大部分监控远程服务和资源的命令的命令通过/usr/local/nagios/libexec下的脚本实现,如ping命令为check_ping。
/usr/local/nagios/libexec下的脚本命令的使用发法可以通过-h参数查看

然后我们在contacts.cfg文件中定义联系人和联系人组,在timeperiods.cfg中定义监控时间段。

最后我们在服务器监控配置文件中引用前面定义的元素来监控服务器状态。

下面引用配置文件中部分配置做说明:

 

#vi /usr/local/nagios/etc/resource.cfg

 

 

#定义$USER1$变量,设置插件路径 $USER1$=/usr/local/nagios/libexec

 

 

#vi /usr/local/nagios/etc/objects/commands.cfg

 

 

#定义check-host-alive命令   
define command{   
        command_name    check-host-alive  #命令名称   
     command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5  
        }   
#上面的$USER1$和$HOSTADDRESS$引用自已定义的配置文件。变量不需现定义才能被引用。   
  
# 'check_nrpe ' command definition   
define command{   
        command_name check_nrpe   
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$   
        }  

 

 

#vi /usr/local/nagios/etc/objects/contacts.cfg

 

 

#定义联系人   
define contact{   
        contact_name                    nagiosadmin             ; Short name of user   
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)   
        alias                           Nagios Admin            ; Full name of user   
  
        email                           test@gmaile.com         ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******   
        }   
#上面的generic-contact在templates.cfg中定义。   
#定义联系人组   
define contactgroup{   
        contactgroup_name       admins   
        alias                   Nagios Administrators   
        members                 nagiosadmin   #在此可以加入多个联系人,中间用逗号隔开   
        }  

 

 

#vi /usr/local/nagios/etc/objects/timeperiods.cfg

 

 

#定义监控的时间段   
define timeperiod{   
        timeperiod_name 24x7   #监控所有时间段(7*24小时)   
        alias           24 Hours A Day, 7 Days A Week   
        sunday          00:00-24:00  
        monday          00:00-24:00  
        tuesday         00:00-24:00  
        wednesday       00:00-24:00  
        thursday        00:00-24:00  
        friday          00:00-24:00  
        saturday        00:00-24:00  
        }  

 

 

#vi /usr/local/nagios/etc/objects/templates.cfg

 

 

#定义generic-contact联系人模板,并非真正的联系人,真正的联系人在contacts.cfg中定义   
define contact{   
        name                            generic-contact            
        service_notification_period     24x7                      
        host_notification_period        24x7                      
        service_notification_options    w,u,c,r,f,s                
        host_notification_options       d,u,r,f,s                 
        service_notification_commands   notify-service-by-email    
        host_notification_commands      notify-host-by-email       
        register                        0                          
        }  

 
------------------------------------------------------------------------------------------------------------------
service_notification_period     24x7
服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的.
host_notification_period        24x7
主机出了状况通知的时间段, 这个时间段就是上面在timeperiods.cfg中定义的
service_notification_options    w,u,c,r
当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),或者r—从异常情况恢复正常,在这四种情况下通知联系人.
host_notification_options       d,u,r
当主机出现d­­­­—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3种情况下通知联系人
service_notification_commands   notify-service-by-email
服务出问题通知采用的命令notify-service-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件.
host_notification_commands      notify-host-by-email
同上,主机出问题时采用的也是发邮件的方式通知联系人
------------------------------------------------------------------------------------------------------------------

 

#定义generic-host主机模板   
define host{   
        name                            generic-host    ; The name of this host template   
        notifications_enabled           1               ; Host notifications are enabled   
        event_handler_enabled           1               ; Host event handler is enabled   
        flap_detection_enabled          1               ; Flap detection is enabled   
        failure_prediction_enabled      1               ; Failure prediction is enabled   
        process_perf_data               1               ; Process performance data   
        retain_status_information       1               ; Retain status information across program restarts   
        retain_nonstatus_information    1               ; Retain non-status information across program restarts   
        notification_period             24x7            ; Send host notifications at any time   
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!   
        }   
  
#定义Linux主机模板   
define host{   
        name                            linux-server    ; The name of this host template   
        use                             generic-host    ; This template inherits other values from the generic-host template   
        check_period                    24x7            ; By default, Linux hosts are checked round the clock   
        check_interval                  5               ; Actively check the host every 5 minutes   
        retry_interval                  1               ; Schedule host check retries at 1 minute intervals   
        max_check_attempts              10              ; Check each Linux host 10 times (max)   
        check_command                   check-host-alive ; Default command to check Linux hosts   
        notification_period             workhours       ; Linux admins hate to be woken up, so we only notify during the day   
                                                        ; Note that the notification_period variable is being overridden from   
                                                        ; the value that is inherited from the generic-host template!   
        notification_interval           120             ; Resend notifications every 2 hours   
        notification_options            d,u,r           ; Only send notifications for specific host states   
        contact_groups                  admins          ; Notifications get sent to the admins by default  
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!   
        }  

 
#在nagios.cfg配置文件中开启对/usr/local/nagios/etc/servers/中配置文件的引用。

 

cfg_dir=/usr/local/nagios/etc/servers

 
#远程Linux主机监控文件,如果监控多台主机只需简单复制修改即可。
#我们应该牢记sectop.cfg用到的命令在commands.cfg中定义,在commands.cfg中定义的命令用到/usr/local/nagios/libexec下的插件(命令)。

 

#vi /usr/local/nagios/etc/servers/sectop.cfg

 

 

#定义主机   
define host{   
        use                     linux-server            ; Name of host template to use   
                                                        ; This host definition will inherit all variables that are defined   
                                                        ; in (or inherited by) the linux-server host template definition.   
        host_name               sectop   
        alias                   Docs   
        address                 192.168.99.200  
        }   
#定义Ping远程Linux主机   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             PING   
        check_command                   check_ping!100.0,20%!500.0,60%   ;check_ping命令在commands.cfg中定义,后跟两个参数,命令及参数间用!分割。   
        }   
#检查远程Linux主机根分区使用情况,check_nrpe命令必须在/usr/local/nagios/etc/objects/commands.cfg中定义(默认未定义)   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             Root Partition   
        check_command                   check_nrpe!check_disk_root   
        }   
#检查远程Linux主机的登录人数   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             Current Users   
        check_command                   check_nrpe!check_users   
        }   
#检查远程Linux的主机的负载   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             Current Load   
        check_command                   check_nrpe!check_load   
        }   
#检查远程Linux主机swap分区使用情况   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             Swap Usage   
        check_command                   check_nrpe!check_swap   
        }   
#检查远程Linux主机的SSH服务   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             SSH   
        check_command                   check_ssh   
        notifications_enabled           0  
        }   
#检查远程Linux主机的HTTP服务   
define service{   
        use                             generic-service         ; Name of service template to use   
        host_name                       sectop   
        service_description             HTTP   
        check_command                   check_http   
        notifications_enabled           0  
        }  

 

 

#vi /usr/local/nagios/etc/servers/hostgroup.cfg

 

 

#定义主机组(localhost.cfg中有类似的主机组设置,我已将其注释掉,否则可能会有冲突)   
define hostgroup{   
        hostgroup_name  linux-servers ; The name of the hostgroup   
        alias           Linux Servers ; Long name of the group   
        members         localhost,sectop     ; Comma separated list of hosts that belong to this group   
        }   
  
#define hostgroup{   
#        hostgroup_name  windows-servers ; The name of the hostgroup   
#        alias           Windows Servers ; Long name of the group   
#        members         print     ; Comma separated list of hosts that belong to this group   
#        }  

 
===============================================================================
#完成监控主机配置文件的配置后使用下面命令检查配置文件的正确性:

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 

 

#确定无误后重启Nagios:

#service nagios restart

 

分享到:
评论

相关推荐

    Nagios-3.2 安装与配置

    本文档将详细介绍如何在以下环境中安装和配置Nagios-3.2: - **系统**: CentOS 5.3 (32位) - **IP地址**: 192.168.0.125 (服务端) 和 192.168.0.126 (客户端) - **监控类别**: 服务端和客户端 - **软件**: - ...

    nagios-3.2.0.tar.gz

    Nagios是一款强大的网络监控系统,它能够对网络...总的来说,`nagios-3.2.0.tar.gz`提供了搭建全面网络监控系统的基础,通过细致的配置和管理,企业可以实现对IT环境的全面、实时监控,提升运维效率和系统的稳定性。

    nagios配置命令

    ### Nagios配置命令详解 #### 一、简介 Nagios是一款开源的计算机软件,用于监视系统、网络服务的状态,并在出现异常时发出警告...这样就完成了Nagios的基本安装和配置过程,后续可以根据实际需求进一步调整和优化。

    nagios监控软件的安装

    - `./configure –with-command-group=nagcmd –prefix=/usr/local/nagios` 配置编译选项,指定命令组和安装路径 - `make all` 编译源代码 - `make install` 安装Nagios - `make install-init` 安装初始化脚本 ...

    oracle+nagios 如何监控

    Nagios的安装和配置流程可以概括为以下几个步骤:安装基础支持套件和添加用户,安装Nagios主程序和插件,以及安装nagios-snmp-plugins。安装后进行nagios的配置,包括目录结构和配置文件的设置。另外,为了获得更好...

    nagios使用教程.pdf

    标题中的"Nagios使用教程"表明本文档是关于如何安装、配置和使用Nagios这个开源的系统和服务监测工具。Nagios能够监控网络和系统资源,包括服务器、网络、交换机、应用和网络服务等。它能够远程监测服务的状态,以及...

    nagios安装配置

    确认Nagios的安装目录`/usr/local/nagios`下是否存在必要的子目录,如`etc`(配置文件)、`bin`(执行文件)、`sbin`(CGI脚本和执行文件)、`share`(网页文件)、`libexec`(插件脚本)以及`var`(日志和锁文件)...

    Linux系统监控之 Nagios配置教程详解 赵舜东

    接下来是部署监控服务器的具体步骤,包括下载和安装Nagios及其插件nagios-plugin,配置检测主机的存活状态,并进行了功能测试。 在第二部分,作者详细讲述了如何使用Nagios来监控Linux和Windows客户端。这部分内容...

    nagios安装文件以及linux下的fetion安装包和安装过程文档

    安装步骤包括解压、配置、编译和安装。在配置过程中,需要指定Nagios的运行用户、服务监控目录、web界面设置等。 3. "fetion":这可能是Fetion的可执行文件或者安装脚本,需要根据Linux发行版的兼容性进行处理。...

    nagios-3.2.3.tar

    接下来,遵循官方文档的步骤配置、编译和安装Nagios。 配置阶段,你需要指定Nagios的配置文件路径、日志文件位置、Web界面的用户名和密码等信息。安装完成后,还需要配置Web服务器以便通过浏览器访问Nagios的Web...

    nagios安装步骤

    根据提供的文件信息,本文将详细解释Nagios的安装...以上步骤完成了Nagios的安装与基本配置,接下来可以根据具体需求进一步定制监控策略和服务。Nagios的强大之处在于其高度可定制性,能够满足各种规模企业的监控需求。

    nagios 和 cacti整合 及 错误排解

    ### Nagios与Cacti整合及错误排解 ...综上所述,Nagios和Cacti的安装部署与整合是一个复杂的过程,需要对各个组件的功能和配置有深入的理解。通过遵循上述步骤和注意事项,可以有效地完成安装部署并解决常见的问题。

    nagios中文帮助手册(转)

    文档中将详细解释如何安装、配置Nagios,包括基础概念、配置文件详解、故障排查、插件使用、报警设置等内容,对于初学者和高级用户都非常有帮助。 通过学习这份中文帮助手册,用户不仅可以了解Nagios的基本工作...

    nagios与cacti整合标准精细版本文档

    - **编译安装**:根据官方文档完成编译和安装步骤。 ##### 2.4 安装nagios-snmp-plugins - **SNMP(Simple Network Management Protocol)**:是一种用于收集和组织关于管理对象的信息的标准协议。 - **安装过程**...

    nagiso安装与维护

    安装和配置完成后,使用Nagios提供的`check_nrpe`命令测试NRPE连接,以及使用`service nagios`管理服务确保Nagios能正常启动和运行。 12. **监控信息的展示** 通过Web界面可以查看监控结果,包括当前状态、历史...

    nagiosql_320.tar.gz

    NagiosQL是一款功能强大的Nagios配置管理工具,它...总的来说,NagiosQL为Nagios的管理和配置提供了便利,但正确安装和配置它需要一定的技术知识和经验。熟悉这些关键知识点,将有助于你成功地部署并充分利用NagiosQL。

Global site tag (gtag.js) - Google Analytics