存在BUG的版本:
>=0.8.7<1.2.10
0.8.7至1.2.10所有版本,均會出現此故障
不受影響的版本:
>=1.2.10后所有版本,<0.8.7前所有版本
問題分析:
Cacti從0.8.7版本開始,也就是說在2007年(13年前)設置了時間戳的值為1600000000,轉換成時間為2020-09-13 20:26:40,表示在2020年9月13日20點26分40秒后,選擇過濾圖形時間會導致失效,圖形過濾器出現BUG。
修復方法:
0.8.7版本至1.0.0版本修復方法如下:
修改當前web根目錄下的graph_xport.php和graph_image.php兩個文件,查找1600000000,每個文件中會有兩個這個值,將其全部改成2088385563,修改后無需重啟任何服務,直接刷新當前瀏覽器即可!
1
2
3
4
5
6
7
8
|
if (!empty($_GET["graph_start"]) && $_GET["graph_start"] < 1600000000) {
$graph_data_array["graph_start"] = $_GET["graph_start"];
}
/* override: graph end time (unix time) */
if (!empty($_GET["graph_end"]) && $_GET["graph_end"] < 1600000000) {
$graph_data_array["graph_end"] = $_GET["graph_end"];
}
|
1.0.0版本至1.2.10版本修復方法如下:
修改當前web根目錄下的graph_image.php、graph_json.php、graph_xport.php、remote_agent.php這四個文件,查找1600000000,將其全部改成2088385563,修改后無需重啟任何服務,直接刷新當前瀏覽器即可!
1
2
3
4
5
6
7
8
|
if (!isempty_request_var('graph_start') && get_request_var('graph_start') < 1600000000) {
$graph_data_array['graph_start'] = get_request_var('graph_start');
}
/* override: graph end time (unix time) */
if (!isempty_request_var('graph_end') && get_request_var('graph_end') < 1600000000) {
$graph_data_array['graph_end'] = get_request_var('graph_end');
}
|
官方在1.2.10版本中將1600000000改成了FILTER_VALIDATE_MAX_DATE_AS_INT變量,此變量定義的值是2088385563,也就是說在2036-03-06 11:06:03后,還會出現時間戳故障。