分类: LINUX
2009-09-03 16:57:46
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)