当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

服务器监控:Nagios和NRPE配置

1Nagios介绍Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。Nagios更进一步的特征包括

1        Nagios介绍

Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。

Nagios最初被设计为在Linux 系统之上运行,然而它同样可以在类Unix的系统之上运行。

Nagios更进一步的特征包括:

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

2        Nagios安装

2.1       准备软件包

httpd
gcc
glibc glibc-common
gd gd-devel

mysqlmysql-server mysql-devel

gnutls

2.2          创建用户和组

最主要的工作是创建nagios用户及其束组,让nagios的运行用户为nagios而不是root。再把目录/usr/local/nagios的属主设置为nagios,以保证系统的安全。Nagios可以以root用户运行,但并不推荐这样做。用下面的步骤 来完成上述过程:

1、 添加系统帐户nagios:useradd nagios

# groupadd nagios

# groupadd nagcmd

# useradd nagios -M -s /sbin/nologin -g nagios

注意:不要给nagios用户设置密码

2、更改目录属组:chown?R nagios.nagios /usr/local/nagios 。请注意,有的unix/linux的版本用户和属组分隔符号不是“.”,可能会是这样的形式 chown ?R nagios:nagios /usr/local/nagios 。

 

2.3          安装nagios

2.3.1      下载Nagios和插件程序包

下载并安装:

http://cdnetworks-kr-2.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.2.1/nagios-3.2.1.tar.gz

 

wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz

2.3.2      安装nagios

 # tar ?zxvf nagios-3.2.1.tar.gz

# cd nagios-3.2.1

#./configure  --prefix=/usr/local/nagios  --with-command-group=nagcmd--enable-nanosleep --enable-broker

# make all

# make install

# make install-init

# make install-commandmode

# make install-config

 

2.3.3      安装nagios插件

 

nagios-plugins-1.4.15

./configure  --prefix=/usr/local/nagios

make

make install

安装完成后,将在目录/usr/local/nagios生成目录libexec

 

3        安装凯发国际官网apache

Web服务不是nagios所必须的,但是如果nagios没有web,查看监控对象的对象将是非常费事和没有趣味的事情(只有通过查看nagios的日志来判断状态)。

 

3.1          安装Apache HTTP

安装Apache 2.2.3

./configure --prefix=/usr/local/apache2

--enable-module=most

--enable-shared=max

# make

# make install

----------------------------------启动Apache服务----------------------------------

# /usr/local/apache2/bin/apachectl start

----------------------------------关闭Apache服务----------------------------------

# /usr/local/apache2/bin/apachectl stop

----------------------------------重启Apache服务----------------------------------

# /usr/local/apache2/bin/apachectl restart

 

3.2          安装PHP

2. 安装PHP 5.3.6

# ./configure --prefix=/usr/local/php

--with-apxs2=/usr/local/apache2/bin/apxs

# make

# make install

# cp php.ini-production/usr/local/php/lib/php.ini

 

if has error:  make clean

 

3.3          配置Apache服务的httpd.conf文件

*在LoadModule处添加 LoadModule php5_module module/libphp5.so

*在DirectoryIndex处添加 index.php

*在AddType application处添加

AddType application/x-httpd-php .php .phtml

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

 

然后,vi/usr/local/apache2/conf/httpd.conf,添加:

 

   

       SetHandler application/x-httpd-php

   

   

       SetHandler application/x-httpd-php

   

   

       SetHandler application/x-httpd-php-source

   

     

   LoadModule php5_module modules/libphp5.so

     

   

       DirectoryIndex index.html index.php

    

      

 

4        Nagios配置

4.1          配置前的处理

最主要的工作是创建nagios用户及其束组,让nagios的运行用户为nagios而不是root。再把目录/usr/local/nagios的属主设置为nagios,以保证系统的安全。Nagios可以以root用户运行,但并不推荐这样做。用下面的步骤 来完成上述过程:

2、 添加系统帐户nagios:useradd nagios

