使用NDOUtils将Nagios监控信息存入数据库

1、NDOUtils安装需求:

Nagios正确安装运行,版本>=2.0安装目录:/usr/local/nagios

MySQL正确安装并运行,我用的是二进制安装包,安装目录:/usr/local/mysql-5.1.36

图4-1

2、安装

下载地址:http://www.nagios.org/download/

进入addons查找DBI和DBD下载地址

如果嫌麻烦可直接进入DBI官网http://dbi.perl.org/下载

确认DBD-mysql包安装,如没有安装,请先安装。

2.1、安装DBD-mysql前需要先安装DBI包

DBI最新下载地址:http://search.cpan.org/~timb/DBI/

[codesyntax lang="text"]

cd /usr/local/src/tarbag/

wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.618.tar.gz

tar zxvf DBI-1.618.tar.gz -C ../software/

cd ../software/DBI-1.618/

perl Makefile.PL

make

make install

[/codesyntax]

2.2、安装DBD-mysql包

DBD最新下载地址:http://search.cpan.org/dist/DBD-mysql/

[codesyntax lang="text"]

cd /usr/local/src/tarbag/

wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.020.tar.gz

tar zxvf DBD-mysql-4.020.tar.gz -C ../software/

cd ../software/DBD-mysql-4.020/

unset LANG

perl Makefile.PL --libs="-L/usr/local/mysql-5.1.36/lib/mysql -lmysqlclient -L/usr/lib -lz " --cflags="-I/usr/local/mysql-5.1.36/include/mysql" --testhost=127.0.0.1 --mysql_config=/usr/local/mysql-5.1.36/bin/mysql_config --testuser=root --testpassword=123456

make

make install

[/codesyntax]

排错

安装DBD-mysql的时候可能会出现无法make的错误,并提示make: *** [dbdimp.o] Error 1

解决方法:一般碰到这种情况都是编译的时候链接库问题导致的,所以需要将以上几个mysql的路径确切的对应上,象我出现如上问题就是由于--cflags参数未指定到真正包含链接库文件的目录导致无法正常make

原参数:--cflags="-I/usr/local/mysql-5.1.36/include/"

现参数:--cflags="-I/usr/local/mysql-5.1.36/include/mysql"

只要对原理清楚了,这些问题都是细心的问题,本人的一些小经验,希望能帮助到大家。

做好MySQL库文件lib和include文件的软链接,对接下来的ndo安装很有用。

[codesyntax lang="text"]

