Nagios安装指南

参考于http://nagios-cn.sourceforge.net/nagios-cn/

 基于openSUSE平台的快速指南

4.5.1. 介绍

本指南试图让你通过简单的指令以在20分钟内在你的openSUSE平台上通过对Nagios的源程序的安装来监控本地主机。这里没有讨论更高级的设置项 - 只是一些基本操作,但这足以使95%的用户启动Nagios

这些指令在基于openSUSE10.2的系统下写成的。

4.5.2. 所需的软件包

确认你安装好的openSUSE系统之上已经安装了如下软件包再继续。你可以在openSUSE系统下用yast来安装软件包。

  • apache2
  • C/C++开发库

4.5.3. 操作过程

1)建立一个帐号

切换为root用户

su -l

创建新帐户名为nagios并给它一个登录口令

/usr/sbin/useradd nagios

passwd nagios

创建一个用户组名为nagios,并把nagios帐户加入该组

/usr/sbin/groupadd nagios

/usr/sbin/usermod -G nagios nagios

创建一个用户组名为nagcmd来执行外部命令并可以通过WEB接口来执行。将nagios用户和apache用户都加到这个组中。

/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -G nagcmd nagios

/usr/sbin/usermod -G nagcmd wwwrun

2)下载Nagios和插件程序包

建立一个目录用以存储下载文件

mkdir ~/downloads

cd ~/downloads

下载NagiosNagios插件的软件包(访问http://www.nagios.org/download/站点以获得最新版本),在写本文档时,最新的Nagios的软件版本是3.0rc1Nagios插件的版本是1.4.11

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz

wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz

3)编译与安装Nagios

展开Nagios源程序包

cd ~/downloads

tar xzf nagios-3.0rc1.tar.gz

cd nagios-3.0rc1

运行Nagios配置脚本并使用先前开设的用户及用户组:

./configure --with-command-group=nagcmd

编译Nagios程序包源码

make all
要是产生错误是没有Make这条命令的话可以通过zypper in make来安装

安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限

make install

make install-init

make install-config

make install-commandmode

现在还不能启动Nagios - 还有一些要做的...

4)客户化配置

样例配置文件默认安装在这个目录下/usr/local/nagios/etc,这些样例文件可以配置Nagios使之正常运行,只需要做一个简单的修改...

用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。

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

5)配置WEB接口

安装NagiosWEB配置文件到Apacheconf.d目录下

make install-webconf

创建一个nagiosadmin的用户用于NagiosWEB接口登录。记下你所设置的登录口令,一会儿你会用到它。

htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

重启Apache服务以使设置生效。

service apache2 restart

6)编译并安装Nagios插件

展开Nagios插件的源程序包

cd ~/downloads

tar xzf nagios-plugins-1.4.11.tar.gz

cd nagios-plugins-1.4.11

编译并安装插件

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

make install

7)启动Nagios

Nagios加入到服务列表中以使之在系统启动时自动启动

chkconfig --add nagios

chkconfig nagios on

验证Nagios的样例配置文件

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

如果没有报错,可以启动Nagios服务

service nagios start

8)登录WEB接口

你现在可以从WEB方式来接入NagiosWEB接口了,你需要在提示下输入你的用户名(nagiosadmin)和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接

konqueror http://localhost/nagios/

(若报错error 403,则在此之前可能还要安装apache2-mod——php5这个软件包,可用zyper se php查找,使用zypper in apache2-mod_php5命令)

 

点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让Nagios来检测你机器上所依赖的服务因为检测需要些时间。

9)其他的变更

确信你机器的防火墙规则配置允许你可以从远程登录到NagiosWEB服务。

你可以这样做:

  • 打开控制中心
  • 选择'打开超户设置'以打开YaST超户控制中心
  • 选择在'安全与用户'设置里的'防火墙'
  • 在防火墙的配置窗口中点击'允许的服务'选项
  • 在许可的服务中增加'HTTP服务',是'外部区'的部分
  • 点击'下一步'并选择'接受'以使得防火墙设置生效

配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点NagiosCommunity.org wiki来查找更进一步的信息,以使你的openSUSE系统上可以向外部地址发送EMail信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.8. 监控Linux/Unix主机

4.8.1. 介绍

本文档描述了如果监控Linux/UNIX"私有"服务和属性,如:

  • CPU负荷
  • 内存占用率
  • 磁盘利用率
  • 登录用户
  • 运行进程

Linux系统上的公众服务(HTTPFTPSSHSMTP)可以按照这篇监控公众服务文档。

