官方的一些简介:
NDOUtilsest un addon pour. Il permet de stocker dans une base de donnéesou dans un fichier plat :
·La configuration des serveurs supervisés
·Les évènements
·Les états des éléments supervisés
ndoutils软件主要是用于将Naigos数据存数据库,然后又可读取出来.
# wget http://nchc.dl.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.5.2/ndoutils-1.5.2.tar.gz
# tar zxvf ndoutils-1.5.2.tar.gz //以下是源码安装
# cd ndoutils-1.5.2
#./configure --with-mysql-inc=/usr/local/mysql/include/ --with-mysql-lib=/usr/local/mysql/lib/ --with-mysql=/usr/local/mysql/ --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
# make
手动将一些二进制文件和库文件copy到nagios目录
# cp ./src/ndomod-3x.o /usr/local/nagios/bin/
# cp ./src/ndo2db-3x /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
#chmod 775 /etc/init.d/ndo2db
# chkconfig --add ndo2db
# chkconfig --level 35 ndo2db on
//创建数据库且导入库内容
mysql> create database nagios;
./installdb -u root -p -h localhost -d nagios
或者:
# cd ndoutils-1.5.2/db
# mysql -uroot -p nagios
安装ndoutils-1.4b9时报以下错
# ./configure --enable-mysql --with-mysql=/usr/local/mysql# make
cd ./src && makemake[1]: Entering directory `/root/nagiosddd/ndoutils-1.4b9/src'gcc -fPIC -g -O2 -I/usr/local/mysql/include/mysql -DHAVE_CONFIG_H -c -o io.o io.cIn file included from io.c:11:../include/config.h:261:25: error: mysql/mysql.h: No such file or directory../include/config.h:262:26: error: mysql/errmsg.h: No such file or directorymake[1]: *** [io.o] Error 1make[1]: Leaving directory `/root/nagiosddd/ndoutils-1.4b9/src'make: *** [all] Error 2
解决方法
# vi include/config.h将#include#include修改为#include#include /errmsg.h>
配置
# vim /usr/local/nagios/etc/nagios.cfg
# 复制下面内容粘贴到#broker_module=...下面。broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:event_broker_options=-1 //为Nagios开启event broker
备注:以上内容是一行连接的,中间使用空格隔开的
授权数据库帐号:
mysql> grant all privileges on nagios.* to 'ndouser'@'localhost' identified by '123456';
配置数据库连接信息:
# vim /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
#socket_name=/usr/local/nagios/var/ndo.sock
db_user=ndouser
db_pass=123456
# vim /usr/local/nagios/etc/ndomod.cfg
output=127.0.0.1
#output=/usr/local/nagios/var/ndo.sock
output_type=tcpsocket
#output=/usr/local/nagios/var/ndo.sock
//测试启动否
# /etc/init.d/ndo2db start注:socket_type=unix时 socket_name才能工作,并且ndomod.cfg 中 output=/usr/local/nagios/var/ndo.sock,output_type=unixsocket与之对应;当socket_type=tcp时,ndomod.cfg 中output=127.0.0.1,output_type=tcpsocket。在配置的时候有说明,大家注意。
或者如下测试:
# /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
# netstat -antup |grep 5668 //查看端口是否打开
tcp 0 0 0.0.0.0:5668 0.0.0.0:* LISTEN 28099/ndo2db-3x
#service nagios restart
如果报错:
[1353555768] ndomod: NDOMOD 1.5.2 (06-08-2012) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1353555768] ndomod: Could not open data sink! I'll keep trying, but some output may get lost...
[1353555768] Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.
[1353555768] Finished daemonizing... (New PID=30920)
解决方法:
检查 /nagios/etc目录的权限是否足够的大
确保/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:
event_broker_options=-1
检查ndo2db.cfg中的配置,确保使用tcp连接
socket_type=tcp
检查ndomod.cfg中的配置,确保使用tcp套接字
output_type=tcpsocket
NDO to PNP
The aim of this script is to import your ndo database directly into PNP4nagios. To do so, we use an exporter (ndo2pnp.pl) that can connect throught MySQL database and export contents into the same format as perfdata expected from nagios. Then we plug this into pnp4nagios using bulk option.
#cd /usr/local/nagios/libexec/
#chmod +x ndo2pnp.pl
详细使用参数:
$ ./ndo2pnp.pl --help
Usage :
-h --help Display this message.
--version Display version then exit.
-v --verbose Verbose run.
-u --user Log on to database with (default root).
-p --pass Use to logon (default gbu2kfe).
-t --type Change database type (default mysql).
--host Use (default localhost).
--dbname Use for ndo database name (default ndoutils).
--list-machine Display machine definition in ndo database.
--list-service Show services defined.
--export-as-pnp Export ndo content as a bulk file used by process_perfdata.pl
显示列表:
$./ndo2pnp.pl --user -p --list-service
Hostname | Service
-------------------------------+-------------------
gateway | PING
localhost | Current Load
localhost | Current Users
localhost | Disk Space
localhost | HTTP
localhost | SSH
localhost | Total Processes
$ ./ndo2pnp.pl --user -p --export-as-pnp > /tmp/perfdata.bulk
测试结果:
/usr/local/nagios/libexec/ndo2pnp.pl --host 127.0.0.1 -u ndouser -p 123456 --dbname nagios --list-service
Hostname | Service
-------------------------------+-------------------
192.168.15.178 | CPU
192.168.15.178 | Current Load
192.168.15.178 | Current Users
192.168.15.178 | HTTP
192.168.15.178 | PING
192.168.15.178 | Qcache_free
192.168.15.178 | Root Partition
192.168.15.178 | SSH
192.168.15.178 | system swap
192.168.15.178 | Total Processes
localhost | CPU