最近项目需要为大数据平台配备监控告警系统,虽说之前折腾过很长时间的nagios,对其中的原理比较了解,但是最终还是决定选择zabbix,
原因有两点:
1、nagios的开源的UI实在是惨不忍睹,而客户特别是不懂技术的门外汉对产品的要求往往都集中在UI上;zabbix的UI设计可以直接很省心;
2、动态性,nagios的告警机制非常灵活,配置项也很灵活,但是它修改配置需要去重启,不如zabbix,修改后无需重启服务;
选择采用docker-compose的方式部署zabbix,持续稳定运行了一段时间后发现,zabbix-server一直处于restarting状态, 采用docker-compose logs
--tail=100 (注意,当日志太多的时候,--tail很有用)发现是CacheSize设置太小(只有8M,果断修改成1028M),然后把配置文件docker cp到容器里,奇怪的事情发生了,zabbix-server仍然是处于restarting,日志也还是跟原来没有变化,难道不是cachesize的问题?
苦恼啊,继续google了一阵,没有别的解释
突然想到,难道配置没有修改成功,把容器里面的配置文件zabbix-server.conf 拷贝出来一看,发现果然,CacheSize 配置不见了,太诡异了;
找另外一个zabbix进行测试,确定这种方式修改配置没有问题,那是什么原因呢?
猜想如下:
1、docker把修改好的配置文件给改了
2、其它程序把修改好的配置文件给改了
如何确定了?最好的还是日志,继续向上看日志,发现了猫腻,居然每次CacheSize的配置都被update了,难怪没有用?到底是谁干的?
经过分析发现容器的入口文件docker-entry.sh有重大嫌疑,找到对应的文件,果然就是它,为了防止配置被修改,它每次都会检查,而它
执行的时机是容器启动的时候,容器一直在restarting,它就被反复执行,也就是说zabbix-server.conf文件一直是它在修改。
网友评论