nagios整合cacti2011版(六)

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

1.NDOUtils安装需求:
Nagios正确安装运行,版本>=2.0安装目录:/usr/local/nagios
MySQL正确安装并运行,我用的是二进制安装包,安装目录:/usr/local/mysql


2.安装
下载安装包:http://www.nagios.org/download/
# 确认DBD-mysql包安装,如没有安装,请先安装。
# 如果DBI包没安装DBD-mysql前需要先安装DBI包
wget http://www.cpan.org/modules/by-module/DBI/DBI-1.608.tar.gz

tar xzvf DBI-1.608.tar.gz
cd DBI-1.608
perl Makefile.PL
make
make install
wget http://www.cpan.org/modules/by-module/Mysql/DBD-mysql-3.0008.tar.gz
tar xzvf DBD-mysql-3.0008.tar.gz
cd DBD-mysql-3.0008
unset LANG
perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -L/usr/lib -lz " --cflags="-I/usr/local/mysql/include/mysql"  --mysql_config=/usr/local/mysql/bin/mysql_config --testhost=127.0.0.1  --testdb=test --testuser=root --testpassword=jetsum2011
make
make install

这里再次强调下,改变了选项重新configure之前,一定要make clean 不然真的会让人郁闷好几天!!
# 做好MySQL库文件lib和include文件的连接(这点很重要)。
ln -s /usr/local/mysql/include/* /usr/include/
mkdir /usr/include/mysql
ln -s /usr/local/mysql/include/* /usr/include/mysql/
ln -s /usr/local/mysql/lib/* /usr/lib/
mkdir /usr/lib/mysql
ln -s /usr/local/mysql/lib/* /usr/lib/mysql
wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz

 (现在只能用1.4b7,最新的1.4b9与npc插件不兼容)
tar xzvf 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

# 执行完成后,注意向上看看打印出的信息,看看是否找到了MySQL的库文件和include文件。
make
cd src/
# 我的Nagios是3.0.5,所以拷贝的是ndomod-3x.o、ndo2db-3x,如果你的是2.X.x请拷贝ndomod-2x.o、ndo2db-2x
cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin
cd ../db
# 创建数据库,使用root用户,密码是baihe.com
/usr/local/mysql/bin/mysqladmin -u root -pbaihe.com create nagios

error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

cp /root/mysql-5.0.54/libmysql/.libs/libmysqlclient.so.15 /usr/local/mysql/lib/mysql/
./installdb -u root -p baihe.com -d nagios

Perhaps the DBD::mysql perl module hasn't been fully installed,

今天解决了下,只需要安装perl-DBD-MySQL即可解决此问题。
# 拷贝配置文件
cd ../config
cp ndo* /usr/local/nagios/etc/
# 修改/usr/local/nagios/etc/ndo2db.cfg文件的数据库信息。
vi /usr/local/nagios/etc/ndo2db.cfg

db_user=nagiosndo

db_pass=password123

 
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
# 启动ndo2db
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
# 查看系统日志是否有错误信息:
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 ([email protected])
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)
# 重启Nagios
service nagios restart
# 查看Nagios日志,看是否正常启动。
tail -20 /usr/local/nagios/var/nagios.log
[1227766166] ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad ([email protected])
[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)

 

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

配置方法类似于上面的单实例单数据库模式,只是在装第二个实例时省去安装DB一步,并需要修改/usr/local/nagios/etc/ndomod.cfg中的实例名。
实例名默认为instance_name=default,如果有多个实例必需修改成不同的实例名。
如:instance_name=nagios1
注意修改/usr/local/nagios/etc/ndo2db.cfg中数据库连接的相关配置。

===============================================================================

第一章安装cacti

一、概述

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。

二、Cacti的架构及工作流程

1.       Cacti的架构

2. Cacti的工作流程

===============================================================================

安装Apache、MySQL、PHP前面已经安装,这里不再重复

安装RRDtool,snmpd

建议yum安装,不然各个包的编译会把人烦死。

在yum里面加入以下源,安装RRDTOOL

/etc/yum.repos.d/CentOS-Base.repo

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=1

gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

enabled=1

yum -y install rrdtool

安装net-snmp:

yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils php-snmp

编辑本地snmpd:
vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser  default      public
      改为:com2sec notConfigUser (你想监控的那台机器的IP)      public
      2、access  notConfigGroup ""      any      noauth    exact  systemview  none

none
      改为:access  notConfigGroup ""      any      noauth    exact  all  none 

none
      3、#view all    included  .1        80
      将前面的 # 注释 去掉。
保存退出 :wq
service snmpd restart

=======================================
安装Cacti

Cacti官方网站:www.cacti.net/

# tar –zxvf cacti-0.8.6j.tar.gz

# mv –r cacti-0.8.6j /usr/loca/apache/htdocs/cacti

# vi /usr/local/apache/htdocs/cacti/include/config.php

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "cacti";

//添加cacti用户

# useradd cacti

//将rra目录的所有权给cacti用户

# chown –R cacti /usr/local/apache2/htdocs/cacti/rra

//修改cacti目录所属组

# chgrp –R cacti /usr/local/apache2/htdocs/cacti

//为cacti用户添加cron任务

# su – cacti

# crontab –e

*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1

注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。

===============================================================================

安装Cactid

CACTID 的安装需要以下支持:

o    net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)

o    mysql               

o    mysql-devel     (mysql源文件编译安装后默认支持)

o    openssl-devel  (Redhat默认安装)

# tar -zxvf cacti-cactid-0.8.6i.tar.gz

# cd cacti-cactid-0.8.6i

# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp

# make

//这时你将在此目录下看到多出了cactid、cactid.conf两个文件

# mkdir /usr/local/cactid

# cp cactid cactid.conf /usr/local/cactid

# vi  /usr/local/cactid/cactid.conf       //修改cactid配置文件

DB_Host         127.0.0.1

DB_Database     cacti

DB_User         cacti

DB_Pass         cacti

你可能感兴趣的:(整合,rrdtool,ndoutils,snmpd,安装cacti)