注意

如下内容是假定已经按照快速安装指南安装并设置好Nagios。如下例子参考了样例配置文件(commands.cfgtemplates.cfg)里的对象定义,样例配置文件已经在安装过程中安装就位。

4.8.2. 概览

[注意:本文档没有结束。推荐阅读文档NRPE外部构件里如何监控远程Linux/Unix服务器中的指令]

有几种不同方式来监控远程Linux/UNIX服务器的服务与属性。一个是应用共享式SSH密钥运行check_by_ssh插件来执行对远程主机的检测。这种方法本文档不讨论,但它会导致安装有Nagios的监控服务器很高的系统负荷,尤其是你要监控成百个主机中的上千个服务时,这是因为要建立/毁构SSH联接的总开销很高。

另一种方法是使用NRPE外部构件监控远程主机。NRPE外部构件可以在远程的Linux/Unix主机上执行插件程序。如果是要象监控本地主机一样对远程主机的磁盘利用率、CPU负荷和内存占用率等情况下,NRPE外部构件非常有用。

 

11.4. Nagios外部构件

11.4.1. 介绍

Nagios有许多"外部构件"软件包可供使用。外部构件可以扩展Nagios的应用并使之与其他软件集成。

外部构件可用于:

  • 通过WEB接口来管理配置文件
  • 监控远程主机(*NIX, Windows,)
  • 实现对远程主机的强制检测
  • 减化并扩展告警逻辑
  • ...和其他更多事情

你可以通过访问如下站点找寻外部构件:

  • Nagios.org
  • SourceForge.net
  • NagiosExchange.org

这里对一些我开发的外部构件给一个简洁的介绍...

11.4.2. NRPE

NRPE是一个可在远程Linux/Unix主机上执行的插件的外部构件包。如果你需要监控远程的主机上的本地资源或属性,如磁盘利用率、CPU负荷、内存利用率等时是很有用的。象是用check_by_ssh插件来实现的功能一样,但是它不需要占用更多的监控主机的CPU负荷-当你需要监控成百上千个主机是这个很重要。

NRPE外部构件包和文档可以在http://www.nagios.org/上找到。

11.4.3. NSCA

NSCA是一个可在远程Linux/Unix主机上执行强制检测并将结果传给Nagios守护进程的外部构件包。这在分布式冗余/失效监控的设置时非常有用。

NSCA外部构件包和文档可以在http://www.nagios.org/上找到。

11.4.4. NDOUtils

NDOUtils是一个可以把全部状态信息保存到MySQL数据库里的外部构件。外个Nagios的库实例都可以把它们监控的信息保存到统一的中心数据库并集中报告。它将为一个Nagios新的基于PHHWEB接口程序提供数据源服务。

NDOUtils外部构件包和文档可以在http://www.nagios.org/上找到。

 

 

 

 

 

下面介绍具体安装及操作步骤:

 

参考来源  http://whbill.blog.51cto.com/3280780/600184

被监控主机安装
需要安装nagios插件和NRPE Deamon
1.
2.
创建nagios用户
#useradd  nagios

3. 下载安装nagios plugin
http://www.nagios.org/download/plugins下载nagios插件到 /usr/local/src。最新稳定版本是nagios-plugins-1.4.15.tar.gz
#cd /usr/local/src
#tar xzf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
Red Hat
版本的LINUX需要加--enable-redhat-pthread-workaround开关。具体见 http://nagiosplugins.org/faq/compile/configure_appears_to_hang
#./configure  --enable-redhat-pthread-workaround   
#make
#make install
#chown  nagios  /usr/local/nagios
#chown  -R  nagios  /usr/local/nagios/libexec

4. 下载安装NRPE Deamon
下载http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz /usr/local/src
#cd /usr/local/src
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12

编译
#./configure
#make all        

安装NRPE插件、DeamonDeamon配置文件示例(在此之前可能要新建一个groups,命令groupadd+名称)
#make install-plugin
#make install-daemon
#make install-daemon-config

安装NRPE Deamonxinetd下的一个服务
#make install-xinetd

编辑/etc/xinetd.d/nrpe,在only_from参数里加入nagios服务器的IP地址
only_from = 127.0.0.1  <nagios server IP>

/etc/services中添加NRPE Deamon
nrpe   5666/tcp   #NRPE

重启xinetd服务
#service xinetd restart

或者使用以下命令替换上一条命令:/usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg –d用守护进程形式来启动


5
本地测试NRPE Deamon
检查NRPE Deamon是否运行
#netstat -at | grep nrpe
tcp    0     0  *:nrpe     *:*     LISTEN

