Solaris10下NDOUtils的安装

Solaris10 NDOUtils的安装<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 1.    资源准备

 1.1. 数据库

NDOUtils 目前仅支持MySql数据库,对于 PostgreSQL 数据库支持还在开发中,未来可能会支持更多的、众所关注的数据库。

可以从MySql的官方网站( [url]www.mysql.com[/url] )获得一个稳定的MySql数据库版本,同时也下载一个MySql客户端mysql-gui-tools,方便对于MySql数据库操作。

我的操作系统是Solaris10,我选择下载源码进行编译安装,下载mysql-5.0.51b.tar.gz源码,同时下载MySql的官方参考文档。

 1.2. NDOUtils

NDOUtils 源码可以从Nagios的官方网站获得,同时可以下载一份NDOUTILS的官方文档(NDOUtils.pdf)。该文档介绍了NDOUtils的设计目的,实现原理,和安装过程。

源码:ndoutils-1.4b7.tar.gz

 2.    MySql 的安装

MySql 的安装方法已经在MySql官方文档中有详细的讲解,在这里我不做过的介绍,仅给出简单的安装过程。

 2.1. 创建MySql的用户和用户组

用户和用户组分别为mysqlmysql

# groupadd mysql

# useradd -g mysql mysql

 

 2.2. Configure

 

首先要解压下载的源码包,然后运行源码中的Configure命令完成安装前的配置工作。

# gunzip ./mysql-5.0.51b.tar.gz

# tar xvf ./mysql-5.0.51b.tar

# cd ./mysql-5.0.51b

# CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \

       -fno-exceptions -fno-rtti" ./configure \

       --prefix=/usr/local/mysql --enable-assembler \

       --with-mysqld-ldflags=-all-static

这里指定安装路径是/usr/local/mysql

 2.3. 编译、安装

不改变路径。

# make

# make install

# cp support-files/my-medium.cnf /etc/my.cnf

# cd /usr/local/mysql

# bin/mysql_install_db --user=mysql

# chown -R root  .

# chown -R mysql var

# chgrp -R mysql .

# bin/mysqld_safe --user=mysql &

# cd bin

# ./mysql -u root -p -h localhost

使用mysql命令登录数据库检查是否安装成功(root用户密码为空)。

 2.4. 创建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 'nagiosmysql'@'localhost' 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>

 

 3.    NDOUtils 安装

 3.1. 安装前准备

3.1.1

3.1.1展示了一个NDOUtils各组件之间是如何协同工作的。该图仅仅是NDOUtils的一个最简单的配置实现方式,但它包含了所有必需的要素,同时也非常明晰的展示出各组件之间的关系。

Nagios 主监控实例是必不可少的,一个用于存放信息的后台数据库也是必须的。Nagios主监控实例与NDOUtils进程之间通过TCPUnix Domain Socket进行通信,具体实现是Nagios通过NDOUtils提供的NDOMOD模块完成与NDOUtils进程的通信。

通过对于NDOUtils实现原理的了解,我们可以知道在安装NDOUtils之前有哪些准备工作需要完成,首先需要有Nagios软件,一个后台数据库,目前只有MySql可用。另外还有一些NDOUtils用到的一些类库,如OpenSSLPerlDBI等。

这里用到的NDOUtils版本是ndoutils-1.4b7Nagios3.0.3。其余的软件包如下

Data-Dumper-2.121

DBI-1.607

DBD-mysql-4.007

perl-5.8.8-sol10-x86-local

 

 3.2. 安装 NDOUtils

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

 3.2.1.  Configure

cd $NDOUTILS_DIR

# ./configure --prefix=/usr/local/nagios --enable-mysql \

--with-mysql-lib=/usr/local/mysql/lib/mysql \

--with-mysql-inc=/usr/local/mysql/include

这里需要指定MySqlinclude文件和lib文件路径。

 3.2.2.  Make

# cd /usr/local/include

# ln -s /usr/local/mysql/include/mysql ./mysql

 

# cd /usr/local/lib

# ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so \

        ./libmysqlclient.so

# ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.15\

       ./libmysqlclient.so.15

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

# cd $NDOUTILS_DIR

# vi ./src/Makefile

 

ndo2db-2x: ndo2db.c $(NDO_INC) $(NDO_OBJS) $(COMMON_INC) $(COMMON_OBJS) dbhandlers-2x.o

        $(CC) $(CFLAGS) $(DBCFLAGS) -D BUILD_NAGIOS_2X -o ndo2db-2x ndo2db.c dbhandlers-2x.o  ../common/snprintf.o \

        $(COMMON_OBJS) $(NDO_OBJS) $(LDFLAGS) $(DBLDFLAGS) $(LIBS) $(SOCKETLIBS) $(DBLIBS) $(MATHLIBS) $(OTHERLIBS)

 

