前沿:cacti和nagios监控各有各的优点,要是能整合到一起就非常完美了。
我们可以通过一些脚本来时它们有联系:
nagios通过使用ndoutils包可以把nagios的监控内容存放到mysql中去
cacti通过使用npc插件获取mysql的数据,并且显示[安装npc时要先安装插件框架:cacti-plugin-0.8.7f-PA]
=================================安装步骤===============================
这里的前提是安装好了cacti和nagios的。要是没有安装好就可以看看nagios安装.txt和cacti安装.txt文件。 这里注意了:cacti的选择 不要选择最新版本,cacti-0.8.7g的要不然在使用npc是会不显示的,我是使用的是cacti-0.8.7.e和cacti-plugin-0.8.7f-PA和npc2.0.4.tar
==============================================先对nagios进行处理:安装ndoutils=============================================
安装前的依赖包:
nagios
mysql
cpan DBI #非必需 (安装DBI和DBD也有文件夹参考)
cpan DBD::mysql #非必需
2.关联mysql头文件和库(这个步骤可以先不要去做,也许mysql的安装时安装默认安装路径的,等后面报错是,看看是不是少了mysql的包时在来做)
ln -s /opt/mysql/include/* /usr/include/
ln -s /opt/mysql/lib/* /usr/lib/
echo '/usr/lib' >> /etc/ld.so.conf
ldconfig -v [这个步骤是动态加载库 http://blog.chinaunix.net/uid-25316333-id-3080921.html]
问题:在ln -s /opt/mysql/include/* /usr/include/ 报 ln -s /usr/include/mysql已经有了,你可以把/usr/include/mysql 修改为保存下 mv /usr/include/mysql /usr/include/mysql_bak
ln -s /opt/mysql/lib/* /usr/lib/ 也一样
3.安装ndoutils
$wget -c http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
$tar zxvf 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
(这里nagios是安装在/usr/local/nagios目录下的)
4.拷贝文件
# 我的Nagios是3.0.6,所以拷贝的是ndomod-3x.o、ndo2db-3x,如果你的是2.X.x请拷贝ndomod-2x.o、ndo2db-2x
$ cd src
$cp ndomod-3x.o ndo2db-3x log2ndo file2sock /opt/nagios/bin/ (根据我的nagios 版本号的不同来确定是拷ndomod-3x.o、ndo2db-3x)
$chown -R nagios:nagios /opt/nagios/bin/*
$cd ..
$cd config
$ cp ndo* /opt/nagios/etc/
5:创建ndo的mysql 数据库及用户(这不在前面应该都做了,可以省略)
CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT select,insert,update,delete ON cacti.* TO nagiosndo@localhost identified by 'password123';
FLUSH PRIVILEGES ;
6:配置文件的修改:
$cp /opt/nagios/ndomod.cfg-sample /opt/nagios/etc/ndomod.cfg
$cp /opt/nagios/ndo2db.cfg-sample /opt/nagios/etc/ndo2db.cfg
6.1修改ndo2db.cfg文件
vi /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti2011
debug_level=1
6.2修改nagios的主文件
vi /usr/local/nagios/etc/nagios.cfg
event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
process_performance_data=1
6.3修改ndomod.cfg
vi /usr/local/nagios/etc/ndomod.cfg (修改以tcp协议传输)
output_type=tcpsocket
output=127.0.0.1
7:导入数据库中的表的结构:
方法一:
必须要有
cpan DBI
cpan DBD::mysql 支持
在解压文件目录下:./db/installdb -u root -p 123456 -h localhost -d cacti
方法2:/opt/mysql/bin/mysql -u root -p -d nagios -h localhost < ./db/mysql.sql
应该会有59个表的
(7)启动ndo2db
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
查看日志
tail -100 /var/log/messages
tail -100 /usr/local/nagios/var/nagios.log
tail -100 /usr/local/nagios/var/ndo2db.debug
错误:
tail -100 /var/log/messages
localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'field list''
这要是由于缺少'long_output' 字段照成的添加就ok了:
ALTER TABLE npc_eventhandlers ADD long_output TEXT AFTER output;
ALTER TABLE npc_hostchecks ADD long_output TEXT AFTER output;
ALTER TABLE npc_hoststatus ADD long_output TEXT AFTER output;
ALTER TABLE npc_notifications ADD long_output TEXT AFTER output;
ALTER TABLE npc_servicechecks ADD long_output TEXT AFTER output;
ALTER TABLE npc_servicestatus ADD long_output TEXT AFTER output;
ALTER TABLE npc_statehistory ADD long_output TEXT AFTER output;
ALTER TABLE npc_systemcommands ADD long_output TEXT AFTER output;
==================================================================安装cacti-plugin=============================================================
1:下载解压
$cd /u01
$wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
$unzip cacti-plugin-0.8.7e-PA-v2.6.zip
$chown -R cacti:cacti cacti-plugin-arch/
2.导入数据库结构
mysql -u cacti -p cacti<cacti-plugin-arch/pa.sql
3:覆盖文件
方法1:cp –rf cacti-plugin-arch/files-0.8.7e/* /opt/htdocs/www/cacti
方法2:cp cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff /opt/htdocs/www/cacti/
cd /opt/htdocs/www/cacti/
patch -p1 -N <cacti-plugin-0.8.7e-PA-v2.6.diff
4:配置文件:
$cd /opt/htdocs/www/cacti/
$vi include/global.php
插件数据库需再配置一下
database_type = "mysql";
database_default = "cacti";
database_hostname = "127.0.0.1";
database_username = "cactiuser";
database_password = "cacti";
5.配制插件
还是在$vi include/global.php
#我的cacti安装在域下的cacti目录,这里也需修改
$config['url_path'] = '/cacti/';
#为后面安装npc增加变量
$plugins[] = 'npc';
注:0.8.7g开始上面两变量改放在includes/config.php中,如果参照以前的教程会找不到了囧
参见Change Log
http://forums.cacti.net/viewtopic.php?t=38492
=========================================================安装npc=============================================================
安装的前提是要安装了cacti-plugin (cacti的插件架构)http://viong.blog.51cto.com/844766/288278
npc下载的官网网站下载不了,不知道怎么回事:可以使用:http://www.scsorlando.com/files/npc2.0.4.tar 下载,这个地址要是也不行的话,就在google上搜下
npc要有json的支持,所以先安装json (http://bbs.linuxtone.org/thread-17617-1-1.html)
1:下载解压
$wget http://pkgs.fedoraproject.org/re ... 5539/json-1.2.1.tgz
$tar xzvf json-1.2.1.tgz
$cd json-1.2.1
$phpize
(如果发现没有Phpize文件,则是因为php-devel包没有安装导致的,这要那种php-devel)
$/configure
$make &&make install
检查下看看现在是不是支持json:
编写php:vi test.php
<?php
phpinfo();
phpinfo(INFO_GENERAL);
phpinfo(1);
?>
放到web的目录下:用浏览器打开http://ip/test.php
看到了php的属性(向下拖):
json
json support enabled
json version 1.2.1
有这个就说明支持了
二:下载并安装npc
下载地址:http://www.scsorlando.com/files/npc2.0.4.tar
解压:tar -xvf npc2.0.4.tar
$ mv npc /opt/cacti/plugins
$chown -R cacti:cacti /opt/cacti/plugins/npc
三:启用npc插件:
以admin用户登陆cacti,在console中的user management里对admin的用户权限进行编辑,
勾选上Plugin Management
然后到Configuration=》Plugin Management -》点击install
安装并启用NPC即可。
在Settings->npc中
勾上Remote Commands
Nagios Command File Path=/usr/local/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://nagios.c1gstudio.com/nagios/)
=================
主要的参考文献:http://rickie622.blog.163.com/blog/static/21238811201131910416981/
http://rickie622.blog.163.com/blog/static/2123881120113191009576/
http://blog.c1gstudio.com/archives/635
我们可以通过一些脚本来时它们有联系:
nagios通过使用ndoutils包可以把nagios的监控内容存放到mysql中去
cacti通过使用npc插件获取mysql的数据,并且显示[安装npc时要先安装插件框架:cacti-plugin-0.8.7f-PA]
=================================安装步骤===============================
这里的前提是安装好了cacti和nagios的。要是没有安装好就可以看看nagios安装.txt和cacti安装.txt文件。 这里注意了:cacti的选择 不要选择最新版本,cacti-0.8.7g的要不然在使用npc是会不显示的,我是使用的是cacti-0.8.7.e和cacti-plugin-0.8.7f-PA和npc2.0.4.tar
==============================================先对nagios进行处理:安装ndoutils=============================================
安装前的依赖包:
nagios
mysql
cpan DBI #非必需 (安装DBI和DBD也有文件夹参考)
cpan DBD::mysql #非必需
2.关联mysql头文件和库(这个步骤可以先不要去做,也许mysql的安装时安装默认安装路径的,等后面报错是,看看是不是少了mysql的包时在来做)
ln -s /opt/mysql/include/* /usr/include/
ln -s /opt/mysql/lib/* /usr/lib/
echo '/usr/lib' >> /etc/ld.so.conf
ldconfig -v [这个步骤是动态加载库 http://blog.chinaunix.net/uid-25316333-id-3080921.html]
问题:在ln -s /opt/mysql/include/* /usr/include/ 报 ln -s /usr/include/mysql已经有了,你可以把/usr/include/mysql 修改为保存下 mv /usr/include/mysql /usr/include/mysql_bak
ln -s /opt/mysql/lib/* /usr/lib/ 也一样
3.安装ndoutils
$wget -c http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
$tar zxvf 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
(这里nagios是安装在/usr/local/nagios目录下的)
4.拷贝文件
# 我的Nagios是3.0.6,所以拷贝的是ndomod-3x.o、ndo2db-3x,如果你的是2.X.x请拷贝ndomod-2x.o、ndo2db-2x
$ cd src
$cp ndomod-3x.o ndo2db-3x log2ndo file2sock /opt/nagios/bin/ (根据我的nagios 版本号的不同来确定是拷ndomod-3x.o、ndo2db-3x)
$chown -R nagios:nagios /opt/nagios/bin/*
$cd ..
$cd config
$ cp ndo* /opt/nagios/etc/
5:创建ndo的mysql 数据库及用户(这不在前面应该都做了,可以省略)
CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT select,insert,update,delete ON cacti.* TO nagiosndo@localhost identified by 'password123';
FLUSH PRIVILEGES ;
6:配置文件的修改:
$cp /opt/nagios/ndomod.cfg-sample /opt/nagios/etc/ndomod.cfg
$cp /opt/nagios/ndo2db.cfg-sample /opt/nagios/etc/ndo2db.cfg
6.1修改ndo2db.cfg文件
vi /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti2011
debug_level=1
6.2修改nagios的主文件
vi /usr/local/nagios/etc/nagios.cfg
event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
process_performance_data=1
6.3修改ndomod.cfg
vi /usr/local/nagios/etc/ndomod.cfg (修改以tcp协议传输)
output_type=tcpsocket
output=127.0.0.1
7:导入数据库中的表的结构:
方法一:
必须要有
cpan DBI
cpan DBD::mysql 支持
在解压文件目录下:./db/installdb -u root -p 123456 -h localhost -d cacti
方法2:/opt/mysql/bin/mysql -u root -p -d nagios -h localhost < ./db/mysql.sql
应该会有59个表的
(7)启动ndo2db
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
查看日志
tail -100 /var/log/messages
tail -100 /usr/local/nagios/var/nagios.log
tail -100 /usr/local/nagios/var/ndo2db.debug
错误:
tail -100 /var/log/messages
localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'field list''
这要是由于缺少'long_output' 字段照成的添加就ok了:
ALTER TABLE npc_eventhandlers ADD long_output TEXT AFTER output;
ALTER TABLE npc_hostchecks ADD long_output TEXT AFTER output;
ALTER TABLE npc_hoststatus ADD long_output TEXT AFTER output;
ALTER TABLE npc_notifications ADD long_output TEXT AFTER output;
ALTER TABLE npc_servicechecks ADD long_output TEXT AFTER output;
ALTER TABLE npc_servicestatus ADD long_output TEXT AFTER output;
ALTER TABLE npc_statehistory ADD long_output TEXT AFTER output;
ALTER TABLE npc_systemcommands ADD long_output TEXT AFTER output;
==================================================================安装cacti-plugin=============================================================
1:下载解压
$cd /u01
$wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
$unzip cacti-plugin-0.8.7e-PA-v2.6.zip
$chown -R cacti:cacti cacti-plugin-arch/
2.导入数据库结构
mysql -u cacti -p cacti<cacti-plugin-arch/pa.sql
3:覆盖文件
方法1:cp –rf cacti-plugin-arch/files-0.8.7e/* /opt/htdocs/www/cacti
方法2:cp cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff /opt/htdocs/www/cacti/
cd /opt/htdocs/www/cacti/
patch -p1 -N <cacti-plugin-0.8.7e-PA-v2.6.diff
4:配置文件:
$cd /opt/htdocs/www/cacti/
$vi include/global.php
插件数据库需再配置一下
database_type = "mysql";
database_default = "cacti";
database_hostname = "127.0.0.1";
database_username = "cactiuser";
database_password = "cacti";
5.配制插件
还是在$vi include/global.php
#我的cacti安装在域下的cacti目录,这里也需修改
$config['url_path'] = '/cacti/';
#为后面安装npc增加变量
$plugins[] = 'npc';
注:0.8.7g开始上面两变量改放在includes/config.php中,如果参照以前的教程会找不到了囧
参见Change Log
http://forums.cacti.net/viewtopic.php?t=38492
=========================================================安装npc=============================================================
安装的前提是要安装了cacti-plugin (cacti的插件架构)http://viong.blog.51cto.com/844766/288278
npc下载的官网网站下载不了,不知道怎么回事:可以使用:http://www.scsorlando.com/files/npc2.0.4.tar 下载,这个地址要是也不行的话,就在google上搜下
npc要有json的支持,所以先安装json (http://bbs.linuxtone.org/thread-17617-1-1.html)
1:下载解压
$wget http://pkgs.fedoraproject.org/re ... 5539/json-1.2.1.tgz
$tar xzvf json-1.2.1.tgz
$cd json-1.2.1
$phpize
(如果发现没有Phpize文件,则是因为php-devel包没有安装导致的,这要那种php-devel)
$/configure
$make &&make install
检查下看看现在是不是支持json:
编写php:vi test.php
<?php
phpinfo();
phpinfo(INFO_GENERAL);
phpinfo(1);
?>
放到web的目录下:用浏览器打开http://ip/test.php
看到了php的属性(向下拖):
json
json support enabled
json version 1.2.1
有这个就说明支持了
二:下载并安装npc
下载地址:http://www.scsorlando.com/files/npc2.0.4.tar
解压:tar -xvf npc2.0.4.tar
$ mv npc /opt/cacti/plugins
$chown -R cacti:cacti /opt/cacti/plugins/npc
三:启用npc插件:
以admin用户登陆cacti,在console中的user management里对admin的用户权限进行编辑,
勾选上Plugin Management
然后到Configuration=》Plugin Management -》点击install
安装并启用NPC即可。
在Settings->npc中
勾上Remote Commands
Nagios Command File Path=/usr/local/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://nagios.c1gstudio.com/nagios/)
=================
主要的参考文献:http://rickie622.blog.163.com/blog/static/21238811201131910416981/
http://rickie622.blog.163.com/blog/static/2123881120113191009576/
http://blog.c1gstudio.com/archives/635