网络监控软件Nagios,个人认为它最大的好处是可以发故障报警短信—只要Nagios监控的对象发生故障,系统就会自动发送短信到手机上
(一)安装所需软件
一、安装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
而不是
/ussr/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
3sendmail
看看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服务。