感谢支持
我们一直在努力

在RHEL5.4安装ndoutils 1.4.14

一、实验准备


1.安装好lamp构架,如果不想用源代码编译安装,就直接配置一个本地的yum源进行安装,这样就简单多了。


2.安装好nagiosGD库,让其可以正常运行。本实验旨在能正常提供nagios的机上进行安装ndoutils


3.准备好DBD-mysql-4.014.tar.gzDBI-1.609.tar.gz,可以在http://search.cpan.org


4.准备好nagios-plugins-1.4.14.tar.gz,可以到http://www.nagios.org上去下载


二、实验环境:
















主机


IP


描述


Node2.example.com


192.168.145.129


Nagios+ndoutils


Node3.example.com


192.168.145.130


Nagios+ndoutils+mysql


三、实验目的:


两台机分别用nagios采集信息通过ndoutils存入192.168.145.130mysql数据库


四、实验过程:


1.安装DBI

[root@node2 /]# tar xvf DBI-1.609.tar.gz -C /usr/src


[root@node2 /]# cd /usr/src/DBI-1.609/


[root@node2 DBI-1.609]# perl Makefile.PL


[root@node2 DBI-1.609]#make && make install


2.安装DBD-mysql

[root@node2 /]# tar xvf DBD-mysql-4.014.tar.gz -C /usr/src


[root@node2 src]# cd DBD-mysql-4.014/


[root@node2 DBD-mysql-4.014]# perl Makefile.PL –mysql_config=/usr/local/mysql/bin –with-mysql=/usr/local/mysql


[root@node2 DBD-mysql-4.014]# make && make install


3.Ndoutils安装:


1)关联mysql头文件和库

[root@node3 mysql]# ln -s /usr/local/mysql/include/* /usr/include/


[root@node3 mysql]# ln -s /usr/local/mysql/lib/* /usr/lib


 


2)安装NDOUtils

[root@node3 /]#cd /usr/src/ndoutils-1.4b9/


[root@node3 src]# ./configure –prefix=/usr/local/nagios –enable-mysql –disable-pgsql LDFLAGS=-L/usr/local/mysql/lib/mysql  –with-mysql-lib=/usr/local/mysql/lib/mysql –with-mysql=/usr/local/mysql


[root@node3 src]#make


3)在编译没有出错后,复制相应的配置文件与相关的执行文件,他们的主要作用就是做相关的配置与让nagios可以正确的调用。

[root@node3 src]# cd /usr/src/ndoutils-1.4b9/src/


[root@node3 src]# cp ndo2db-3x ndo2db-2x file2sock log2ndo /usr/local/nagios/bin/


[root@node3 config]# cp ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg


[root@node3 config]# cp ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg


以上复制的文档中前两项是版本相关的,即假如您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.ondo2db-2x的两个文档。后两项是通用文档,随便复制过去就OK了。


 


4)NDOUtils创建数据库

[root@node3 bin]# mysql5


mysql> create database ndodb;


Query OK, 1 row affected (0.00 sec)


mysql> grant all on ndodb.* to ‘ndouser’@’localhost’ identified by ‘ndouser’;


Query OK, 0 rows affected (0.00 sec)


mysql> grant all on ndodb.* to ‘ndouser’@’%’ identified by ‘ndouser’;


Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;


Query OK, 0 rows affected (0.00 sec)


 


下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命 令必须在db子目录内执行:# cd db# ./installdb -u ndouser -p 123456 -h localhost -d ndodb其中各选项的意义如下:-u用来指定导入时所用的mysql用户帐号-p表示前面mysql用户的密码-h表示mysql服务器地址,假如是 localhost,则能够省略-d表示目标数据库


以下关键的一句就是创建数据库的表信息,-u为访问数据库的用户名


5)建立数据库表信息,注意一定要进行编译软件的目录下的db目录里执行以下命令。

[root@node3 ndoutils-1.4b9]# cd db


[root@node3 db]# ./installdb -u ndouser -p ndouser -h localhost -d ndodb


以上信息:


-u 访问ndodb数据库的用户名


