Home

zhangyiqun

Thoughts, stories and ideas.

Notes Blog Archives About
24 Jul 2009

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

Notes Blog Archives About