ln -s /usr/local/mysql-5.1.36/include/mysql/* /usr/include/

mkdir /usr/include/mysql

ln -s /usr/local/mysql-5.1.36/include/mysql/* /usr/include/mysql/

ln -s /usr/local/mysql-5.1.36/lib/* /usr/lib/

mkdir /usr/lib/mysql

ln -s /usr/local/mysql-5.1.36/lib/* /usr/lib/mysql

[/codesyntax]

2.3、安装ndoutils

ndoutils下载链接:http://exchange.nagios.org/directory/Addons/Database-Backends/NDOUtils/details

[codesyntax lang="text"]

cd /usr/local/src/tarbag/

wget http://downloads.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.5/ndoutils-1-5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnagios%2Ffiles%2Fndoutils-1.x%2Fndoutils-1.5%2F&ts=1331697712&use_mirror=nchc

tar zxvf ndoutils-1-5.tar.gz -C ../software/

cd ../software/ndoutils-1-5/

./configure --enable-mysql

# 执行完成后,注意向上看看打印出的信息,看看是否找到了MySQL的库文件和include文件。

make

make install

[/codesyntax]

# 我的Nagios是Nagios Core 3.3.1,安装完提示如下,所以如果是Nagios 2.x,执行make install-2x即可

[codesyntax lang="text"]

Hint: NDOUtils Installation against Nagios v3.x

completed.

If you want to install NDOUtils for Nagios v2.x

please type 'make install-2x

Next step should be the database initialization/upgrade

cd into the db/ directory and either:

./installdb (for a new installation) or:

./upgradedb (for an existing one)

make[1]: Leaving directory `/usr/local/src/software/ndoutils-1-5/src'

Main NDOUtils components installed

[/codesyntax]

拷贝相关类库到/usr/local/nagios/bin下

[codesyntax lang="text"]

cd src/

cp ndomod-3x.o ndo2db-3x /usr/local/nagios/bin/

[/codesyntax]

[codesyntax lang="text"]

cd ../db

# 创建数据库,使用root用户,密码是123456

mysqladmin -uroot -p123456 create nagios

chmod +x installdb

./installdb -uroot -p123456 -d nagios

[/codesyntax]

排错

在初始化数据库的时候会出现如下报错

[codesyntax lang="text"]

install_driver(mysql) failed: Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.16: cannot open shared object file: No such file or directory at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.

at (eval 5) line 3

Compilation failed in require at (eval 5) line 3.

Perhaps a required shared library or dll isn't installed where expected

at ./installdb line 41

[/codesyntax]

根据错误提示,发现可能是动态库libmysqlclient.so.16的问题,google了一下,在斩月朋友的文章中找到了解决方法http://hi.baidu.com/naruto6006/blog/item/e5ad30254bec1938c8955912.html

[codesyntax lang="text"]

ln -s /usr/local/mysql-5.1.36/lib/mysql/libmysqlclient.so.16 /usr/lib

ln -s /usr/local/mysql-5.1.36/lib/mysql/libmysqlclient.so.16 /usr/lib64

[/codesyntax]

出现如下提示

[codesyntax lang="text"]

DBD::mysql::db do failed: Table 'nagios.nagios_dbversion' doesn't exist at ./installdb line 51.

** Creating tables for version 1.4b7

Using mysql.sql for installation...

** Updating table nagios_dbversion

Done!

DBD::mysql::db do failed: Table 'nagios.nagios_dbversion' doesn't exist at ./installdb line 51(这个错误可以忽略…)

[/codesyntax]

2.4、相关配置

# 拷贝配置文件

[codesyntax lang="text"]

cd ../config

cp ndo* /usr/local/nagios/etc/

cd /usr/local/nagios/etc/

cp ndo2db.cfg-sample ndo2db.cfg

cp ndomod.cfg-sample ndomod.cfg

[/codesyntax]

# 修改/usr/local/nagios/etc/ndo2db.cfg文件的数据库信息。

[codesyntax lang="text"]

cd /usr/local/nagios/etc/

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

# 主要改以下四条

db_host=localhost

db_name=nagios

db_user=nagios

db_pass=nagios

[/codesyntax]

排错

如果启动时碰到如下报错一般是由于数据库权限问题导致的

[codesyntax lang="text"]

[1331707820] ndomod: Still unable to reconnect to data sink. 0 items lost, 1367 queued items to flush.

[/codesyntax]

[codesyntax lang="text"]

vi nagios.cfg

# 复制下面内容粘贴到/usr/local/nagios/etc/nagios.cfg配置文件的#broker_module=...下面。

# 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

# 修改/usr/local/nagios/etc/nagios.cfg配置文件下面参数的值为-1(一般默认如此)。

event_broker_options=-1

[/codesyntax]

[codesyntax lang="text"]

rm -rf ndo2db.cfg-sample* ndomod.cfg-sample*

chown -R nagios\: /usr/local/nagios

[/codesyntax]

# 启动ndo2db

[codesyntax lang="text"]

/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

[/codesyntax]

将启动命令加入到/etc/rc.local中去

# 查看系统日志是否有错误信息:

[codesyntax lang="text"]

tail -30 /var/log/messages

Nov 27 14:09:26 tech nagios: ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (nagios@nagios.org)

Nov 27 14:09:26 tech nagios: ndomod: Successfully connected to data sink. 0 queued items to flush.

Nov 27 14:09:26 tech nagios: Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.

Nov 27 14:09:26 tech nagios: Finished daemonizing... (New PID=18848)

[/codesyntax]

# 重启Nagios

[codesyntax lang="text"]

service nagios restart

[/codesyntax]

# 查看Nagios日志,看是否正常启动。

[codesyntax lang="text"]

tail -20 /usr/local/nagios/var/nagios.log

[1227766166] ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (nagios@nagios.org)

[1227766166] ndomod: Successfully connected to data sink. 0 queued items to flush.

[1227766166] Event broker module '/usr/local/nagios/bin/ndomod-3x.o' initialized successfully.

[1227766166] Finished daemonizing... (New PID=18848)

[/codesyntax]

3、如何用NDOUtils将多个Nagios实例的性能数据写入一个数据库?

图2

配置方法类似于上面的单实例单数据库模式,只是在装第二个实例时省去安装DB一步,并需要修改/usr/local/nagios/etc/ndomod.cfg中的实例名。

实例名默认为instance_name=default,如果有多个实例必需修改成不同的实例名。

如:instance_name=nagios1

注意修改/usr/local/nagios/etc/ndo2db.cfg中数据库连接的相关配置。

nagios存入 mysql数据说明与提取_4.使用NDOUtils将Nagios监控信息存入数据库相关推荐

  1. nagios mysql入库_使用NDOUtils将Nagios监控信息存入Mysql

    官方的一些简介: NDOUtilsest un addon pour. Il permet de stocker dans une base de donnéesou dans un fichier  ...

  2. python脚本迁移数据库_Python迁移MySQL数据到MongoDB脚本

    MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...

  3. [mysql]数据迁移之data目录复制方法

    mysql数据迁移有多种方式,最常见的就是先把数据库导出,然后导入新的数据库.拷贝数据目录data是另外一种方式. 尤其是当数据库启动不了,或者大型数据库迁移的时候,可以考虑这个方式. 场景:从老的m ...

  4. 【爬虫】爬取中国银行货币信息存入excel并生成折线图

    1.爬取网站table 中的信息 存入二维数组 2.把二维数组中的信息存入到excel表中 3.读取数组中的信息生成折线图 代码如下: #demo1 import urllib.request fro ...

  5. mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

    基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...

  6. yspider爬取数据导入mysql_爬虫实战四、PyCharm+Scrapy爬取数据并存入MySQL

    一.创建爬虫项目 注意:不能直接使用PyCharm创建Scrapy项目,所以需要在爬虫实战三.PyCharm搭建Scrapy开发调试环境的基础(PyCharm配置完Scrapy)之上,选中mySpid ...

  7. python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法

    Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...

  8. django存入mysql数据库_django如何存数据到一个mysql数据表里面

    让我们聊聊这个话题, django如何存数据至mysql数据表里面,你会用什么方法?正常情况下,我们form逻辑处理后,直接form.save(),是,这个方法没毛病:但有没有其他的方法呢?假如我们有 ...

  9. python爬虫开发数据库设计入门经典_Python3实现的爬虫爬取数据并存入mysql数据库操作示例...

    本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作.分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单.罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chr ...

最新文章

  1. fushioncharts破解
  2. python获取按键状态_谁在用 python 弹奏一曲菊花台
  3. 400 错误,因为url编码问题
  4. 如何选择漏电保护器规格型号_施工现场三级电箱如何配置?图示详解,清晰明了!...
  5. Oracle具有开放性吗,Oracle数据库的特点与工作原理
  6. 熟悉linux运行环境,实验一 熟悉Ubuntu环境
  7. 【刷题】BZOJ 3653 谈笑风生
  8. HTTP的请求报文响应报文
  9. Python计算数组的n位全排列(permutations的使用)
  10. sqlmap能测试java么_ibatis框架如何测试?ibatis入门解析
  11. ES6入门---变量的解构赋值
  12. js正则表达式 读取html代码中的 json 值,js读取json文件片段中的数据实例
  13. ukey网络连接异常_Ukey的各种操作,你知道吗?
  14. 主从表mysql外键_主从表主键外键
  15. oracle11g基于bootstrap$中的ind$表损坏系列五
  16. 腾讯bugly接入详解
  17. 2)美国佬与才女薛涛的共同点
  18. ROS暑期学校与ROSCon 2018
  19. 项目成功和失败的几大因素
  20. EasyDarwin开源流媒体服务器内存管理优化

热门文章

  1. 大橡塑属于机器人板块吗_大盘持续上涨,明日该如何应对
  2. 蓝桥杯十一届python 跑步锻炼
  3. iOS 邓白氏编码的申请
  4. pulsar版本升级
  5. MATLAB Code of Artificial Potencial Field Method for Robot Path Planning 人工势场法 局部极小问题
  6. linux 内核 - ioctl 函数详解
  7. 海康监控摄像机接入NTV GBS GB28181平台实现远程调取监控视频
  8. 机器学习之大规模数据处理
  9. quill-editor 富文本编辑器 上传图片
  10. atop用法_atop学习