设为首页 收藏本站
查看: 1129|回复: 0

nagios 数据库管理之 NDOUtils

[复制链接]

尚未签到

发表于 2019-1-14 12:13:09 | 显示全部楼层 |阅读模式
  1、NDOUtils简介
   NDOUTILS ADDON主要用来将Nagios的配置信息和event产生的数据存入数据库(目前的beta版支持mysql和pgsql,稳定版只支持mysql),以方便实现数据的快速检索和处理,并且为其它通过web接口程序来管理这些数据提供了保障。
  在一个大型应用中,可能存在多个独立的或分布式布置的Nagios服务器,这种环境中的每个Nagios服务器通常被称为一个Nagios实例。在多Nagios实例的环境中,既可以把所有实例的数据存入到一个数据库,也可以将各实例的数据分别存储。
  在只有一个Nagios实例环境中,其实例名称通常为“default”;而在多实例的环境中,则需要为此些Nagios实例各自命名。
  NDO Utils主要由以下四个部分组成:
   1) NDOMOD Event Broker Module(NDOMOD.O):用来输出Nagios进程产生的数据(data和logic),其前提是Nagios在编译时开启了Event broker的功能。同时,NDOMOD模块还可以导出Nagios配置有关的信息(包括Nagios监控进程运行时环境产生的动态数据)至文件、Unix域套接字或者TCP套接字。NDO2DB将通过前面的这三种方式获得Nagios的有关数据。
   2) NDO2DB:用来接收由NDOMOD和LOG2NDO组件输出的信息并将之存储在数据库中。启动时,NDO2DB进程将创建一个TCP套接字或Unix域套接字以监听客户端(输出端)的连接请求。目前仅支持MySQL数据库。
  多个客户端可以同时向一个NDO2DB守护进程输出数据,此时的NDO2DB将为每一个连接进来的客户端(Nagios实例)建立一个连接进程,以实现每个客户端数据的独立存储、检索和处理。
   3) LOG2NDO:用来将Nagios的历史日志通过NDO2DB进程输出至数据库。LOG2NDO与NDO2DB进程通信的方法依然是标准文件、Unix域套接字或者TCP套接字三种。
   4) FILE2SOCK:从标准文件或标准输入读入数据,并将之输出至Unix域套接字或TCP套接字。当NDOMOD或LOG2NDO将数据输出至标准文件时,此工具则可用来将这些标准文件中数据读出并发送给NDO2DB进程监听的TCP套接字或Unix域套接字。


  2、安装NDOUtils
  


  •   # tar zxf ndoutils-1.5.2.tar.gz
  •   # cd ndoutils-1.5.2
  •   # ./configure --prefix=/usr/local/nagios LDFLAGS=-L/usr/lib64 --with-mysql-lib=/usr/lib64/mysql
       --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
  •   # make
  •   # make install

    或者# cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin
  以上复制的文件中前两项是版本相关的,即如果您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.o和ndo2db-2x的两个文件。后两项是通用文件,无论哪个版本都需要复制。
  

  3、为NDOUtils创建数据库

  •   # mysql -uroot -p
  •   mysql> create database ndo2db;
  •   mysql> GRANT all ON ndo2db.* TO ndouser@localhost IDENTIFIED BY '123456';
  •   mysql> flush privileges;
  下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:

  •   # cd db
  •   # ./installdb -u ndouser -p 123456 -h localhost -d ndodb
  其中各选项的意义如下:
  -u用来指定导入时所用的mysql用户帐号
  -p表示前面mysql用户的密码
  -h表示mysql服务器地址,如果是localhost,则可以省略
  -d表示目标数据库
  说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。
  

  4、复制、编辑配置文件
  


  •   # cd ..
  •   # cp -v config/{ndo2db.cfg,ndomod.cfg} /usr/local/nagios/etc
  •   # vi /usr/local/nagios/etc/nagios.cfg
      

  在文件中添加:

  •   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
  

  5、编辑ndo2db守护进程和ndomod的配置文件
  


  •   # vi /usr/local/nagios/etc/ndo2db.cfg
  •   socket_type=tcp
  •   db_servertype=mysql
  •   db_name=ndodb
  •   db_host=localhost
  •   db_port=3306
  •   db_prefix=nagios_
  •   db_user=ndouser
  •   db_pass=123456
  说明:
  i) 以上"db_"开头的选项用来指定连接数据库的属性;
  ii)其默认用来接收数据的方式为Unix域套接字,这里修改成了TCP套接字;同时,ndomod.cfg配置文件中指定的输出方式也应该做相应的修改;
  接下来我们去编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机:

  •   # vi /usr/local/nagios/etc/ndomod.cfg
  •   output_type=tcpsocket
  •   output=127.0.0.1
  

  6、启动ndo2db守护进程
  


  •   # /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
   2. # echo '/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios /etc/ndo2db.cfg' >> /etc/rc.local
  

  7、 重启动nagios
  # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# service nagios restart
检查安装
tail -20 /usr/local/nagios/var/nagios.log
  

  8、 遇到问题:
  
1.执行 # /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
  
2.#ndo2db数据不能导入到数据库
原因:编译时没有LDFLAGS=-L/opt/mysql/lib
解决:重新编译ndoutils并加上 LDFLAGS=-L/opt/mysql/lib
# ./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql LDFLAGS=-L/usr/lib64 --with-mysql-inc=/usr/local/mysql/include/mysql --with-mysql-lib=/usr/local/mysql/lib/mysql
# make
#再执行一下安装过程后,通过
  

  3.若出现提示信息“Support for the specified database server is either not yet supported, or was not found on your system“ 应该是没找到mysql.h等头文件导致的,请确保所必须的库已安装,并在./configure时指定头文件目录!
  解决方法:确保vim /etc/ld.so.conf文件内容,然后运行ldconfig
  include ld.so.conf.d/*.conf
  /usr/include/mysql
   重新./configure及make编译,即可。
  

   查看日志
[root@server2 ~]# tail -f /usr/local/nagios/var/nagios.log
[1264575689] Caught SIGTERM, shutting down...
[1264575689] Successfully shutdown... (PID=17653)
[1264575691] Nagios 3.2.0 starting... (PID=19072)
[1264575691] Local time is Wed Jan 27 02:01:31 EST 2010
[1264575691] LOG VERSION: 2.0
[1264575691] ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (nagios@nagios.org)
[1264575691] ndomod: Successfully connected to data sink. 0 queued items to flush.
[1264575691] Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.
[1264575691] Finished daemonizing... (New PID=19075)

  

  4.报错如下提示:

改了下系统内核参数如下,就正常了。
#test@ vim /etc/sysctl.conf
  
kernel.msgmax = 131072000

kernel.msgmnb = 131072000

kernel.msgmni = 65536000


* kernel.msgmax  s the maximum size of a single message in amessage queue (每个消息的最大size)
* kernel.msgmni   is the maximum number of messagesallowed in anyone message queue (整个系统的最大数量的消息队列)
* kernel.msgmnb  is the total number of bytes allow in all messages in any onemessage queue(每个消息队列的最大字节限制,一个队列有多个消息)

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663181-1-1.html 上篇帖子: 1 nagios 服务器端软件安装 下篇帖子: liunx服务使用( 源码包 Nagios 监控软件)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表