nagios和cacti排错
这几天负责迁移公司原来的nagios并在新环境重新部署cacti(原来的cacti随着raid一起死了),服务器都是64位系统,解决lib和丢失文件的问题废了不少时间,现在把遇到的问题总结一下.
nagios迁移问题—————————————————————————————————————————————
1.启动时出现缺少/lib64/libssl.so.4时
ln -s /lib64/libssl.so.0.9.7a /lib64/libssl.so.4
./check_mysql: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
检查/lib64和/lib
vi /etc/ld.so.conf 查看链接位置是否有mysql的lib文件,编辑后需要使用ldconfig重新加载。
ln -s libmysqlclient.so.15.0.0 libmysqlclient.so.15
ln -s libmysqlclient_r.so.15.0.0 libmysqlclient_r.so.15
2.当出现Can’t locate DBI.pm
perl -MCPAN -e ‘install DBI’
That fixed it for me. And then you might need to install drivers like this (for Postgres):
perl -MCPAN -e ‘install DBD::Pg’
复制/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
#当遇到perl问题最彻底的解决办法是cp原机目录
nrpe自动化—————————————————————————————————————————————
遇到的问题是,40台服务器配置各异,因此无法用脚本实现完全自动化(实在要写的话比较浪费时间,需要不少判断,特殊字符处理起来也比较麻烦).我下面的语句原来是写在expect中,但是执行到su 时总会报错,无奈只能一个个手工复制上去.
备份原nrpe,添加新许可最后重启nrpe
bak /usr/local/nagios/etc/nrpe.cfg && sed -i "s#allowed_hosts=#allowed_hosts=192.168.8.5,#g" /usr/local/nagios/etc/nrpe.cfg kill -9 `ps aux | awk '$11 ~ /nrpe/{print $2}'` && /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d上个shell中使用bak是自己写的,如下
#bak cp -rv $1 $1.`date +%Y%m%d%H`
cacti安装问题—————————————————————————————————————————————
1.检查MySQL, PHP, RRDTool, net-snmp是否安装
注意,安装mysql时不可以直接./mysql_install_db ,否则无法安装。(需要bin/mysql_install_db)
改组的命令usermod -G groupname user
2.当进入cacti时出现The following PHP extensions are missing:
- sockets
Please install those PHP extensions and retry
–enable-sockets
在这我遇到了个很牛逼的事,把php rm 了以后php info函数居然还能用,而且还能跑应用,我彻底折服了。
3.重新编译php遇到[libphp5.la] Error 1
重新解压tar包即可.
make过程中遇到
/home/okooo/src/php-5.2.6/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open
sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile
4.安装spine
./configure –with-mysql=/home/okooo/apps/mysql
5.cacti密码丢失
mysql> show databases;
mysql> use cacti;
mysql> show tables;
mysql> update user_auth set password=md5(“newpassword”) where id=’1′;
其他:
cacti里的监控脚本http://www.php-oa.com/2008/03/15/cacti.html
0.8.7中自带ad ping 的脚本。http://blog.wangxianjin.cn/?p=106
snmp配置————————————————————————————————————————————
被监控的linux机器配置snmp
/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
# sec.name source community
com2sec notConfigUser default public
将”comunity”字段改为你要设置的密码.比如”public”.
将“default”改为“安装了cacti机器的IP”,可以看到你的snmp信息,如10.10.10.10。
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup “” any noauth exact all none none
将”read”字段改为all.
## incl/excl subtree mask
#view all included .1 80
将该行前面的”#”去掉.
重启
service snmpd restart
查看snmp的端口号
[root@localhost snmp]# netstat -ln grep 161
udp 0 0 0.0.0.0:161 0.0.0.0:*
测试snmp可用性
snmpwalk -c public -v 2c localhost .1.3.6.1.2.1.4.20 取得IP信息
这个shell用于客户机修改snmp配置并重启服务
yum -y install net-snmp && sed -i "s#agentaddress 192.168.8.34#agentaddress `ifconfig eth1 | awk '$1 ~ /inet/{print $2}' | sed -n 's#addr:##p'`#" /etc/snmp/snmpd.conf && service snmpd restart