您的位置:首页 > 其它

ndoutils(ndo2db)安装难点

2015-08-11 09:40 302 查看
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相应的头文件和库造成。

解决办法就是上来把mysql和perl的库装上。

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.2、ndo2db正常启动,表中却没有数据

首先,请确保数据库中的表已生成。

执行改名之后如果没有出现任何提示信息,说明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添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: