配色: 字号:
nagios+cacti整合文档
2015-03-18 | 阅:  转:  |  分享 
  
Nagios+Cacti整合文档

写在前面:

配置这个过程有点复杂,网上的文档虽然多,但是更多的是需要自己去想,自己去看日志分析。同样的错误解决的方法不一定相同。另外必须让主机同步网络时间。

首先,nagios的版本不能用最新的,因为nagios4.0版本不能加载ndomod-3x模块,所以nagios版本最好用3的版本。

另外,mysql最好也编译安装,这样在安装ndoutils时,可以很快的找到mysql的安装路径。

参照文档:

http://www.linuxidc.com/Linux/2012-06/62665p5.htm

下来开始安装。

Nagios和Cacti的安装配置就不说了,前面已经写了。

安装nagios

安装cacti

Yum安装cacti的所有依赖包是最好将json先装上,在安装所有依赖包。原因就是php-m|grepjson时会报错。

php-m|grepjson如果提示一个json,则表示模块加载正确,如果提示libxx.so则表示错误,解决方法:yumreinstallphpphp-common。但是这种方法需要重新配置php.ini。

Json安装步骤

[root@susujson]#tarxfjson-1.2.1.tgz

[root@susujson]#cdjson-1.2.1

phpize

./configure&&make&&makeinstall

如果没有phpize命令可yum安装php-devel安装包。

安装ndoutils

./configure--prefix=/usr/local/nagiosLDFLAGS=-L/usr/lib64--with-mysql-inc=/usr/include/mysql--with-mysql-lib=/usr/lib64/mysql--enable-mysql--disable-pgsql--with-ndo2db-user=nagios--with-ndo2db-group=nagios

make

cpsrc/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo}/usr/local/nagios/bin

[root@susundoutils-1.5.2]#cddb/

[root@susudb]#./installdb-ucacti-pcacti-dcactidb

cpconfig/ndo2db.cfg-sample/usr/local/nagios/etc/ndo2db.cfg

cpconfig/ndomod.cfg-sample/usr/local/nagios/etc/ndomod.cfg

chmod644/usr/local/nagios/etc/ndochownnagios:nagios/usr/local/nagios/etc/chownnagios:nagios/usr/local/nagios/bin/

[root@susurrdtool]#cat/usr/local/nagios/etc/ndo2db.cfg|sed-r''/^#/d;/^\s$/d''

socket_type=tcp

db_host=127.0.0.1

db_name=cactidb

db_prefix=npc_

db_user=cacti

db_pass=cacti

debug_level=1

[root@susurrdtool]#cat/usr/local/nagios/etc/ndomod.cfg|sed-r''/^#/d;/^\s$/d''

output_type=tcpsocket

output=127.0.0.1

修改nagios.cfg

##必须是一行,否则报错

broker_module=/usr/local/nagios/bin/ndomod-3x.o?config_file=/usr/local/nagios/etc/ndomod.cfg

event_broker_options=-1???##?为Nagios开启eventbroker,默认无需修改

为ndo2db添加启动守护进程这一步不是必须的

[root@susu~]#cp/opt/ndoutils/ndoutils-1.5.2/daemon-init/etc/init.d/ndo2db



把Ndo2dbBin=/usr/local/nagios/bin/ndo2db改成Ndo2dbBin=/usr/local/nagios/bin/ndo2db-3x如果启动报错暂时不要改

servicendo2dbstart

也可用这种方式启动:

[root@susu~]#/usr/local/nagios/bin/ndo2db-3x-c/usr/local/nagios/etc/ndo2db.cfg

无论怎样启动,必须使用ndo2db-3x这个文件启动,不然nagios不能加载ndomod-3x.o模块

如果启动报错看是否安装了mysql-devel

安装npc

[root@susunpc]#tarxfnpc-2.0.4.tar.gz

[root@susunpc]#mvnpc/var/www/html/cacti/plugins/

修改session权限,

[root@susunpc]#chmod-R777/var/lib/php/session

添加npc路径

[root@susunpc]#vim/var/www/html/cacti/include/config.php

加入:

$plugins[]=''npc'';

修改全局配置:

Vim/var/www/html/cacti/include/global.php



修改php.ini文件添加对json的支持vi/etc/php.ini添加如下内容:extension=json.so

打开图形界面

如果发现npc处于uninstall,原因是npc的权限问题;

chown-Rcacti.cacti/var/www/html/cacti/plugins/npc

设置NPC





重新启动nagiosdbo2dbhttpd

查看后台日志还需要在mysql里面执行如下sql即可:

usecactidb;

showtables;

altertablenpc_eventhandlersaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_hostchecksaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_hoststatusaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_notificationsaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_servicechecksaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_servicestatusaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_statehistoryaddlong_outputTEXTNOTNULLdefault''''afteroutput;

altertablenpc_systemcommandsaddlong_outputTEXTNOTNULLdefault''''afteroutput;

commit;

可以看下系统日志:

如果出现报错如下:

Jan3114:42:00nagiosndo2db-3x:Error:queuerecverror.

上面的意思是消息队列过长或者是消息内容过长.超过设置的值.



查看当前系统允许队列中一条最大消息长度

cat/proc/sys/kernel/msgmnb

查看当前系统允许队列中消息长度总和

cat/proc/sys/kernel/msgmax

查看当前系统允许队列长度

cat/proc/sys/kernel/msgmni



变更相应的值:

echo655360>/proc/sys/kernel/msgmnb

echo655360>/proc/sys/kernel/msgmax

echo65536>/proc/sys/kernel/msgmni



然后更改文件:/etc/sysctl.conf

vi/etc/sysctl.conf

找到对应的项,改成上面echo的值.





sysctl-p重新加载



献花(0)
+1
(本文系苏鱼鱼的IT...首藏)