yzq 发表于 2019-1-16 14:03:07

使用NDOUtils将Nagios监控信息存入mysql-1

  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

[*]LDFLAGS=-L/opt/mysql/lib
[*]#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
[*]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 数据库及用户

[*]CREATE DATABASE `nagios` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
[*]GRANT select,insert,update,delete ON nagios.* TO nagiosndo@localhost>
[*]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 '/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 openshared 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
   ndomod: Successfully flushed 80 queued items to data sink.
   ndomod: Error writing to data sink! Some output may get lost...
  貌似有点问题
  参考:
  http://www.nagios.net.cn/blog/blog.php?do-showone-itemid-62-type-blog.html
  先改成输出成文件
  #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
  参考
  http://www.itnms.net/discuz/viewthread.php?tid=1357&extra=pageD1&page=1

[*]./configure--prefix=/usr/local/nagios --enable-mysql --disable-pgsqlLDFLAGS=-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

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

[*]Dec7 14:09:45 localhost nagios: ndomod: Successfully connected to data sink.10861 items lost, 5000 queued items to flush.
[*]Dec7 14:09:45 localhost nagios: ndomod: Successfully flushed 5000 queued items to data sink.
[*]Dec7 14:09:45 localhost ndo2db-3x: Successfully connected to MySQL database
  解决

页: [1]
查看完整版本: 使用NDOUtils将Nagios监控信息存入mysql-1