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的用户和用户组
用户和用户组分别为mysql和mysql
# 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进程之间通过TCP或Unix Domain Socket进行通信,具体实现是Nagios通过NDOUtils提供的NDOMOD模块完成与NDOUtils进程的通信。
通过对于NDOUtils实现原理的了解,我们可以知道在安装NDOUtils之前有哪些准备工作需要完成,首先需要有Nagios软件,一个后台数据库,目前只有MySql可用。另外还有一些NDOUtils用到的一些类库,如OpenSSL、Perl、DBI等。
这里用到的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
 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
这里需要指定MySql的include文件和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-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。
 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_name、db_user、db_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. 安装Perl及DBI、DBD
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对应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表,查看监测内容的最新状态是否已经更新到数据库中。如果信息正常则表示安装配置完成。
 4.    结语
以上是我在solaris10x86安装NDOUtils的过程。NDOUtils可以将Nagios的监控信息保存于数据库中,备查询分析,但NDOUtils本身并不提供数据展示层的功能实现,你可能需要其他手段来使用这些收集好数据。

Solaris10下NDOUtils的安装相关推荐

  1. Solaris10下Nagios安装

    Solaris10下Nagios安装<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...

  2. Solaris10 下mysql5.5.12的安装

    Solaris10下MYSQL安装与维护 MySQL是开源软件中一款非常流行的数据库系统,然而按照MySQL网站上给出的安装手册在Solaris上安装,并不能够成功的启动MySQL.本文 介绍了如何S ...

  3. Centos 7下Nagios的安装及配置(完整版)

    Centos 7下Nagios的安装及配置(完整版) 简介 Nagios 是一款自动化运维工具,可以协助运维人员监控服务器的运行状况,并且拥有报警功能.本文章将介绍其安装方法和详细的配置方法. nag ...

  4. Linux下Tomcat的安装配置

    Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/down ...

  5. linux下从git获取有权限的代码,linux下从源代码安装git

    之所以有这样的需求,是因为部分预安装的git版本太低,很多功能没有并且安全性存在问题. 比如git submodule add xxx@host:yyy.git必须在父repo的root目录安装,而新 ...

  6. Windows10下python-pcl的安装步骤说明,亲测ok

    Windows10下python-pcl的安装步骤说明 1. 环境依赖 2. 安装步骤 2.1 安装visual studio 2017 2.2 安装pcl并配置环境变量 2.3 编译python-p ...

  7. linux编译安装jpeg,Linux下JPEG库安装脚本(转)

    Linux下JPEG库安装脚本(转)[@more@]该脚本用于在Linux下安装JPEG库,在安装GD库的时候如果没有JPEG库,GD将不能生成JPEG格式的图象. 作者: 何志强#----where ...

  8. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件 下载地址 ...

  9. Linux下图解minicom安装

    Linux下图解minicom安装 minicom是一个串口通信工具,就像Windows下的HyperTerminal.可用来与串口设备通信,如调试交换机和Modem等.它的Ubuntu软件包的名称就 ...

最新文章

  1. 关于深度学习中GPU显存使用的介绍
  2. JDK13的新特性:AppCDS详解
  3. 修改Tomcat编码方式的两种方法
  4. 云小课|云数据库RDS实例连接失败了?送你7大妙招轻松应对
  5. oracle中distinct和group by的区别
  6. linux 安装 PHP fileinfo 扩展
  7. Superset集成到iframe 跨域 无需账号登录
  8. 全国草地资源类型分布图
  9. APISpace 通用文字识别OCR接口 免费好用
  10. python词云词频分析_Python数据挖掘:WordCloud词云配置过程及词频分析
  11. 素数筛【埃筛,欧拉筛(线性筛)】
  12. 看球二三事 - 世界杯征文
  13. Oracle一次性查询超过1000条数据的方法(分批查询)
  14. 科研人必备英语改写神器——PARAPHRASER多语言改写
  15. ValueError: Invalid format specifier
  16. 阿里P7架构师到底有多难?
  17. 强化学习-学习笔记11 | 解决高估问题
  18. 2022年程序员开工第一周,应该收藏这样一份书单
  19. 计算机专业云平台管理试题,练习题云平台/计算机软考考试试题-考试系统
  20. Amazon CodePipeline 与 GitHub 集成

热门文章

  1. 抠图+修图+调色+合成+特效Photoshop核心应用5项修炼pdf
  2. Atitit.java c#这类编程语言的设计失败点attilax总结
  3. 分步骤学习自动化测试
  4. nginx搭建rtmp协议流媒体服务器总结
  5. 随机蕨(Random Fern)
  6. 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序 3
  7. 利用泛型接口实现生成器
  8. 自定义Dialog(一)
  9. 在Visual Studio 2008中编译snort-2.8.6.1.tar.gz
  10. 算子find_shpe_model参数详解