共计 5775 个字符,预计需要花费 15 分钟才能阅读完成。
使用 NDOUtils 将 Nagios 监控信息存入 MySQL
1.NDOUtils 安装需求
nagios
mysql
cpan DBI #非必需
cpan DBD::mysql #非必需
2. 关联 mysql 头文件和库
不做关联可能在 config 或 make 时出错
- ln -s /opt/mysql/include/* /usr/include/
- ln -s /opt/mysql/lib/* /usr/lib/
- echo ‘/usr/lib’ >> /etc/ld.so.conf
- ldconfig -v
3. 安装 ndoutils
http://sourceforge.net/project/showfiles.php?group_id=26589
- wget -c http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
- tar zxvf ndoutils-1.4b7.tar.gz
- cd ndoutils-1.4b7
- ./configure –prefix=/usr/local/nagios –enable-mysql –disable-pgsql LDFLAGS=-L/opt/mysql/lib –with-mysql-inc=/opt/mysql/include/mysql –with-mysql-lib=/opt/mysql/lib/mysql
*config 时使用以下 mysql 参数
- –with-mysql-inc=/opt/mysql/include –with-mysql-lib=/opt/mysql/lib
- #config 成功
- #make 出错
*config 时使用以下 mysql 参数
- –with-mysql-inc=/opt/mysql/include/mysql –with-mysql-lib=/opt/mysql/lib/mysql
- #config 出错
- #make 成功并生成文件
- # 启动 ndo2db 会出错
* 没有 LDFLAGS=-L/opt/mysql/lib
- <del datetime=”2009-05-27T06:58:24+00:00″>LDFLAGS=-L/opt/mysql/lib </del>
- #ndo2db 不能导入到数据库
相关错误
- In file included from io.c:10:
- ../include/config.h:261:25: mysql/mysql.h: 没有那个文件或目录
- ../include/config.h:262:26: mysql/errmsg.h: 没有那个文件或目录
- make[1]: *** [io.o] 错误 1
- checking for mysql/mysql.h… no
- *** MySQL include file could not be located… **********************
- You chose to compile NDBXT with MySQL support, but I was unable to
- locate on your system. If the include file is
- installed, use the –with-mysql-inc argument to specify the location
- of the MySQL include file.
- make
- ll ./src
看看是否有以下文件
ndo2db-2x
ndo2db-3x
ndomod-2x.o
ndomod-3x.o
4. 拷贝文件
# 我的 Nagios 是 3.0.6,所以拷贝的是 ndomod-3x.o、ndo2db-3x,如果你的是 2.X.x 请拷贝 ndomod-2x.o、ndo2db-2x
- cp ./src/ndomod-3x.o /usr/local/nagios/bin
- cp ./src/ndo2db-3x /usr/local/nagios/bin
- cp ./src/log2ndo /usr/local/nagios/bin
- cp ./src/file2sock /usr/local/nagios/bin
- chown nagios:nagios /usr/local/nagios/bin/*
5. 拷贝配置文件
- cp ./config/ndo* /usr/local/nagios/etc/
- chown nagios:nagios /usr/local/nagios/etc/*
6. 创建 ndo 的 mysql 数据库及用户
- CREATEDATABASE`nagios`DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;
- GRANT select,insert,update,deleteONnagios.* TOnagiosndo@localhostidentifiedby‘password123‘;
- FLUSH PRIVILEGES ;
7. 导入数据库结构
使用 db/installdb 脚本
需要以下支持
cpan DBI
cpan DBD::mysql
- cd ./db/
- ./installdb -u root -p 123456 -h localhost -d nagios
用命令导入(其实和用脚本是一回事, 也可以用 phpmyadmin 来导入)
- /opt/mysql/bin/mysql -u root -p -D nagios -h localhost < ./db/mysql.sql
输入密码
成功导入 59 张表
8. 修改配置文件
vi /usr/local/nagios/etc/ndo2db.cfg
- db_user=nagiosndo
- db_pass=password123
vi /usr/local/nagios/etc/nagios.cfg
- # 修改下面参数的值为 -1(一般默认如此)。
- event_broker_options=-1
- # 复制下面内容粘贴到 #broker_module=… 下面。
- # 注意 broker_module= 和 config_file 是在一行上
- # Uncomment the line below if you’re running Nagios 3.x
- broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
9. 启动 ndo2db
- /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
- echo ‘rm -f /usr/local/nagios/var/ndo.sock’ >> /etc/rc.local
- echo ‘/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg’ >> /etc/rc.local
- # 开机启动
- Support for the specified database server is either not yet supported, or was not found on your system.
- /usr/local/nagios/bin/ndo2db-3x: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
出现以上错误请执行第 2 步
10. 重启动 nagios
- /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- service nagios restart
一般情况下到此已完成安装,可以去数据库里看下记录有无增加
11. 检查安装是否正确
- tail -20 /usr/local/nagios/var/nagios.log
[1242971625] ndomod: Successfully flushed 80 queued items to data sink.
[1242971625] ndomod: Error writing to data sink! Some output may get lost…
貌似有点问题
先改成输出成文件
#vi ndomod.cfg
- instance_name=default
- #output_type=tcpsocket
- #output=127.0.0.1
- output_type=file
- output=/usr/local/nagios/var/ndo.dat
- service nagios restart
看看有没有 /usr/local/nagios/var/ndo.dat 文件,ok,发现文件,说明第一步可以生成文件
查看文件内容
- cd /usr/local/nagios/var/
- head -30 ndo.dat
- HELLO
- PROTOCOL: 2
- AGENT: NDOMOD
- AGENTVERSION: 1.4b7
- STARTTIME: 1243393299
- DISPOSITION: REALTIME
- CONNECTION: FILE
- CONNECTTYPE: INITIAL
- INSTANCENAME: default
- STARTDATADUMP
- 202:
- 1=300
- 2=0
- 3=0
- 4=1243393292.450675
- 73=1243393292
- 74=262144
- 72=ndomod: Error writing to data sink! Some output may get lost…
- 999
- 201:
- 1=205
- 2=0
使用 file2sock 尝试 socket 方式
- ../bin/file2sock -s /usr/local/nagios/var/ndo.dat -d /usr/local/nagios/var/ndo.sock -t unix -p 5668
Error while writing to destination socket: Connection reset by peer
尝试 tcp 方式
vi ndo2db.cfg
- #socket_type=unix
- socket_type=tcp
重新载入 ndo2db
- ps aux|grep ndo2db
- kill $pid
- /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
- ../bin/file2sock -s ndo.dat -d localhost -t tcp -p 5668
Error while writing to destination socket: Connection reset by peer
依然不行,重新编译 ndoutils 并加上 LDFLAGS=-L/opt/mysql/lib
- ./configure –prefix=/usr/local/nagios –enable-mysql –disable-pgsql LDFLAGS=-L/opt/mysql/lib –with-mysql-inc=/opt/mysql/include/mysql –with-mysql-lib=/opt/mysql/lib/mysql
- make
- # 再执行一下安装过程后,通过
=================
200912-07 更新
tail /var/log/messages
- Dec 7 14:09:13 localhost nagios: ndomod: Still unable to connect to data sink. 10547 items lost, 5000 queued items to flush.
- Dec 7 14:09:29 localhost nagios: ndomod: Still unable to connect to data sink. 10746 items lost, 5000 queued items to flush.
连接不到 mysql, 重启一下
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
- Could not bind socket: Address already in use
ps aux|grep ndo2db
没有
查看套接字文件是否存在, 删除之
ll /usr/local/nagios/var/ndo.sock
rm /usr/local/nagios/var/ndo.sock
重启
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
tail /var/log/messages
- Dec 7 14:09:45 localhost nagios: ndomod: Successfully connected to data sink. 10861 items lost, 5000 queued items to flush.
- Dec 7 14:09:45 localhost nagios: ndomod: Successfully flushed 5000 queued items to data sink.
- Dec 7 14:09:45 localhost ndo2db-3x: Successfully connected to MySQL database
解决
网络监控器 Nagios 全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm
Nagios 搭建与配置详解 http://www.linuxidc.com/Linux/2013-05/84848.htm
Nginx 环境下构建 Nagios 监控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm
在 RHEL5.3 上配置基本的 Nagios 系统(使用 Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm
CentOS 5.5+Nginx+Nagios 监控端和被控端安装配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm
Ubuntu 13.10 Server 安装 Nagios Core 网络监控运用 http://www.linuxidc.com/Linux/2013-11/93047.htm
Nagios 的详细介绍:请点这里
Nagios 的下载地址:请点这里