Zabbix报表之解决仪表盘页数过大时发送失败问题

情况简述

        (一)问题

        Zabbix的报表功能关联的仪表盘页数(且每页内容达到最满)很多的情况下,会发生发送失败的情况。

        (二)报错

Cannot fetch data: context deadline exceeded

        (三)办法

a.打开该文件

# vi /etc/zabbix/zabbix_web_service.conf

b.找到Timeout然后取消注释并将值从默认的3修改为5或更大

(个人建议不要太大,满足需求即可)

Timeout=5

c.重启zabbix-web-service进程

# systemctl restart zabbix-web-service.service

d.再到计划报表中点测试发送试试

        (四)原因

        之所以发生发生失败的情况,是因为仪表盘太大生成pdf时耗时很长,这个耗时超过了zabbix的上下文超时时间时生成任务就会被中断,所以就会出现发送失败的情况。

排查过程

        起初认为是页数有最大值的原因,但官网上并无类似介绍,然后开始验证测试。

        1 - 使用每页内容为半页的仪表盘,增加至第11页时,出现发送失败;

        2 - 使用每页内容为整页的仪表盘,增加至第04页时,出现发送失败;

        3 - 貌似从页数和内容满不满上找不到问题规律;

        发现从页数方面找不到规律和方向,才开始看报错。

        4 - 根据异常报错搜索,找到一篇MongoDB关于该报错的介绍,随之确定,问题原因是上下文超时;

        (多谢!MongoDB Golang 报告 “context deadline exceeded” 问题及解决办法|极客笔记

        5 - 再根据上下文超时相关内容搜索zabbix和mysql相关内容,未找到类似案例;

        6 - 随后翻了翻zabbix和mysql的配置文件,认为zabbix-web-service.conf中的timeout可能是,便从3改为30后再测试,仪表盘页数很多时的报表发送成功了。又改回原值后又不成功了;

        7 - 至此找到了问题的解决办法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值