场景:
随着咱们接触的玩的东西越来越多,对服务器的压力也越来越大,服务器监控也都搞上了。很多企业也好个人玩的也好,应该有人涉及过zabbix,zabbix咱就不过介绍了,回归正题踩坑记,用了一段时间的zabbix 突然给了严重的告警Zabbix value cache working in low memory mode,开整
问题描述
docker正常启动的zabbix6.4:用了一段时间仪表盘突然严重告警Zabbix value cache working in low memory mode
部署运行
下面在说解决,这里分享一个简单的zabbix部署
一、 git直接 clone 然后选择自己想要的版本 这里我用的6.4版本 因为这个是官方长期支持的,(最新的7.0也支持)自己选择
git clone https://github.com/zabbix/zabbix-docker.git
git tag
直接切换自己想要的版本
二、 直接启动
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
这里提示下: 可能服务启动的时候 很多人 访问web页面的时候对端口要做限制 默认是8080 映射80
从上可以看见zabbix有很多yaml文件 大部分都是相互关联具有继承关系的 有兴趣的可以盘一下
多句嘴个人观点:zabbix这样设置优点就是全都可以通过yaml配置重启修改很方便,但是有一点个人觉得不太友好的就是可读性有点差找起来有点麻烦
这里直接贴了 修改端口配置的在 compose_zabbix_components.yaml
三、 启动完成 查看镜像
直接用ip可以访问web页面了 默认账号密码 admin zabbix (默认80如果修改了 就ip+端口,后面有需要域名随便映射) 到这就可以正常的使用了
配合探针使用的话,自己可以参考官网,这里就不过多讲了
原因分析:
上面就是部署过程比较简单方便,也运行了一段时间,今天仪表盘就出现了严重的告警 Zabbix value cache working in low memory mode
查了很多资料包括官网很多都是很古老的版本 关于docker的也不是很多,直接翻译是Zabbix值缓存在低内存模式下工作查完发现服务启动的时候会加载指定的配置文件读取cache 和 history cache配置,默认是8m 4m ,定位问题还是挺简单的,都知道改配置文件 网上很多资料都没有关于docker zabbix 6.4的 以前的版本 可能是-env=“ZS_ValueCacheSize=1000M” 这样配置的 但都不是我想要的答案
尝试过自己修改compose_zabbix_components.yaml 重启后检查发现并没有成功
docker inspect 镜像names 或者 docker exec -it CONTAINER ID env
查看环境变量
解决方案:
仔细盘一下compose_zabbix_components.yaml的 配置 还是我老大发现了端倪 在zabbix server 下有一个默认读取配置文件的位置 /env_vars/.env_srv 到这准确定位直接去修改配置 然后重启就解决问题
修改完成重启后 查看环境变量
到这说明已经没啥问题了 web页面的仪表盘告警也恢复正常了
总结:
其实这个坑,换一个经验多一点的大佬(我老大这种的😁) 盘一下就很容易解决了,倒是我这种菜鸡才算踩坑,发现很多资料上都没docker zabbix:value cache 资料,特别记录一下踩坑记。完事撤了,继续踩坑了,祝愿大家少踩坑,多挣钱😄。