Cacti监控windows硬盘容量 大于8TB的,只能取到已使用的数据,取不到总的容量数据。
这是我发在cacti官方的贴子。
解决方法如下:
修改取数据的脚本 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版本
阅读(1213) | 评论(0) | 转发(0) |