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


  1. # tar zxf ndoutils-1.5.2.tar.gz

  2. # cd ndoutils-1.5.2

  3. # ./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

  4. # make

  5. # 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创建数据库

  1. # mysql -uroot -p

  2. mysql> create database ndo2db;

  3. mysql> GRANT all ON ndo2db.* TO ndouser@localhost IDENTIFIED BY '123456';

  4. mysql> flush privileges;

下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:

  1. # cd db

  2. # ./installdb -u ndouser -p 123456 -h localhost -d ndodb

其中各选项的意义如下:

-u用来指定导入时所用的mysql用户帐号

-p表示前面mysql用户的密码

-h表示mysql服务器地址,如果是localhost,则可以省略

-d表示目标数据库

说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。

4、复制、编辑配置文件


  1. # cd ..

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

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

在文件中添加:

  1. 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的配置文件


  1. # vi /usr/local/nagios/etc/ndo2db.cfg

  2. socket_type=tcp

  3. db_servertype=mysql

  4. db_name=ndodb

  5. db_host=localhost

  6. db_port=3306

  7. db_prefix=nagios_

  8. db_user=ndouser

  9. db_pass=123456


说明:

i) 以上"db_"开头的选项用来指定连接数据库的属性;

ii)其默认用来接收数据的方式为Unix域套接字,这里修改成了TCP套接字;同时,ndomod.cfg配置文件中指定的输出方式也应该做相应的修改;

接下来我们去编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机:


  1. # vi /usr/local/nagios/etc/ndomod.cfg

  2. output_type=tcpsocket

  3. output=127.0.0.1


6、启动ndo2db守护进程


  1. # /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(每个消息队列的最大字节限制,一个队列有多个消息)

转载于:https://blog.51cto.com/wushank/1296672

nagios 数据库管理之 NDOUtils相关推荐

  1. Solaris10下NDOUtils的安装

    Solaris10下NDOUtils的安装<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...

  2. Soalris10下NDOUtils安装

    资源准备 数据库 NDOUtils目前仅支持MySql数据库,对于PostgreSQL数据库支持还在开发中,未来可能会支持更多的.众所关注的数据库. 可以从MySql的官方网站([url]http:/ ...

  3. cacti+nagios 整合遇到的问题

    cacti安装成功了,下载一个npc插件来套用nagios,nagios要用ndoutils和cacti连接. 主要安装ndoutils出现的问题. 启动ndoutils时出错: /usr/local ...

  4. nagios+pnp4nagios+nagiosql+nodutils

    Nagios+PNP4nagios+Nagiosql+Ndoutils Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置 ...

  5. Centos 5.2安装Cacti并集成Nagios安装文档

    Centos 5.2安装Cacti并集成Nagios安装文档 本文档并非原创,而是参照网上很多文档,因为不能全部都把参照者列举出来,特在此感谢我参照文档的作者. 一.本文档所用软件说明: . 二.系统 ...

  6. Centos6.3搭建cactinagios

    为什么80%的码农都做不了架构师?>>>    在CentOS6.3上搭建nagios+cacti+ntop+pnp CentOS版本: centos-x64 2.6.32-279. ...

  7. 利用saltstack的api接口和modules实现实时监控

    前言: 其实一说起实时监控,我就有很多的感想 ~  以前也做过几个类似的全网流量监控的项目,用过websocket的模式的,还有就是redis pubsub模式,还有就是从同事的nagios获取流量数 ...

  8. 开源监控解决方案Nagios+Cacti+PNP4Nagios+NConf+NDOUtils+Nagvis(六)ndoutils安装

    前面的文章已经说过,NDOUtils必须使用2.0的版本才支持nagios4x,比较幸运的是该版本2014年就已经发布. 一.安装 #tar -axf ndoutils-2.0.0.tar.gz -C ...

  9. Nagios插件NDOUtils安装

    1.DBI的安装 # wget http://www.cpan.org/modules/by-module/DBI/DBI-1.608.tar.gz # tar zxvf DBI-1.608.tar. ...

最新文章

  1. 微调torchvision 0.3的目标检测模型
  2. 扩展存储过程在哪里_青浦区智能仓储哪里有,一件代发1.9元全国_1.9元发全国-上海东臻仓储服务...
  3. Gut: 妊娠期糖尿病与孕妇及其新生儿微生物菌群失调有关(赵方庆作品)
  4. 影像组学视频学习笔记(19)-数据标准化、归一化极简概述、Li‘s have a solution and plan.
  5. dataimagepng php_nginx无法打开 dataimage/php
  6. 在Xamarin.iOS项目中使用预设数据库
  7. 基于以太坊的分布式投票系统solidity合约代码
  8. 云服务器配置出现的问题 2
  9. Introduction of Version Control/Git, SVN
  10. php原生态三级联动_ajax php实现三级联动的方法
  11. 【C语言重点难点】数据类型、常量和变量
  12. Go 判断元素是否在切片中
  13. 为什么不能在scrollview中直接添加一个image,然后使animation.begin()??
  14. 技巧篇:常用的vba代码汇总
  15. unity 生成和识别二维码
  16. (转)如何将Sklearn数据集Bunch格式转换为Pandas数据集DataFrame?
  17. java网易云信怎么用_网易云信 SDK
  18. 【浏览器兼容性】如何隐藏微软的ie和edge浏览器密码输入框的小眼睛
  19. 搜索引擎使用技巧-更好地使用搜索
  20. 12月份参加工作的年假怎么休_可是年假没有休,请问我可以12月份休吗,12月份就不用上班了,法律有规定吗会?影响我全年的出勤奖金。...

热门文章

  1. 8种常见SQL错误用法
  2. 明日发布组队学习计划!
  3. 5种数据同分布的检测方法!
  4. 罗浩.ZJU | 如何看待 2020 届校招算法岗「爆炸」的情况?
  5. 霸榜多个CV任务,开源仅两天,微软分层ViT模型收获近2k star
  6. 目前最好用的大规模强化学习算法训练库是什么?
  7. 开源!北大研究生把《统计学习方法》书中全部算法都实现了!
  8. NumPy基础用法总结
  9. 暴力裁员?小米回应来了,网友表示没毛病!
  10. 钟南山: 疫情可能一周或10天达到高峰! 李兰娟院士:拿到疫苗株可能还要一个月!...