问题现象:本来监控都是正常的但是在主机增加多了之后有些数据获取就会直接返回500的错误,从而获取不到数据。如图:
解决办法:
修改 /etc/httpd/conf.d/zabbix.conf 如图:
将参数适当调大点,就可以了。
问题分析:
zabbix.conf 默认配置的POST请求数据大小太小了,而增加了主机之后因为一次性请求的数据量超过配置文件中的最大设置,导致apache 服务器直接拒绝,所以报500。
分析过程:首先F12拿到请求的接口地址和请求参数
api地址:http://ip:port/api/datasources/2/resources/zabbix-api
请求参数:
{"datasourceId":2,"method":"item.get","params":{"output":["name","key_","value_type","hostid","status","state"],"sortfield":"name","webitems":true,"filter":{"value_type":[0,3]},"selectHosts":["hostid","name","host"],"hostids":["主机ID1","主机ID2",]}}
第一次测试 postman 测试请求:
直接报500错误,说明不是超时引起的问题。
第二次测试 postman 测试请求:
这次我减少了主机的数量:
请求到数据了。
那么问题就比较容易想到了,既然不是超时问题,请求也是正常的,只是我请求的数据量变化导致500,很可能的原因就是请求量太大,服务器拒绝了。
至此问题原因就找到了。