网络监控软件Nagios,个人认为它最大的好处是可以发故障报警短信—只要Nagios监控的对象发生故障,系统就会自动发送短信到手机上<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

(一)安装所需软件

一、安装Nagios

Nagios 可以运行在各种版本的linux及主流的unix 环境, 安装完操作系统之后,需要把多余的服务都关掉,只留sshd这个服务。然后用wget 下载源码包nagios-2.6.tar.gz httpd-2.2.0.tar.gz。接下来先分别安装软件,过程如下:

1、 解压nagios

Tar zxvf nagios-2.6.tar.gz

2、配置nagios

cd  nagios

./config prefix=/usr/local/nagios

3、 编译nagios

Make all

4、 安装nagios

与别的软件安装稍有不同,nagios 的安装要好几步才能完成。第一步执行make install安装主要的程序、CGI HTML 文件,第二步执行make install-commandmode 给外部命令访问nagios 配置文件的权限,第三步执行 makeinstall-config 把配置文件的例子复制到nagios的安装目录。按照安装向导的提示,其实这里还有一个 make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动

5 、 验证程序是否被正确安装:

切换目录到安装路径/usr/local/nagios

看是否存在 etcbin sbin share var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明:

bin

Nagios 执行程序所在目录,这个目录只有一个文件nagios

etc

Nagios 配置文件位置,初始安装完后,只有几个*.cfg-sample文件

sbin

Nagios Cgi 文件所在目录,也就是执行外部命令所需文件所在的目录

Share

Nagios 网页文件所在的目录

Var

Nagios 日志文件、spid 等文件所在的目录

二、安装nagios的插件

没有插件,nagios 将什么作用也没有,插件也是nagios 扩展功能的强大武器,除了下载常用的插件外,我们还可以根据实际要求编写自己的插件。Nagios 的插件nagios-plugins-1.4.5www.nagios.org 上可以找到,接着我们用wget下载它。注意:插件与nagios之间的版本关联不大,不一定非得用nagios-plugins-1.4.5

这个版本。下载完成后,安装它是很简单的:先

执行配置

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

接着编译安装

make

make installll

即可。这里需要说明一下的是在配置过程指定的安装路径是

/usr/local/nagios

而不是

/u***/local/nagios-plus

安装完成后,将在目录/usr/local/nagios 生成目录libexec(里面有很多文件),这正是nagios所需要的。

三、安装web服务器apache

Web 服务不是nagios 所必须的,但是如果nagios没有web,查看监控对象的状态将是非常费事和没有趣味的事情(只有通过查看nagios的日志来判断状态)。我不愿干特无聊的事,所以就花少许时间把web安装一下。在unix/linux世界,apacheweb服务器的首选对象,其下载网站为www.apache.org 。建议下载源码。因为我们不需要很复杂的web功能,因此简单的执行一下几个步骤就可以正确的把apache安装到系统:

1、 解包、配置

Tar zxvf httpd-2.2.0.tar.gz

cd htpd-2.2.0

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

2、 编译安装:

make

make  install

安装完成后,执行命令

./usr/local/apache/bin/apachectl -t 检查一下apache是否正确安装。

四、配置前的处理

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

1、       添加系统帐户nagios

 useradd  nagios

就很容易的把用户和组nagios添加到系统。有的类型的linux 发行版添加用户和组要麻烦一些-需要手动添加组,然后再执行useradd  -g  nagios  nagios这样的操作。在实际的运用场景,nagios 用户并没有必要作为系统用户来登录linux 系统,因此可以不必设置nagios 的用户密码,甚至可以把nagios 用户的登录shell 设置成/bin/false

2、       更改目录属组

 chown  -R  nagios.nagios

/usr/lacal/nagios

注意,有的unix/linux的版本用户和属组分隔符号不是“.,可能会是这样的形式

chown  -R nagios:nagios

/usr/local/nagios

3 sendmail

看看sendmail是否正常运行?我们需要使用sendmail来发送故障报警信息,所以这个包必须能够正常工作。Sendmail 分为服务器和客户端两部分,2种发送报警邮件的方式:

1nagios所在的机器通过sendmail客户端程序把邮件发送到专门的邮件服务器,再由邮件服务器把消息发送到用户邮箱。

2)邮件客户端和服务器端就用nagios所在系统sendmail

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

4 、手机短信发送工具

……

Nagios的功能十分强大,在项目里,因为我的需求不同而尽可能的简化了nagios 而没有使用代理、更多插件等功能,在一个不超过1000个服务器的网络规模里,它工作得很好。如果有更多的服务器,建议使用mysql数据来管理监控对象。
可以在139邮箱注册账号或者163或qq都有短信提醒功能,当邮箱收到有件事短信免费提醒你,你只需要sendmail发送邮件到你邮箱即可。你还需要设置白名单,防止nagios发送的邮件被过滤掉,然后设置你的主机名符合dns中A记录的标准(hostname  ufo.com)
然后再/etc/host里面把ufo.com填进去
然后启动sendmail服务器
/etc/init.d/sendmail  start
来,测试一下,/bin/mail -s "'date +%y-%m-%d' Server SMS TEST "nagios@139.com< /dev/null
最后把你申请的邮箱添加到nagios的联系人文件中局ok了,重启一下nagios服务。