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重新加载
|
|