今天使用cacti查询上个月客户的流量监控情况,但是选择了上个月筛选器后发现并不能用,图表没有任何变化,通过搜索才发现原来是cacti的一个BUG,具体故障现象为 选择时间过滤后没效果,最近时间也无效,点击没反应,经过Github官方反馈得知,由于时间戳设置的问题,导致图形过滤器出现故障。
存在BUG的版本:
verson=0.8.7<1.2.10
0.8.7至1.2.10所有版本,均会出现此故障
不受影响的版本:
verson=1.2.10后所有版本,<0.8.7前所有版本
0.8.7至1.2.10所有版本,均会出现此故障
不受影响的版本:
verson=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。
修复方法
version0.8.7版本至1.0.0版本修复方法如下:
修改当前web根目录下的 graph_xport.php 和 graph_image.php 两个文件,查找 1600000000,每个文件中会有两个这个值,将其全部改成2088385563,修改后无需重启任何服务,直接刷新当前浏览器即可!
if (!empty(_GET["graph_start"]) &&_GET["graph_start"] < 1600000000) {
graphdataarray["graphstart"]=_GET["graph_start"];
}
if (!empty(_GET["graph_end"]) &&_GET["graph_end"] < 1600000000) {
graphdataarray["graphend"]=_GET["graph_end"];
}
修改为
if (!empty(_GET["graph_start"]) &&_GET["graph_start"] < 2088385563) {
graphdataarray["graphstart"]=_GET["graph_start"];
}
if (!empty(_GET["graph_end"]) &&_GET["graph_end"] < 2088385563) {
graphdataarray["graphend"]=_GET["graph_end"];
}
version 1.0.0版本至1.2.10版本修复方法如下:
修改当前web根目录下的 graph_image.php、graph_json.php、graph_xport.php、remote_agent.php这四个文件,查找1600000000,将其全部改成2088385563,修改后无需重启任何服务,直接刷新当前浏览器即可!
if (!isempty_request_var('graph_start') && get_request_var('graph_start') < 1600000000) {
$graph_data_array['graph_start'] = get_request_var('graph_start');
}
if (!isempty_request_var('graph_end') && get_request_var('graph_end') < 1600000000) {
$graph_data_array['graph_end'] = get_request_var('graph_end');
}
同样的修改为
if (!isempty_request_var('graph_start') && get_request_var('graph_start') < 2088385563) {
$graph_data_array['graph_start'] = get_request_var('graph_start');
}
if (!isempty_request_var('graph_end') && get_request_var('graph_end') < 2088385563) {
$graph_data_array['graph_end'] = get_request_var('graph_end');
}
阅读全文
评论前必须登录!
立即登录 注册