ndoutils(ndo2db)安装难点

 
1、ndoutils的编译
当万事具备,开始要编译安装的时候,仍需要注意三点:
1 、要指明使用的数据库类型,数据库的 lib 库,数据库的头文件。
./configure –enable-mysql --with-mysql-inc=… –with-mysql-lib=…
2 、编译时如出现类似于 ”xxxxxx ceil” 的错误,请在 src 下的 Makefile 中修改 CFLAGS 的值,增加 -lm 参数。注意, Makefile 中有两个 CFLAGS ,需修改第二个,因为它会把第一个给覆盖了。或者把其中一个 mark 掉也可以。
3 installdb 这一步必须进入 db 目录下执行 ./installdb 因为程序需要读取该目录下的脚本。按要求执行这一步之后,
如出现未能生成相应的数据库,请确认数据库用户的权限是否正确;
如果出现类似于 ”…./mysqld/mysqld.sock” 的错误,请察看 mysql 的配置文件 my.cnf 确认 mysql 的连接池在该目录下,若不是,请使用 ln –s 与之建立连接;
若出现数据库表已存在报告,可 drop 该数据库然后重新 create 再执行 installdb( 这时要确保以存在的数据库不再使用 )
2、ndoutils的db中有表没数据
按照安装文档正确编译 ndoutils ,将可执行文件和配置文件拷贝到指定目录并正确配置后。使用以下命令启动 ndoutils
       /usr/local/nagios/bin/ndo2db –c /usr/local/nagios/etc/ndo2db.cfg
这时,可能出现两个比较棘手的问题:
       2.1、不能加载数据库
出现如下的报错:
"Support for the specified database server is either not yet supported, or was not found on your system."
请察看 ./configure 的结果,应该是没找到 mysql.h 等头文件,请确保所必须的库已安装 并在 ./configure 时指定头文件目录 ( 参考 ndoutils 的编译 )

Ndoutils需要用到mysql,然而前段时间很多问题出现在对mysql本身的使用上,我自己也在这儿跌了不少跟斗。

 屡次碰到类似于”Support for the specified database server is either not yet supported, or was not found on your system.”是由于mysql的库不全或者路径不对,而导致ndoutils找不到mysql相应的头文件和库造成。

       解决办法就是上来把mysqlperl的库装上

libmysql++-dev                       - mysql C++ library bindings (development)

libmysql++2c2a                  - mysql C++ library bindings (runtime)

libmysqlclient15-dev                - mysql database development files

libmysqlclient15off                  - mysql database client library

libclass-dbi-mysql-perl                 -Class::DBI::mysql-Extensions to Class::DBI for MySQL

libdatetime-format-mysql-perl      - Parse and format MySQL dates and times

libdbd-mysql-perl                 -A Perl5 database interface to the MySQL database

libtime-piece-mysql-perl            -Time::Piece::MySQL - Adds MySQL-specific methods to Time::Piece

libpam-mysql                              -PAM module allowing authentication from a MySQL server

libpam-modules                 - Pluggable Authentication Modules for PAM

libpam-runtime                        - Runtime support for the PAM library

libpam0g                    - Pluggable Authentication Modules library                               

libpam0g-dev                            - Development files for PAM

kaffe-pthreads                - A POSIX threads enabled version of the Kaffe VM

 

另外,在ndoutils编译的时候,如果./configure这步提示找不到mysql.h,在前面这些都已正确安装之后,可以从别处将libmysql的库和头文件目录考来,并指定为./configure –with-mysql-lib—with-mysql-lib的目录即可。

注意:在重新./configure之后,在make之前千万记住要先make clean,否则最后会发生让你郁闷好几天的事情!

  2.2ndo2db正常启动,表中却没有数据
首先,请确保数据库中的表已生成。
执行改名之后如果没有出现任何提示信息,说明 ndo2db 已正常启动,并向数据写数据。
如果此时从数据库察看表信息,正常的话应该是已经有了 nagios 的信息。如果此时仍没有数据。那原因只有一个,就是数据库的权限问题:请察看前配置文件中指定的 db_user db_name ,在保证 db_pass 正确的前提下,察看数据库 mysql db 表中的信息,并确保 db_user db_name 具有 update,insert,select delete 的权限。
可参考 mysql 权限系统和 mysql 文档。
root 身份登陆 mysql
mysql>use mysql;
mysql>select * from db;
将看到 db_user db_name 的权限详情,可用 update 修改。
如果没有 db_user 对应 db_name 的授权,可用 insert 添加。
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值