ndo2db-3x: ndo2db.c $(NDO_INC) $(NDO_OBJS) $(COMMON_INC) $(COMMON_OBJS) dbhandlers-3x.o

        $(CC) $(CFLAGS) $(DBCFLAGS) -D BUILD_NAGIOS_3X -o ndo2db-3x ndo2db.c dbhandlers-3x.o  ../common/snprintf.o \

        $(COMMON_OBJS) $(NDO_OBJS) $(LDFLAGS) $(DBLDFLAGS) $(LIBS) $(SOCKETLIBS) $(DBLIBS) $(MATHLIBS) $(OTHERLIBS)

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

# cd $NDOUTILS_DIR

# cp -R ../nagios-3.0.3/common ./  # 拷贝 snprintf.o 文件

# make

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

 3.2.3.  设置

# cd $NDOUTILS_DIR/src

# cp ndomod-3x.o ndo2db-3x log2ndo file2sock \ 

     /usr/local/nagios/bin

# cd $NDOUTILS_DIR/config

# cp ndomod.cfg ndo2db.cfg /usr/local/nagios/etc

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

并修改配置文件。

# cd /usr/local/nagios/etc

# vi ./ndo2db.cfg

db_name=nagiosdb

db_user=nagiosmysql

db_pass=nagiosmysql

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

# cd /usr/local/nagios/etc

# vi ./nagios.cfg

 

# Uncomment the line below if you're running Nagios 2.x

#broker_module=/usr/local/nagios/bin/ndomod-2x.o config_file=/usr/local/nagios/etc/ndomod.cfg

 

# Uncomment the line below if you're running Nagios 3.x

broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

修改Nagios配置文件,追加上述各行,并确认event_broker_options=-1

event_broker_options=-1

这样配置工作基本完成,下一步就可以初始化数据库了,但在初始化数据库之前先要安装 Perl 以及 DBI ,因为 NDOUtils 的数据库初始化脚本 installdb 中需要 BDI 与数据库建立连接。

 3.3. 安装PerlDBIDBD

Perl 的安装可以参考官方文档,这里仅列出简要的安装过程。

Perl

# gunzip ./perl-5.8.8-sol10-x86-local.gz

# pkgadd -d ./perl-5.8.8-sol10-x86-local

# cd /usr/bin

# ln -sf /usr/local/bin/perl ./perl

# perl -v

 

This is perl, v5.8.8 built for i86pc-solaris

 

Copyright 1987-2006, Larry Wall

 

Perl may be copied only under the terms of either the Artistic License or the

GNU General Public License, which may be found in the Perl 5 source kit.

 

Complete documentation for Perl, including FAQ lists, should be found on

this system using "man perl" or "perldoc perl".  If you have access to the

Internet, point your browser at [url]http://www.perl.org/[/url], the Perl Home Page.

Data-Dumper:

# gunzip ./Data-Dumper-2.121.tar.gz

# tar xvf ./Data-Dumper-2.121.tar

# cd ./Data-Dumper-2.121

# perl ./Makefile.PL

# make

# make install

DBI

# gunzip ./DBI-1.607.tar.gz

# tar xvf ./DBI-1.607.tar

# cd ./DBI-1.607

# perl ./Makefile.PL

# make

# make install

DBD-mysql

# gunzip ./DBD-mysql-4.007.tar.gz

# tar xvf ./DBD-mysql-4.007.tar

# cd ./DBD-mysql-4.007

# perl Makefile.PL \

  --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz" \

  --cflags=-I/usr/local/mysql/include/mysql \

  --testhost=localhost

# make

# make test

# make install

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

 3.4. 初始化NDOUtils后台数据库

NDOUtils的源代码中有个db目录,其中存放了用于初始化数据的sql脚本和一个建库初始化shell脚本。

# cd $NDOUTILS_DIR

# export PATH=$PATH:/usr/local/mysql/bin

# cd ./db

# ./installdb -u nagiosmysql -p nagiosmysql \

              -h localhost -d nagiosdb

运行installdb脚本,这里需要指定用户名、密码、主机、数据库。可以登录MySql查看nagiosdb下是否已经生成NDOUtils的数据表。

 3.5. 运行NDOUtils

此时所有的初始化、配置工作已经完成,下一步就是要启动NDOUtils程序检验是否成功安装了。

对于不同Nagios版本,NDOUtils有不同的启动程序,ndo2db-2x对应Nagios2.X版本,ndo2db-3x对应Nagios3.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表,查看监测内容的最新状态是否已经更新到数据库中。如果信息正常则表示安装配置完成。

 4.    结语

以上是我在solaris10x86安装NDOUtils的过程。NDOUtils可以将Nagios的监控信息保存于数据库中,备查询分析,但NDOUtils本身并不提供数据展示层的功能实现,你可能需要其他手段来使用这些收集好数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值