docker的启动脚本也许是个坑

最近项目需要为大数据平台配备监控告警系统,虽说之前折腾过很长时间的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文件一直是它在修改。

你可能感兴趣的:(docker的启动脚本也许是个坑)