前面的文章已经说过,NDOUtils必须使用2.0的版本才支持nagios4x,比较幸运的是该版本2014年就已经发布。
一.安装#tar -axf ndoutils-2.0.0.tar.gz -C /usr/local/src/#cd /usr/local/src/ndoutils-2.0.0#./configure --prefix=/usr/local/nagios LDFLAGS=-L/usr/lib64/mysql --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib64/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios#make#cp ./src/ndomod-4x.o /usr/local/nagios/bin/ndomod.o#cp ./src/ndo2db-4x /usr/local/nagios/bin/ndo2db#cp ./config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg#cp ./config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg#chmod 774 /usr/local/nagios/bin/ndo*#chown nagios:nagios /usr/local/nagios/bin/ndo*#cp ./daemon-init /etc/init.d/ndo2db修改启动脚本#vi /etc/init.d/ndo2db killproc_ndo2db (){ #kill $2 $Ndo2dbPIDkill `pidof ndo2db |cut -f1 -d " "` >/dev/null 2>&1kill `pidof ndo2db |cut -f1 -d " "` >/dev/null 2>&1}stop)echo "Stopping $servicename..."#pid_ndo2dbkillproc_ndo2db#killproc_ndo2db ndo2db#chmod +x /etc/init.d/ndo2db#chkconfig --add ndo2db#chkconfig --level 35 ndo2db on#/etc/init.d/ndo2db start二、初始化数据库注意,为了后面与cacti和nagios结合在一起使用,需将初始化脚本中所有的数据库表明的前缀由nagios_修改为npc_去掉所有“character set latin1”,这里ndoutils默认建表时,把所有varchar字段默认编码设置为latin1(iso-8859-1),latin1是单字节,可以存储中文,但是显示会乱码
这里使用的数据库与cacti使用的数据库必须为一个数据库
#mysql -unagios -p nagios</usr/local/src/ndoutils-2.0.0/db/mysql.sql验证初始化是否成功:mysql> use nagios;mysql> show tables;三、配置Nagios(1)修改Nagios配置文件# vim /usr/local/nagios/etc/nagios.cfg增加如下配置broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:event_broker_options=-1 //为Nagios开启event broker(2)配置数据库连接#vim /usr/local/nagios/etc/ndo2db.cfgsocket_type=tcp#socket_name=/usr/local/nagios/var/ndo.sockdb_name=nagiosdb_user=nagiosdb_pass=XXXXdb_prefix=npc_#vim /usr/local/nagios/etc/ndomod.cfgoutput=127.0.0.1#output=/usr/local/nagios/var/ndo.sockoutput_type=tcpsocket#output=/usr/local/nagios/var/ndo.sock//启动测试#/etc/init.d/ndo2db restart四、验证结果使用官方提供的一个perl脚本可以验证nagios的监控数据是否成功写入mysql数据库,使用前先确认脚本中关于数据库的配置是否与实际情况相同,如有差异请自行修改脚本地址:可以查看官网资料:
#perl ndo2pnp.pl --user nagios -p XXXX --list-service