资源准备
数据库
NDOUtils目前仅支持MySql数据库,对于PostgreSQL数据库支持还在开发中,未来可能会支持更多的、众所关注的数据库。
可以从MySql的官方网站( [url]http://www.mysql.com[/url])获得一个箮.??库操作。
我的操作系统是Soalris10,我选择下载源码进行编译安装,下载mysql-5.0.51b.tar.gz源码,同时下载MySql的官方参考文档。

NDOUtils
NDOUtils源码可以从Nagios的官方网站获得,同时可以下载一份NDOUTILS的官方文档

创建MySql的用户和用户组
用户和用户组分别为mysql和mysql
# groupadd mysql
# useradd -g mysql mysql
使用mysql命令登录数据库检查是否安装成功(root用户密码为空)。

创建NDOUtils后台数据库以及登录用户
根据NDOUtils的设计实现原理,其将Nagios监控程序收集到的信息(信息以文本方式存在)导入到后台数据库中,以便后续使用这些历史数据进行分析、预测以及实现其他具体业务功能。
此处创建的数据库和登录用户就是为NDOUtils程序保存监控信息所使用的。我们在这里创建数据库名为nagiosdb,登录用户和密码均为nagiosmysql。当然也可以使用其他数据库名和用户名,但是要记录下来,因为在后续的NDOUtils数据库初始化,以及NDOUtils配置文件中都要用到这些信息。
具体的操作如下:
//进入MySql的安装目录
# cd /usr/local/mysql
//进入bin目录
# cd ./bin
//运行mysql,使用root用户登录数据库,密码为空
# ./mysql -u root -p -h localhost
mysql> CREATE DATABASE nagiosdb;
mysql> GRANT ALL ON nagiosdb.* TO IDENTIFIED BY "nagiosmysql";
mysql> exit
//退出登录,使用刚刚创建的用户登录刚刚创建的数据库
# ./mysql -u nagiosmysql -p -h localhost -D nagiosdb
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.51b-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

NDOUtils安装
安装前准备



这里用到的NDOUtils版本是ndoutils-1.4b7,Nagios是3.0.3。其余的软件包如下
Data-Dumper-2.121
DBI-1.607
DBD-mysql-4.007
perl-5.8.8-sol10-x86-local

安装NDOUtils
首先解压源代码包,释放到某一目录,将此目录表示为NDOUTILS_DIR(便于后续描述安装过程)。

这里需要指定MySql的include文件和lib文件路径。

需要将/usr/local/lib添加到LD_LIBRARY_PATH变量中。

其中Makefile文件被标出的部分为所需添加的内容,如果不引入该文件ndo2db-3x和ndo2db-2x将编译失败,因为这两个C文件中都用了asprintf方法,而没有定义该方法,这个方法是在Nagios的 common/snprintf.c文件中定义的。可以将snprintf.c编译好的snprintf.o文件直接拷贝过来,并引入Makefile文件中。这样编译才能通过。
# cd $NDOUTILS_DIR
# cp -R ../nagios-3.0.3/common ./ #拷贝 snprintf.o文件
# make

编译完成,请注意在这之后不要运行make install。

将编译后的可执行文件和配置文件拷贝到Nagios的相应目录下。
并修改配置文件。

修改NDOUtils配置文件ndo2db.cfg,这里主要修改数据库名、用户名和密码(db_name、db_user、db_pass),将其设置成我们之前在安装MySql时创建的数据库和用户。其余保持默认配置即可。
# cd /usr/local/nagios/etc
# vi ./nagios.cfg

Make test中如果没有出现问题则表明安装成功。

初始化NDOUtils后台数据库
在NDOUtils的源代码中有个db目录,其中存放了用于初始化数据的sql脚本和一个建库初始化shell脚本。
运行installdb脚本,这里需要指定用户名、密码、主机、数据库。可以登录MySql查看nagiosdb下是否已经生成NDOUtils的数据表。

运行NDOUtils
此时所有的初始化、配置工作已经完成,下一步就是要启动NDOUtils程序检验是否成功安装了。
对于不同Nagios版本,NDOUtils有不同的启动程序,ndo2db-2x对应Nagios的2.X版本,ndo2db-3x对应Nagios的3.X版本,我安装时Nagios3.0.3版,所以选用ndo2db-3x。
# cd /usr/local/nagios/bin
# ./ndo2db-3x -c ../etc/ndo2db.cfg

运行上述命令启动NDOUtils,查看后台日志看是否有问题。
注意,如果要停止ndo2db-3x进程,再使用kill命令杀掉对应的进程号后,还必须删除/usr/local/nagios/var下的ndo.sock,否则下次NDOUtils不能正常启动。
重启Nagios,并观察Nagios的后台日志,观察是否有异常。
登录MySql使用nagiosdb数据库查看其中表的内容是否被更新。如可以查看nagios_hosts表中的主机信息是否与Nagios的配置文件一致;可以查询nagios_servicechecks表,查看监测内容的最新状态是否已经更新到数据库中。如果信息正常则表示安装配置完成。
结语
以上是我在solaris10x86安装NDOUtils的过程。NDOUtils可以将Nagios的监控信息保存于数据库中,备查询分析,但NDOUtils本身并不提供数据展示层的功能实现,你可能需要其他手段来使用这些收集好数据。

文章摘自: [url]http://alisaga.cn/[/url]
更多信息可登陆: [url]www.pass4side.cn[/url]