发表于:2009-10-13 浏览:149 作者: 来源:互联网
关键字:cacti,监控
描述:Cacti监控windows硬盘容量大于8TB的,只能取到已使用的数据,取不到总的容量数据。解决方法如下:修改取数据的脚本ss_host_disk.php---ss_host_disk.php.back 2008-03-2818:32:32.
Cacti监控windows硬盘容量 大于8TB的,只能取到已使用的数据,取不到总的容量数据。
解决方法如下:
修改取数据的脚本 ss_host_disk.php
--- 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);
}
前面是-号的 是需要注释掉的 是+号的是需要增加的。
修改后就可以了。这个解决方法只适合0.8.7e版本,不适合老版本的cacti。
老版本的cacti根本就取不到大容量的盘符。需要升级cacti版本