# groupadd nagios
# useradd nagios -M -s /sbin/nologin -g nagios

注意:不要给nagios用户设置密码

2、更改目录属组:chown?R nagios.nagios /usr/local/nagios 。请注意,有的unix/linux的版本用户和属组分隔符号不是“.”,可能会是这样的形式 chown ?R nagios:nagios /usr/local/nagios 。

添加Apache的daemon到nagios用户组

3、sendmail。看看sendmail是否正常运行?我们需要使用sendmail来发送故障报警信息,所以这个包必须能够正常工作。Sendmail分为服务器和客户端两部分,有2种发送报警邮件的方式:
(1)nagios所在的机器通过sendmail客户端程序把邮件发送到专门的邮件服务器,再由邮件服务器把消息发送到用户邮箱。
(2) 邮件客户端和服务器端就用nagios所在系统sendmail。第一种方式用起来非常规范,但更麻烦,例如需要做地址解析、修改邮件服务器的配置;另外 还有一个问题-它还依赖别的系统,增加了故障点和复杂度。第二种方法十分简单,只需启动sendmail服务即可,而且它不再依赖于别的系统和服务。在我工作的实际场景,这两种方法都使用,用专门的邮件服务器会有发送延迟的情况(因为邮件服务器要处理很多其他用户邮件的收发);而直接用sendmail做 服务器和客户端就异常简单和方便了。非常幸运的是,几乎所有的linux/unix发行版都默认安装sendmail,费了这么多笔墨,其实就做一个动作 -把sendmail服务运行起来。

4、手机短信发送工具。我现在的公司是sp,有自己的短信通道,直接把发送短信的客 户端程序sms_send拷贝到目录/usr/local/bin/下。如果没有短信下发的网关通道,那怎么办呢?网络上有很多短信发送的客户端程序,很 有名的就是smsclient,把它下载下来,解包后安装。不要忘记购买手机modem和手机卡,modem只支持SIM卡而不支持cdma。

安装完smsclient软件和硬件modem后,测试一下是否正常。如果没有modem又怎么办?办法还是有的:让你 的手机号可以接受邮件,这需要你去营业厅开通这项功能。短信报警功能是最有用的功能,我们不可能成天盯着监视屏幕,也不可能成天接受电子邮件,但我们的手机却可以24小时在线,只要被监控对象发生故障,马上就可以收到故障报警短信。

 

 

4.2          Apache配置

 

 

我们分两个步骤来完成这个配置。第一步是修改apache的配置文件httpd.conf,这里的文件路径是/usr/local/apache/conf/httpd.conf 。把apache的运行用户[1]和运行组改成nagios,往下把下面的行追加到文件httpd.conf的末尾:

 

 

#setting for nagios
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
     //Cgi文件所在目录
    AuthType Basic
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName \"Nagios Access\"
    AuthUserFile /usr/local/nagios/etc/htpasswd  //验证文件路径
    Require valid-user
 
Alias /nagios /usr/local/nagios/share
   
   //nagios页面文件目录
    AuthType Basic
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName \"nagios Access\"
    AuthUserFile /usr/local/nagios/etc/htpasswd  //验证文件路径
    Require valid-user

 

上述文本块的作用是对nagios的目录进行用户验证,只有合法的授权用户才可以访问nagios的页面文件。

 

第二步是生成用户验证文件:只要执行命令

/usr/local/apache/bin/htpasswd ?c /usr/local/nagios/etc/htpasswd nagios

就会生成web的合法访问用户nagios;命令交互执行,需要输入2次密码,然后就在文件/usr/local/nagios/etc/htpasswd写入一行-第一个字段是刚生成的用户名,第二个是加密后的密码,如果还要添加更多的用户,执行命令 htpasswd 就不需要选项 “-c”,否则就会覆盖所有已经生成的行。

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | 凯发国际娱乐 | 凯发国际娱乐下载 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有