Cacti时间过滤器bug

Cacti时间过滤器bug!0.8.7-1.2.10所有版本皆受影响!

昨天早上同事发现公司几台cacti接连出现问题,时间过滤器失效,无法查看历史流量、勾选时间范围。因为做了虚拟化,恢复镜像后无效,怀疑物理机出问题。

检查物理机确认无人误操作,硬件指标都正常后,因涉及流量结算、割接前后对比,有一台cacti必须尽快恢复。遂上架新物理机,同版本平行迁移,无效。

翻查网上…终于找到问题及解法…贴上原链接https://blog.whsir.com/post-5526.html

存在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,修改后无需重启任何服务,直接刷新当前浏览器即可!

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,修改后无需重启任何服务,直接刷新当前浏览器即可!

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’);
}

为什么要改成2088385563?

其实此BUG,官方在1.2.10版本时已经修复了,因为时间没到,一直没触发BUG。

官方在1.2.10版本中将1600000000改成了FILTER_VALIDATE_MAX_DATE_AS_INT变量,此变量定义的值是2088385563,也就是说在2036-03-06 11:06:03后,还会出现时间戳故障。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值