Chinaunix首页 | 论坛 | 博客
  • 博客访问: 382341
  • 博文数量: 87
  • 博客积分: 2810
  • 博客等级: 少校
  • 技术积分: 825
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 22:34
文章分类

全部博文(87)

文章存档

2010年(25)

2009年(43)

2008年(19)

分类: 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)

阅读(845) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~