分类: 系统运维
2010-04-14 12:50:06
Cacti 升级备忘
原因:老版本的cacti(0.8.7d)不能取到大于8TB的硬盘
准备:下载新版本的cacti 0.8.7e
下载cacti本身程序文件和插件管理程序
备份:做任何事情之前都要养成良好的备份习惯。
mysqldump -uroot -p cacti > mysql.cacti ----backup the cacti database
cd /
cp -r /www /
把之前下载的程序文件和插件管理程序合并到一起。
cd /www
\cp -r /root/update/cacti-0.8.7e/* .
很快就复制好了。这里的cp前面加了一个\,这个是跟网中人学的,呵呵 TKS 意思是覆盖本身存在的文件。不做任何提示。一个小技巧,TKS
修改配置文件:
cd include
vim config.php
把数据库名、用户名、密码改成原来的。
vim global.php
把数据库名、用户名、密码改成原来的。还有把插件要配置好,不然访问的时候插件是出不来的。完成这些就可以了。
因为我是覆盖原来的文件,就不需要去拷贝原来的数据文件和日志了。
重新打开cacti,试一下,就可以取到大于8TB容量的硬盘了。但是还是有点问题,取不到total的值,还需要修改一个程序文件才可以。
如下:
补丁文件:
--- ss_host_disk.php.back 2008-03-28 18:32:32.000000000 +0900
+++
ss_host_disk.php 2008-08-20 12:01:07.000000000 +0900
@@ -75,7
+75,12 @@
if (($arg == "total") || ($arg == "used")) {
$sau =
eregi_replace("[^0-9]", "", db_fetch_cell("select field_value from
host_snmp_cache where host_id=$host_id and
field_name='hrStorageAllocationUnits' and snmp_index='$index'"));
-
return cacti_snmp_get($hostname, $snmp_community, $oids[$arg] .
".$index", $snmp_version, $snmp_auth_username, $snmp_auth_password,
$snmp_auth_protocol,$snmp_priv_passphrase,$snmp_priv_protocol,
$snmp_context, $snmp_port, $snmp_timeout,
read_config_option("snmp_retries"), SNMP_POLLER)* $sau;
+ $snmp_data
= cacti_snmp_get($hostname, $snmp_community, $oids[$arg] . ".$index",
$snmp_version, $snmp_auth_username, $snmp_auth_password,
$snmp_auth_protocol,$snmp_priv_passphrase,$snmp_priv_protocol,
$snmp_context, $snmp_port, $snmp_timeout,
read_config_option("snmp_retries"), SNMP_POLLER);
+ if(
preg_match('/^-/',$snmp_data) ){
+ return (abs($snmp_data) +
2147483647) * $sau;
+ } else {
+ return $snmp_data * $sau;
+
}
}else{
return cacti_snmp_get($hostname, $snmp_community,
$oids[$arg] . ".$index", $snmp_version, $snmp_auth_username,
$snmp_auth_password,
$snmp_auth_protocol,$snmp_priv_passphrase,$snmp_priv_protocol,
$snmp_context, $snmp_port, $snmp_timeout,
read_config_option("snmp_retries"), SNMP_POLLER);
}
来源:
这样total容量就出来了,但是那个percent还是不行
打补丁:
[root@Monitor www]# patch -p1 -N < cli_add_graph.patch
patching
file cli/add_graphs.php
[root@Monitor www]# patch -p1 -N <
snmp_invalid_response.patch
patching file include/global_arrays.php
Hunk
#1 FAILED at 174.
1 out of 1 hunk FAILED -- saving rejects to file
include/global_arrays.php.rej
patching file lib/snmp.php
[root@Monitor
www]# patch -p1 -N < template_duplication.patch
patching file
cli/repair_templates.php
patching file docs/README
patching file
lib/export.php
patching file lib/import.php
patching file
lib/utility.php
[root@Monitor www]#
snmp_invalid_response.patch中的一个补丁没有打上,我们手工修改 include/global_arrars.php
在
"DES" => "DES (default)",
"AES128" => "AES");
这两行的后面加入
$banned_snmp_strings = array(
"End of MIB",
"No
Such");
保存退出。
整个升级过程完成。备注一下!~
关于升级后,不能监控磁盘利用率的解决办法
One of those was modified from the original
cacti one (too add hdd_percent), you need to put the original back
(scripts/ss_host_disk.php) and probably the resource file also
(resource/script_server/host_disk.xml)