-p 访问ndodb数据库的密码


-h 写入数据库的地址,因为现在我操作的是node3.example.com,因此,是在本地建立数据库localhost


-d 写入的数据库名称


4.配置ndo2db.cfg文件:


[root@node3 etc]# vim /usr/local/nagios/etc/ndo2db.cfg

lock_file=/usr/local/nagios/var/ndo2db.lock


ndo2db_user=nagios


ndo2db_group=nagios


socket_type=tcp


socket_name=/usr/local/nagios/var/ndo.sock


tcp_port=5668


use_ssl=0


db_servertype=mysql


db_host=localhost


db_port=3306


db_name=ndodb


db_prefix=nagios_


db_user=ndouser


db_pass=ndouser


max_timedevents_age=1440


max_systemcommands_age=10080


max_servicechecks_age=10080


max_hostchecks_age=10080


max_eventhandlers_age=44640


max_externalcommands_age=44640


debug_level=0


debug_verbosity=1


debug_file=/usr/local/nagios/var/ndo2db.debug


max_debug_file_size=1000000


5.配置ndomod.cfg文件


[root@node3 etc]# vim /usr/local/nagios/etc/ndomod.cfg

instance_name=node3


output_type=tcpsocket


output=127.0.0.1


tcp_port=5668


use_ssl=0


output_buffer_items=5000


buffer_file=/usr/local/nagios/var/ndomod.tmp


file_rotation_interval=14400


file_rotation_timeout=60


reconnect_interval=15


reconnect_warning_interval=15


data_processing_options=-1


config_output_options=2


 


6.配置nagios的配置文件


[root@node3 etc]# vim /usr/local/nagios/etc/nagios.cfg


添加以下两句,第二句如果没有才加上去,默认是有的。

broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg 大概在251行。


event_broker_options=-1   大概在224


7. 启动ndo2db守护进程

[root@node3 etc]# /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg


执行完以上这条命令,如果没有报错,就看看nagios.log的日志,如果出现以下提示:

nagios: ndomod: Could not open data sink!  I’ll keep trying, but some output may get lost…


解决方法就是:


查看/usr/local/nagios/etc/ndo2db.cfg文件里的ndo2db_user=nagios ndo2db_group=nagios db_user=ndouser


db_pass=ndouser 这几项是否正确配置了,ndo2db_user就是你运行nagios的用户名;ndo2db_group是运行nagios的组,db_user表示的是你授权访问ndodb数据库的用户名,db_pass访问数据的密码。


如果在加载守护进程出现:

Failed to obtain lock on file /usr/local/nagios/var/ndo2db.lock: Permission denied  : Permission denied


解决方法是:确认你在/usr/local/nagios/etc/ndo2db.cfgndo2db_userndo2db_group这两项的填写的用户是否对目录/usr/local/nagios/var/有写入的权限。


8.启动nagios

[root@node3 etc]# /etc/init.d/nagios start


以上全是在node3.example.com的电脑上做的操作,也就是我们将要将数据存入数据库所在的那台机。下面进行分布式的另一台电脑node2.example.com上操作,可以理解为nagios的客户端。


 


9.同样是安装DBIDBD-mysql,由于前面已经安装过,可以照着上面一台电脑上安装就可以了。


10.关联mysql头文件和库

[root@node2 mysql]# ln -s /usr/local/mysql/include/* /usr/include/


[root@node2 mysql]# ln -s /usr/local/mysql/lib/* /usr/lib


 


11.安装NDOUtils

[root@node2 /]#cd /usr/src/ndoutils-1.4b9/


[root@node2 src]# ./configure –prefix=/usr/local/nagios –enable-mysql –disable-pgsql LDFLAGS=-L/usr/local/mysql/lib/mysql  –with-mysql-lib=/usr/local/mysql/lib/mysql –with-mysql=/usr/local/mysql


[root@node2 src]#make


12.在编译没有出错后,复制相应的配置文件与相关的执行文件,他们的主要作用就是做相关的配置与让nagios可以正确的调用。

[root@node2 src]# cd /usr/src/ndoutils-1.4b9/src/


