cacti和nagios整合
2014-04-01 10:10
435 查看
主要步骤:
1、安装ndoutils,把nagios数据写到mysql数据库。
2、在cacti安装npc插件,查看nagios的数据。
一、安装
1、安装ndoutils的依赖包
(1)安装DBI
先安装ExtUtils-MakeMaker和Test-Simple,否则会报错
wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.616.tar.gz
tar -zxvf DBI-1.616.tar.gz
cd DBI-1.616
perl Makefile.PL
make && make install
(2)安装DBD-mysql
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz
#tar xvf DBD-mysql-4.018.tar.gz -C /usr/local/soft
#cd DBD-mysql-4.018
编译安装的mysql
#perl Makefile.PL --mysql_config=/usr/local/mysql/bin --with-mysql=/usr/local/mysql --mysql_config=/usr/local/mysql/bin/mysql_config
yum安装的mysql
#perl Makefile.PL --mysql_config=/usr/bin/ --with-mysql --mysql_config=/usr/bin/mysql_config
#make && make install
2.安装ndoutils
ndoutils作用,把nagios的数据写到mysql,集成nagios到cacti的关健的一部分。
(1)下载编译
wget http://nchc.dl.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz
tar -zxvf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9
编译安装的mysql
./configure --prefix=/usr/local/ndoutils --enable-mysql --disable-pgsql --with-mysql-lib=/usr/local/mysql/lib --with-mysql=/usr/local/mysql
yum安装的mysql
./configure --prefix=/usr/local/ndoutils --enable-mysql --with-mysql-lib=/usr/lib --with-mysql-inc=/usr/include --disable-pgsql
make提示找不到mysql.h:
cp include/config.h include/config.h.bak
vi include/config.h
将
#include <mysql.h>
#include <errmsg.h>
改为
#include </usr/local/mysql/include/mysql.h>
#include </usr/local/mysql/include/errmsg.h>
make (这里不需要make install)
二、配置
(1)复制执行及配置文件
#cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
#cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
#cd src
#cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin
(2)插入数据表
#./db/installdb -u cactiu -pcactip -d cacti
(3)配置nagios主文件
#vim /usr/local/nagios/etc/nagios.cfg
修改如下
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
process_performance_data=1
(4)配置ndocmd.cfg文件
#vim /usr/local/nagios/etc/ndomod.cfg
修改如下
output_type=tcpsocket //这里只需要这两个output就行,多了会报错连不上数据库
output=127.0.0.1
(5)配置ndo2db.cfg文件
#vim /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
db_name=cacti //cacti数据库名
db_prefix=npc_ //写入的表名称
db_user=cactiu //可操作cacti数据库的用户名
db_pass=cactip //可操作cacti数据库的用户密码
debug_level=1
(6)启动ndo2db
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
三、配置cacti
1.安装cacti插件npc
wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz
tar -zxvf npc-2.0.4.tar.gz
mv npc /home/htdocs/cacti/plugins
登录cacti后台,在插件管理中心安装并启用NPC。
Plugin Management面板,install npc,enable npc。
Settings-npc选项卡下面:
Nagios Command File Path: /usr/local/nagios/var/rw/nagios.cmd
Nagios URL: 自己的nagios访问url
保存后完成。
至此,ndoutils会自动把nagios的数据写到mysql里cacti库下的npc_*表。
四、安装php-json
如果npc页面空白,有可能是php不支持npc造成的,安装npc扩展
# tar xf php-json-ext-1.2.1.tar.gz
# cd php-json-ext-1.2.1
# phpize
# vim /etc/php.d/json.ini //没有就新建
加入
extension=json.so
五、修改表结构
npc插件正常显示后,Nagiosstatus很有可能是off,最多的就是这两种情况造成的,一是配置文件出错,没连上数据库,nagios数据不能插入数据库,二是数据表出错,插入数据出错.先查看系统日志,
1.如果报错是没连上数据库,而且cacti库的npc表里没任何数据,就检查ndo2db.cfg和ndomod.cfg,确保配置文件无误.
2.如果连上数据库,数据表有数据,但是日志报以下错误,那就是数据表结构问题,需要修改数据表结构
tail -100 /var/log/messages
localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'fieldlist''
登录数据库,添加缺失的对应字段
ALTER TABLE npc_eventhandlers ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_hostchecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_hoststatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_notifications ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_servicechecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_servicestatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_statehistory ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_systemcommands ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
1、安装ndoutils,把nagios数据写到mysql数据库。
2、在cacti安装npc插件,查看nagios的数据。
一、安装
1、安装ndoutils的依赖包
(1)安装DBI
先安装ExtUtils-MakeMaker和Test-Simple,否则会报错
wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.616.tar.gz
tar -zxvf DBI-1.616.tar.gz
cd DBI-1.616
perl Makefile.PL
make && make install
(2)安装DBD-mysql
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz
#tar xvf DBD-mysql-4.018.tar.gz -C /usr/local/soft
#cd DBD-mysql-4.018
编译安装的mysql
#perl Makefile.PL --mysql_config=/usr/local/mysql/bin --with-mysql=/usr/local/mysql --mysql_config=/usr/local/mysql/bin/mysql_config
yum安装的mysql
#perl Makefile.PL --mysql_config=/usr/bin/ --with-mysql --mysql_config=/usr/bin/mysql_config
#make && make install
2.安装ndoutils
ndoutils作用,把nagios的数据写到mysql,集成nagios到cacti的关健的一部分。
(1)下载编译
wget http://nchc.dl.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz
tar -zxvf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9
编译安装的mysql
./configure --prefix=/usr/local/ndoutils --enable-mysql --disable-pgsql --with-mysql-lib=/usr/local/mysql/lib --with-mysql=/usr/local/mysql
yum安装的mysql
./configure --prefix=/usr/local/ndoutils --enable-mysql --with-mysql-lib=/usr/lib --with-mysql-inc=/usr/include --disable-pgsql
make提示找不到mysql.h:
cp include/config.h include/config.h.bak
vi include/config.h
将
#include <mysql.h>
#include <errmsg.h>
改为
#include </usr/local/mysql/include/mysql.h>
#include </usr/local/mysql/include/errmsg.h>
make (这里不需要make install)
二、配置
(1)复制执行及配置文件
#cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
#cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
#cd src
#cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin
(2)插入数据表
#./db/installdb -u cactiu -pcactip -d cacti
(3)配置nagios主文件
#vim /usr/local/nagios/etc/nagios.cfg
修改如下
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
process_performance_data=1
(4)配置ndocmd.cfg文件
#vim /usr/local/nagios/etc/ndomod.cfg
修改如下
output_type=tcpsocket //这里只需要这两个output就行,多了会报错连不上数据库
output=127.0.0.1
(5)配置ndo2db.cfg文件
#vim /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
db_name=cacti //cacti数据库名
db_prefix=npc_ //写入的表名称
db_user=cactiu //可操作cacti数据库的用户名
db_pass=cactip //可操作cacti数据库的用户密码
debug_level=1
(6)启动ndo2db
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
三、配置cacti
1.安装cacti插件npc
wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz
tar -zxvf npc-2.0.4.tar.gz
mv npc /home/htdocs/cacti/plugins
登录cacti后台,在插件管理中心安装并启用NPC。
Plugin Management面板,install npc,enable npc。
Settings-npc选项卡下面:
Nagios Command File Path: /usr/local/nagios/var/rw/nagios.cmd
Nagios URL: 自己的nagios访问url
保存后完成。
至此,ndoutils会自动把nagios的数据写到mysql里cacti库下的npc_*表。
四、安装php-json
如果npc页面空白,有可能是php不支持npc造成的,安装npc扩展
# tar xf php-json-ext-1.2.1.tar.gz
# cd php-json-ext-1.2.1
# phpize
# vim /etc/php.d/json.ini //没有就新建
加入
extension=json.so
五、修改表结构
npc插件正常显示后,Nagiosstatus很有可能是off,最多的就是这两种情况造成的,一是配置文件出错,没连上数据库,nagios数据不能插入数据库,二是数据表出错,插入数据出错.先查看系统日志,
1.如果报错是没连上数据库,而且cacti库的npc表里没任何数据,就检查ndo2db.cfg和ndomod.cfg,确保配置文件无误.
2.如果连上数据库,数据表有数据,但是日志报以下错误,那就是数据表结构问题,需要修改数据表结构
tail -100 /var/log/messages
localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'fieldlist''
登录数据库,添加缺失的对应字段
ALTER TABLE npc_eventhandlers ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_hostchecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_hoststatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_notifications ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_servicechecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_servicestatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_statehistory ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
ALTER TABLE npc_systemcommands ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
相关文章推荐
- 常见文件操作 - iOS开发
- 那些年一起用过的iOS开发利器[4月2号更新]
- IOS后台运行
- ios开发图片格式的选择:png和jpg
- 【IOS开发】创建XML文件
- iOS开发中一些常见的并行处理
- ios何时使用self.
- 沙盒(二)
- ios何时使用self.
- iOS 开发问题集锦
- iOS 开发问题集锦
- IOS常见的错误大全
- IOS内存管理
- 提升移动应用的“心理响应速度”
- 现有IOS设备唯一标示符的方案比较
- ios-Frame和bounds的区别
- 学习iOS开发的第19天
- NSNotification 通知传值
- Codeforces Round #141 (Div. 2)
- 简单说说iOS的图形和动画