如何调高Zabbix最大依赖监控项数量的参数上限?
报错说明
Zabbix创建K8s相关监控项时抛出如下报错:
Cannot create item "kube.pod.containers.limits.cpu[***/###]": maximum dependent item count reached.
该报错触发原因是Zabbix对单实例上可创建的依赖类型监控项设置了数量上限,默认阈值为29999,当集群规模较大、依赖监控项总数超过默认值时就会触发该拦截。
配置调整方法
物理机/虚拟机部署场景(RPM/DEB包安装)
- 修改Zabbix服务端配置
登录Zabbix Server节点,编辑默认路径下的配置文件/etc/zabbix/zabbix_server.conf,查找DependentItemLimit配置项,若该配置不存在则手动新增,将值修改为符合自身监控规模的数值,例如下方配置将上限调整为100000:
注意:该参数取值需要结合服务器可用内存评估,数值过大会占用额外运行内存,不建议盲目设置为超大值。DependentItemLimit=100000 - 同步修改所有Zabbix Proxy配置
如果环境使用Zabbix Proxy做分布式监控,需要登录每台Proxy节点,编辑默认路径下的配置文件/etc/zabbix/zabbix_proxy.conf,和Server端做相同的DependentItemLimit参数调整。 - 重启服务加载配置
配置保存后,通过Systemd重启对应服务让配置生效:- 重启Zabbix Server:
systemctl restart zabbix-server - 重启Zabbix Proxy:
systemctl restart zabbix-proxy
- 重启Zabbix Server:
容器化部署场景(Docker/K8s部署)
如果使用Zabbix官方容器镜像部署,不需要进入容器内部修改文件,直接在容器启动配置、K8s工作负载配置中添加对应环境变量即可,参数映射规则如下:
- Zabbix Server对应环境变量:
ZBX_DEPENDENTITEMLIMIT - Zabbix Proxy对应环境变量:
ZBX_DEPENDENTITEMLIMIT
将该环境变量赋值为你需要设置的上限值,重新创建/滚动更新对应Pod或容器后,配置会自动加载生效。
验证
服务重启/更新完成后,重新执行之前失败的监控项创建操作,确认报错不再出现即为调整完成。
内容的提问来源于stack exchange,提问作者Ali Rezvani
相关产品推荐
相关产品推荐

