ndoutils(ndo2db)安装难点

来源:互联网 发布:专业淘宝差评师 编辑:程序博客网 时间:2024/06/07 13:55

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添加。

0 0
原创粉丝点击