前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用NDOUtils将Nagios监控信息存入MySQL

使用NDOUtils将Nagios监控信息存入MySQL

作者头像
星哥玩云
发布2022-07-04 12:43:13
1.1K0
发布2022-07-04 12:43:13
举报
文章被收录于专栏:开源部署

使用NDOUtils将Nagios监控信息存入MySQL

1.NDOUtils安装需求

nagios mysql cpan DBI #非必需 cpan DBD::mysql #非必需

2.关联mysql头文件和库 不做关联可能在config或make时出错

  1. ln -s /opt/mysql/include/* /usr/include/
  2. ln -s /opt/mysql/lib/* /usr/lib/
  3. echo '/usr/lib' >> /etc/ld.so.conf
  4. ldconfig -v

3.安装ndoutils

http://sourceforge.net/project/showfiles.php?group_id=26589

  1. wget -c http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
  2. tar zxvf ndoutils-1.4b7.tar.gz
  3. cd ndoutils-1.4b7
  4. ./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参数

  1. --with-mysql-inc=/opt/mysql/include --with-mysql-lib=/opt/mysql/lib
  2. #config成功
  3. #make出错

*config时使用以下mysql参数

  1. --with-mysql-inc=/opt/mysql/include/mysql --with-mysql-lib=/opt/mysql/lib/mysql
  2. #config出错
  3. #make成功并生成文件
  4. #启动ndo2db会出错

*没有LDFLAGS=-L/opt/mysql/lib

  1. <del datetime="2009-05-27T06:58:24+00:00">LDFLAGS=-L/opt/mysql/lib </del>
  2. #ndo2db不能导入到数据库

相关错误

  1. In file included from io.c:10:
  2. ../include/config.h:261:25: mysql/mysql.h: 没有那个文件或目录
  3. ../include/config.h:262:26: mysql/errmsg.h: 没有那个文件或目录
  4. make[1]: *** [io.o] 错误 1
  5. checking for mysql/mysql.h... no
  6. *** MySQL include file could not be located... **********************
  7. You chose to compile NDBXT with MySQL support, but I was unable to
  8. locate on your system. If the include file is
  9. installed, use the --with-mysql-inc argument to specify the location
  10. of the MySQL include file.
  11. make
  12. 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

  1. cp ./src/ndomod-3x.o /usr/local/nagios/bin
  2. cp ./src/ndo2db-3x /usr/local/nagios/bin
  3. cp ./src/log2ndo /usr/local/nagios/bin
  4. cp ./src/file2sock /usr/local/nagios/bin
  5. chown nagios:nagios /usr/local/nagios/bin/*

5.拷贝配置文件

  1. cp ./config/ndo* /usr/local/nagios/etc/
  2. chown nagios:nagios /usr/local/nagios/etc/*

6.创建ndo的mysql 数据库及用户

  1. CREATEDATABASE`nagios`DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;
  2. GRANT select,insert,update,deleteONnagios.* TOnagiosndo@localhostidentifiedby'password123';
  3. FLUSH PRIVILEGES ;

7.导入数据库结构 使用db/installdb脚本 需要以下支持

cpan DBI cpan DBD::mysql

  1. cd ./db/
  2. ./installdb -u root -p 123456 -h localhost -d nagios

用命令导入(其实和用脚本是一回事,也可以用phpmyadmin来导入)

  1. /opt/mysql/bin/mysql -u root -p -D nagios -h localhost < ./db/mysql.sql

输入密码

成功导入59张表

8.修改配置文件 vi /usr/local/nagios/etc/ndo2db.cfg

  1. db_user=nagiosndo
  2. db_pass=password123

vi /usr/local/nagios/etc/nagios.cfg

  1. # 修改下面参数的值为-1(一般默认如此)。
  2. event_broker_options=-1
  3. # 复制下面内容粘贴到#broker_module=...下面。
  4. # 注意broker_module= 和config_file是在一行上
  5. # Uncomment the line below if you're running Nagios 3.x
  6. broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

9.启动ndo2db

  1. /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
  2. echo 'rm -f /usr/local/nagios/var/ndo.sock' >> /etc/rc.local
  3. echo '/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg' >> /etc/rc.local
  4. #开机启动
  5. Support for the specified database server is either not yet supported, or was not found on your system.
  6. /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

  1. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  2. service nagios restart

一般情况下到此已完成安装,可以去数据库里看下记录有无增加

11.检查安装是否正确

  1. 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

  1. instance_name=default
  2. #output_type=tcpsocket
  3. #output=127.0.0.1
  4. output_type=file
  5. output=/usr/local/nagios/var/ndo.dat
  6. service nagios restart

看看有没有/usr/local/nagios/var/ndo.dat文件,ok,发现文件,说明第一步可以生成文件 查看文件内容

  1. cd /usr/local/nagios/var/
  2. head -30 ndo.dat
  3. HELLO
  4. PROTOCOL: 2
  5. AGENT: NDOMOD
  6. AGENTVERSION: 1.4b7
  7. STARTTIME: 1243393299
  8. DISPOSITION: REALTIME
  9. CONNECTION: FILE
  10. CONNECTTYPE: INITIAL
  11. INSTANCENAME: default
  12. STARTDATADUMP
  13. 202:
  14. 1=300
  15. 2=0
  16. 3=0
  17. 4=1243393292.450675
  18. 73=1243393292
  19. 74=262144
  20. 72=ndomod: Error writing to data sink!  Some output may get lost...
  21. 999
  22. 201:
  23. 1=205
  24. 2=0

使用file2sock尝试socket方式

  1. ../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

  1. #socket_type=unix
  2. socket_type=tcp

重新载入ndo2db

  1. ps aux|grep ndo2db
  2. kill $pid
  3. /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
  4. ../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

  1. ./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
  2. make
  3. #再执行一下安装过程后,通过

================= 200912-07 更新

tail /var/log/messages

  1. Dec  7 14:09:13 localhost nagios: ndomod: Still unable to connect to data sink.  10547 items lost, 5000 queued items to flush.
  2. 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

  1. 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

  1. Dec  7 14:09:45 localhost nagios: ndomod: Successfully connected to data sink.  10861 items lost, 5000 queued items to flush.
  2. Dec  7 14:09:45 localhost nagios: ndomod: Successfully flushed 5000 queued items to data sink.
  3. Dec  7 14:09:45 localhost ndo2db-3x: Successfully connected to MySQL database

解决

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档