您的位置:首页 > 其它

cacti的目录迁移发现的问题

2015-12-21 18:10 351 查看
整理了一下服务器,把cacti移到了专门的WEB目录中,出了两个不大,但绝对坑死人的问题。

 

1.访问URL的一厢情愿

移动过后,由于原本的存放路径是apache的默认路径,访问的URL自然就是http://www.XXX.com/cacti,现在既然已经移出来了,何不改成http://cacti.XXX.com。

结果用apache直接设置之后访问异常。首页index.php的图片无法访问,登录进去之后,所有的图片无法访问,注销之后自动跳转回http://cacti.XXX.com/cacti/loginout.php.

事到如此很明显是路径问题。找了一转在配置文件里没有找到有关路径的设置,到是在数据库cacti的表settings中找到了这么几个字段,path_webroot,path_cactilog,realtime_cache_path。这三个字段里记录的都是相关路径。那就改成移动后的路径。

再访问错误依旧。

由于查遍有关路径的配置,使终找不到关键点。又听友人说过好像无论怎么配置cacti好像都只能放在域名的二级目录之下。So。没办法最后决定先做apache别名,再跳转。

Vi http.conf

在空白外直接添加

 

Alias /cacti/ "/XXX/XXX/XXX/cacti/"  //添加别名

 

<Directory "/XXX/XXX/XXX/cacti/"> //设置别名目录的权限

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

</Directory>

 

注。有一个<IfModule alias_module> 在这里面添加的别名无效。

 

之后重启apache 。
http://www.XXX.com/cacti/ 是成功的。
 

下面做转发。

apache 转发需要几个模块。 proxy_module和proxy_http_module,找遍了http.conf好像没有加载项。用apachectl -M 好像也没有加载,那就只有手动编译了。

在网上找了前辈的贴子,一次成功http://sookk8.blog.51cto.com/455855/360709/

1.进入apache源代码目录的modules目录的proxy目录
运行如下命令进行自动编译、安装、修改httpd.conf文件,激活mod_proxy模块
#/usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c
说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行道httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行钱有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块

2.如果还需要其他的proxy模块如mod_proxy_http、mod_proxy_ftp、mod_proxy_ajp,则单独编译进去
#/usr/local/apache/bin/apxs -c -i -a mod_proxy_http.c
#/usr/local/apache/bin/apxs -c -i -a mod_proxy_ftp.c
#/usr/local/apache/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c    (这行ajp模式必须要加后面的ajp*.c)

3.重启启动apache生效

 

以上就纯引用了。记住一点是,命令还有目标文件的路径不要搞错。

 

之后在http.conf里添加相关的虚拟主机信息

 

NameVirtualHost a.b.c.d:80

 

<VirtualHost  a.b.c.d:80>

ServerName   cacti.XXX.com

ProxyPass / http://www.XXX.com:80/cacti/

ProxyPassReverse / http://XXX.com80/cacti/

</VirtualHost>

 

再重启apache。

以http://cacti.XXX.com访问,错误和之前一样。不过如果把转发的地址换成其它任何一个网站却都是成功的,看来这个和cacti自身的特性有关。

 

最后,在DNS里,直接设置了转发,也就是根本没有经过apache服务器,一切运转正常,算是完成任务了。

 

2.spine给我的下马威

目录迁移完之后,再去看一下图形数据,但刚刚打开图形就给我了当头一棒,二三十张图全部都空空如也,什么东西都没有。不用看,肯定出问题了。

 

先查找crontab,看看是不是计划出了问题。

结果很明显。确实有问题,poller的路径还是原来的路径,怪不得不出图。

修正过后,直接使用 /usr/bin/php /XXX路径/poller.php --force

结果出了大麻烦:一大堆文件提示not open,如此一来又是路径问题。但找了一大圈(差不多三小时)仅仅在mysql的模板脚本里发现了路径信息。这表明问题应该不是出现在配置文件里了。

 

后来发现在数据库cacti的 poller_item 表里有两个字段,rrd_path 和 arg1 这两个字段下记录了保存的rrd数据文件和生成所调用的命令。So.这里是必须修改了。

 

于是直接用mysql字符函数直接替换。

 

update poller_item set rrd_path=replace(rrd_path,”被替换的字段”,”替换成的字段”); 

 

update poller_item set arg1=replace(arg1,"被替换的字段","替换成的字段");

 

b783
修改完成之后,再执行 /usr/bin/php /XXX路径/poller.php --force 没有再出错了。

五分钟之后图表出现。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: