Cacti 监控平台迁移备忘及运行cacti的php相关函数

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

首先配置好新服务器的LNMP环境,并将原来的 Cacti 的WEB文件和 mysql 同步到新的服务器。考虑到服务器的安全因素,我的环境配置脚本默认是把 PHP 的以下函数禁用的:
disable_functions = system,exec,shell_exec,passthru,popen,dl
Cacti 在读取数据和画图的时候需要 exec() shell_exec() popen() 等函数,果然没有开启,可能会出现不能出图的情况。

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

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

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

然后把被监控的服务器上的设置改一下,把IP改为新的服务器的
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 添加一条新的记录,让其允许和新的监控服务器通信

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

最后不要忘记在 crontab 中加定期执行 poller.php
crontab -e
*/5 * * * * php /new/cacti.tcis.me/poller.php > /dev/null 2>&1

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

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

测试是否已经开启支持:
/new/cacti.tcis.me/get_nginx_clients_status.pl http://tcis.me/nginx_status
如提示 no (LWP::UserAgent not found) 就说明了 perl 的确是缺少该组件

两种方法安装支持,第一种编译花的时间比较长,建议使用第二种:
#方法一:
#perl -MCPAN -e shell 一直回车,知道出现cpan>  提示符开始。
cpan> install LWP::UserAgent7……………………………………
……………………………………
cpan> exit
#方法二:(用时比较短)
yum installperl-libwww-perl