[root@node2 src]# cp ndo2db-3x ndo2db-2x file2sock log2ndo /usr/local/nagios/bin/


[root@node2 config]# cp ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg


[root@node2 config]# cp ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg


以上复制的文档中前两项是版本相关的,即假如您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.ondo2db-2x的两个文档。后两项是通用文档,随便复制过去就OK了。


13.配置node2.example.com上的ndo2db.cfg


 


[root@node2 etc]# vim /usr/local/nagios/etc/ndo2db.cfg

lock_file=/usr/local/nagios/var/ndo2db.lock


ndo2db_user=nagios


ndo2db_group=nagios


socket_type=tcp


socket_name=/usr/local/nagios/var/ndo.sock


tcp_port=5668


use_ssl=0


db_servertype=mysql


db_host=192.168.145.130


db_port=3306


db_name=ndodb


db_prefix=nagios_


db_user=ndouser


db_pass=ndouser


max_timedevents_age=1440


max_systemcommands_age=10080


max_servicechecks_age=10080


max_hostchecks_age=10080


max_eventhandlers_age=44640


max_externalcommands_age=44640


debug_level=0


debug_verbosity=1


debug_file=/usr/local/nagios/var/ndo2db.debug


max_debug_file_size=1000000


 


14.配置/usr/local/nagios/etc/ndomod.cfg文件

[root@node2 etc]# vim /usr/local/nagios/etc/ndomod.cfg


instance_name=node2


output_type=tcpsocket


output=127.0.0.1


tcp_port=5668


use_ssl=0


output_buffer_items=5000


buffer_file=/usr/local/nagios/var/ndomod.tmp


file_rotation_interval=14400


file_rotation_timeout=60


reconnect_interval=15


reconnect_warning_interval=15


data_processing_options=-1


config_output_options=2


15.编辑nagios配置文件


[root@node2 etc]# vim /usr/local/nagios/etc/nagios.cfg

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


event_broker_options=-1


16.启动守护进程,重启nagios

[root@node2 etc]# /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg


[root@node2 etc]#/etc/init.d/nagios restart


 


至此已经全部配置完成,下面确认我们已经安装成功,回到node3.example.com的机上,进入mysql看看我们创建的数据表里是否有两台机的数据。


[root@node3 etc]# mysql5


mysql> use ndodb;


mysql> select host_id,instance_id,display_name,address from nagios_hosts;


+———+————-+—————-+—————–+


| host_id | instance_id | display_name   | address         |


+———+————-+—————-+—————–+


|      10 |           1 | winserver       | 192.168.1.2     |


|       9 |           1 | windows-server  | 192.168.145.1   |


|       8 |           1 | localhost       | 127.0.0.1       |


|       7 |           1 | linux-server2   | 192.168.145.128 |


|       6 |           1 | linux-server1  | 192.168.145.130 |


|      11 |           2 | linux-server1  | 192.168.145.130 |


|      12 |           2 | linux-server2  | 192.168.145.128 |


|      13 |           2 | localhost      | 127.0.0.1       |


|      14 |           2 | windows-server | 192.168.145.1   |


|      15 |           2 | winserver      | 192.168.1.2     |


+———+————-+—————-+—————–+


10 rows in set (0.00 sec)


从以上可以看到instance id列可以看到12,这说明我们两台机的信息已经被写到mysql数据库中,大功告成。


五、实验总结


通过以上的实验,我在实验过程中遇到很多问题,主要是安装ndoutils的时候,郁闷得很,一会儿配置过了,编译不,编译过了,配置不过,其根本原因就是我们的头文件关联,只要用关联头文件那一步做了就很少出问题,另外在配置的过程中,一定要加mysql的选项,我上面都写上了。


其次说明一点,我的系统是RedHat5.4nagios3.2版本,mysql7.0.6的集群版,也可以用5.1的版本。其他的都写上的相应版本。


以上在我的配置中OK,如果有什么错误,请读者指出,多谢!


赞(0) 打赏
转载请注明出处:服务器评测 » 在RHEL5.4安装ndoutils 1.4.14
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