Cacti 监控平台迁移备忘

公司用的 Cacti 监控平台已经有些时日了,一直运行很稳定,不过,昨天接到通知要迁移 Cacti 平台到别外的一台新服务器。以初以为直接把 Cacti 的 WEB 文件和数据库同步到新服务器就可以了,在实际操作的过程中发现并不是这样的。

首先配置好新服务器的LNMP环境,并将原来的 Cacti 的WEB文件和 mysql 同步到新的服务器。考虑到服务器的安全因素,我的环境配置脚本默认是把 PHP 的以下函数禁用的:

1
disable_functions = system,exec,shell_exec,passthru,popen,dl

Cacti 在读取数据和画图的时候需要 exec() shell_exec() popen() 等函数,果然没有开启,可能会出现不能出图的情况。

如果新的服务器上的文件目录和之前的不一致,需要在引入 sql 之前编辑修改一下路径。不然有可能出现 Cacti 不能正常调用一些脚本的情况。

1
2
vi cacti.sql
:%s/\/old\/cacti.tanchao.org/\/new\/cacti.tanchao.org/g

用vi替换的时候注意一下“/”的转义。

检查一下 Cacti 中的 settings paths 的选项是否和新的服务器上的实际环境一致

然后把被监控的服务器上的设置改一下,把IP改为新的服务器的

1
2
3
4
5
6
7
8
vi /etc/snmp/snmpd.conf

# First, map the community name "public" into a "security name"

# sec.name source community
com2sec notConfigUser 新的cacti监控服务器的IP public

/etc/init.d/snmpd restart

然后向 iptables 添加一条新的记录,让其允许和新的监控服务器通信

1
iptables -I INPUT -s 新的cacti监控服务器的IP -p udp --dport 161 -j ACCEPT

最后不要忘记在 crontab 中加定期执行 poller.php

1
2
3
crontab -e

*/5 * * * * php /new/cacti.tanchao.org/poller.php > /dev/null 2>&1

这个时候,新的 Cacti 监控就应该可以正常工作了。

如果你之前安装有监控 Nginx 的脚本,不要忘记让 perl 支持 LWP::UserAgent ,否则 Nginx 的监控部分会出不来图。

测试是否已经开启支持:

1
/new/tanchao.org/get_nginx_clients_status.pl http://tanchao.org/nginx_status

如提示 no (LWP::UserAgent not found) 就说明了 perl 的确是缺少该组件

两种方法安装支持,第一种编译花的时间比较长,建议使用第二种:

1
2
3
4
5
6
7
8
9
10
#方法一:

#perl -MCPAN -e shell 一直回车,知道出现cpan> 提示符开始。
cpan> install LWP::UserAgent
……………………………………
……………………………………
cpan> exit

#方法二:(用时比较短)
yum install perl-libwww-perl