检查NRPE Deamon是否工作正常
#/usr/local/nagios/libexec/check_nrpe -H  localhost
NRPE v2.12

6.放开防火墙(因为我们虚拟机中没有防火墙,所以可以忽略此步),允许nagios服务器访问本地NRPE Daemon。命令可能不完全同。
#iptables  -I  RH-Firewall-1-INPUT  -p  tcp –m  tcp  -dport 5666  –j  ACCEPT
(#iptables -A INPUT -p tcp -s 192.168.0.1  --dport 5666 -j ACCEPT)
保存新的iptables规则,保证机器重启后依然能生效。
service iptables save

7.客户化NRPE命令
#vi /usr/local/nagios/etc/nrpe.cfg

 

 

 

 

 

 

 

============================================================
nagios
服务器上安装设置
1.
安装check_nrpe插件
#cd /usr/local/src
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12

编译
#./configure
#make all        

安装NRPE插件
#make install-plugin

2.测试与远端NRPE Daemon的通信

(在此之前要确定两台主机是否能ping通,保证能上网)
如果远端主机IP地址是192.168.0.1
#/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1
NRPE v2.12

/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1 -c  check_users

3.建立命令定义
需要在nagios object配置文件中建立命令定义。
#vi /usr/local/nagios/etc/objects/commnads.cfg
define command{
       command_name  check_nrpe
       command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
       }
      
4.
建立hostservice定义
   
必须定义一些对象定义用于监视远程的LINUX/UNIX主机。这些定义可以放在自己的文件里或加入现有的对象配置文件里(配置文件是localhost.cfg   配置文件路径一般在/usr/local/nagios/etc/objects/localhost.cfg中)。
   
最好的方法是为监视的每一类主机建议自己的配置模版。下面建立一个新的LINUX模版。

参考:
define host{
       name                     linux-box       ;Name of this template
       use                       local-service    ;Inherit default values
       check_period              24x7
       check_interval            5
       retry_interval            1
       max_check_attempts        10
       check_command             check-host-alive
       notification_period       24x7
       notification_interval     30
       notification_options      d,r
       contact_groups            admins
       register                  0                  ;DONT REGISTER THIS - ITS A TEMPLATE
       }
   
该模版从generic-host模版继承缺省值。generic-host模版在templates.cfg中定义。templates.cfg为系统缺省安装。
   
定义要检测的主机:

使用上面建好的模版定义一个主机.
define host{
       use             linux-box           ;Inherit default valus from a template
和前面的定义对应
       host_name       remotehost          ;The name we're giving to this server
       alias           Fedora Core 6       ;A longer name for the server
       address         192.168.0.1         ;IP address of the server
根据具体修改
       }
      


   
然后,将定义监视远程主机的服务。这些服务使用远程主机nrpe.cfg里定义的命令。

下面介绍如何加入对应的服务,在/usr/local/nagios/etc/objects/localhost.cfg中加入相关模块即可。


   
下面的服务监视远程主机的CPU负载。chech_nrpe命令的“check_load”参数告诉远程主机的NRPE Deamon执行定义的check_load命令。
define service{
       use                        local-service 
;和上面的对应
       host_name                  linux-i0o0  
;和上面的对应
       service_description        CPU Load
       check_command              check_nrpe!check_load
       }
 
    
下面服务监视登录用户数
define service{
       use                        local-service
       host_name                  linux-i0o0
       service_description        Current Users
       check_command              check_nrpe!check_users   
       }
      
    
下面服务监视/dev/hda1的空闲空间
define service{
       use                        local-service
       host_name                  linux-i0o0
       service_description        /dev/hda1 Free Space
       check_command              check_nrpe!check_hda1
       }
      
    
下面服务监视进程总数
define service{
       use                        local-service
       host_name                 linux-i0o0
       service_description        Total Processes
       check_command              check_nrpe!check_total_procs
       }
      
    
下面服务监视zombie进程总数
define service{
       use                        local-service
       host_name                  linux-i0o0
       service_description        Zombie Processes
       check_command              check_nrpe!check_zombie_procs
       }

 

 

 


5
重启Nagios
验证Nagios配置
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

重启nagios
#service nagios restart

===============================================================
定制配置
如果想使用nrpe监视远程主机上的新服务,需要做两件事:
     1.
在远程主机的nrpe.cfg文件里加上新命令。
     2.
对该主机的Nagios配置里添加新服务定义。

 

你可能感兴趣的:(nagios,安装指南)