一、实验准备1.安装好
lamp构架,如果不想用源代码编译安装,就直接配置一个本地的
yum源进行安装,这样就简单多了。
2.安装好
nagios、
GD库,让其可以正常运行。本实验旨在能正常提供
nagios的机上进行安装
ndoutils3.准备好
DBD-mysql-4.014.tar.gz、
DBI-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.130的
mysql数据库
四、实验过程: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 install2.安装
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 install3.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]#make3)在编译没有出错后,复制相应的配置文件与相关的执行文件,他们的主要作用就是做相关的配置与让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.o和ndo2db-2x的两个文档。后两项是通用文档,随便复制过去就OK了。 4)为NDOUtils创建数据库[root@node3 bin]# mysql5mysql> 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.cfglock_file=/usr/local/nagios/var/ndo2db.lockndo2db_user=nagiosndo2db_group=nagiossocket_type=tcpsocket_name=/usr/local/nagios/var/ndo.socktcp_port=5668use_ssl=0db_servertype=mysqldb_host=localhostdb_port=3306db_name=ndodbdb_prefix=nagios_db_user=ndouserdb_pass=ndousermax_timedevents_age=1440max_systemcommands_age=10080max_servicechecks_age=10080max_hostchecks_age=10080max_eventhandlers_age=44640max_externalcommands_age=44640debug_level=0debug_verbosity=1debug_file=/usr/local/nagios/var/ndo2db.debugmax_debug_file_size=10000005.配置ndomod.cfg文件[root@node3 etc]# vim /usr/local/nagios/etc/ndomod.cfginstance_name=node3output_type=tcpsocketoutput=127.0.0.1tcp_port=5668use_ssl=0output_buffer_items=5000buffer_file=/usr/local/nagios/var/ndomod.tmpfile_rotation_interval=14400file_rotation_timeout=60reconnect_interval=15reconnect_warning_interval=15data_processing_options=-1config_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=ndouserdb_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.cfg里ndo2db_user与ndo2db_group这两项的填写的用户是否对目录/usr/local/nagios/var/有写入的权限。8.启动nagios[root@node3 etc]# /etc/init.d/nagios start以上全是在node3.example.com的电脑上做的操作,也就是我们将要将数据存入数据库所在的那台机。下面进行分布式的另一台电脑node2.example.com上操作,可以理解为nagios的客户端。 9.同样是安装DBI和DBD-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]#make12.在编译没有出错后,复制相应的配置文件与相关的执行文件,他们的主要作用就是做相关的配置与让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.o和ndo2db-2x的两个文档。后两项是通用文档,随便复制过去就OK了。13.配置node2.example.com上的ndo2db.cfg [root@node2 etc]# vim /usr/local/nagios/etc/ndo2db.cfglock_file=/usr/local/nagios/var/ndo2db.lockndo2db_user=nagiosndo2db_group=nagiossocket_type=tcpsocket_name=/usr/local/nagios/var/ndo.socktcp_port=5668use_ssl=0db_servertype=mysqldb_host=192.168.145.130db_port=3306db_name=ndodbdb_prefix=nagios_db_user=ndouserdb_pass=ndousermax_timedevents_age=1440max_systemcommands_age=10080max_servicechecks_age=10080max_hostchecks_age=10080max_eventhandlers_age=44640max_externalcommands_age=44640debug_level=0debug_verbosity=1debug_file=/usr/local/nagios/var/ndo2db.debugmax_debug_file_size=1000000 14.配置/usr/local/nagios/etc/ndomod.cfg文件[root@node2 etc]# vim /usr/local/nagios/etc/ndomod.cfginstance_name=node2output_type=tcpsocketoutput=127.0.0.1tcp_port=5668use_ssl=0output_buffer_items=5000buffer_file=/usr/local/nagios/var/ndomod.tmpfile_rotation_interval=14400file_rotation_timeout=60reconnect_interval=15reconnect_warning_interval=15data_processing_options=-1config_output_options=215.编辑nagios配置文件[root@node2 etc]# vim /usr/local/nagios/etc/nagios.cfgbroker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg event_broker_options=-116.启动守护进程,重启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]# mysql5mysql> 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列可以看到1和2,这说明我们两台机的信息已经被写到mysql数据库中,大功告成。
五、实验总结通过以上的实验,我在实验过程中遇到很多问题,主要是安装ndoutils的时候,郁闷得很,一会儿配置过了,编译不,编译过了,配置不过,其根本原因就是我们的头文件关联,只要用关联头文件那一步做了就很少出问题,另外在配置的过程中,一定要加mysql的选项,我上面都写上了。其次说明一点,我的系统是RedHat5.4,nagios是3.2版本,mysql是7.0.6的集群版,也可以用5.1的版本。其他的都写上的相应版本。以上在我的配置中OK,如果有什么错误,请读者指出,多谢!Linux Core文件生成及设置Ubuntu 8.04下安装TP-Link TL-WN-322G+ 1.0 无??网卡相关资讯 Linux教程
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux 修改root密码 (11/03/2012 07:53:38)
- su - root 与su root的区别 (06/06/2012 00:39:40)
| - Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- U盘安装Linux开机无法启动解决方法 (10/07/2012 08:55:52)
- Windows 7/Linux 同步时间 (05/15/2012 06:17:55)
|
本文评论 查看全部评论 (1)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
|