最近項(xiàng)目需要為大數(shù)據(jù)平臺(tái)配備監(jiān)控告警系統(tǒng),雖說之前折騰過很長時(shí)間的nagios赊瞬,對(duì)其中的原理比較了解先煎,但是最終還是決定選擇zabbix,
原因有兩點(diǎn):
1巧涧、nagios的開源的UI實(shí)在是慘不忍睹薯蝎,而客戶特別是不懂技術(shù)的門外漢對(duì)產(chǎn)品的要求往往都集中在UI上;zabbix的UI設(shè)計(jì)可以直接很省心谤绳;
2占锯、動(dòng)態(tài)性,nagios的告警機(jī)制非常靈活缩筛,配置項(xiàng)也很靈活消略,但是它修改配置需要去重啟,不如zabbix瞎抛,修改后無需重啟服務(wù)艺演;
選擇采用docker-compose的方式部署zabbix,持續(xù)穩(wěn)定運(yùn)行了一段時(shí)間后發(fā)現(xiàn),zabbix-server一直處于restarting狀態(tài)胎撤, 采用docker-compose logs
--tail=100 (注意晓殊,當(dāng)日志太多的時(shí)候,--tail很有用)發(fā)現(xiàn)是CacheSize設(shè)置太辛ㄕ铡(只有8M挺物,果斷修改成1028M),然后把配置文件docker cp到容器里飘弧,奇怪的事情發(fā)生了识藤,zabbix-server仍然是處于restarting,日志也還是跟原來沒有變化次伶,難道不是cachesize的問題痴昧?
苦惱啊裹匙,繼續(xù)google了一陣爽撒,沒有別的解釋
突然想到鸯乃,難道配置沒有修改成功沛豌,把容器里面的配置文件zabbix-server.conf? ?拷貝出來一看拌滋,發(fā)現(xiàn)果然泣懊,CacheSize? ?配置不見了跟畅,太詭異了棚蓄;
找另外一個(gè)zabbix進(jìn)行測試哟楷,確定這種方式修改配置沒有問題瘤载,那是什么原因呢?
猜想如下:
1卖擅、docker把修改好的配置文件給改了
2鸣奔、其它程序把修改好的配置文件給改了
如何確定了?最好的還是日志惩阶,繼續(xù)向上看日志挎狸,發(fā)現(xiàn)了貓膩,居然每次CacheSize的配置都被update了断楷,難怪沒有用锨匆?到底是誰干的?
經(jīng)過分析發(fā)現(xiàn)容器的入口文件docker-entry.sh有重大嫌疑冬筒,找到對(duì)應(yīng)的文件统刮,果然就是它,為了防止配置被修改账千,它每次都會(huì)檢查侥蒙,而它
執(zhí)行的時(shí)機(jī)是容器啟動(dòng)的時(shí)候,容器一直在restarting匀奏,它就被反復(fù)執(zhí)行鞭衩,也就是說zabbix-server.conf文件一直是它在修改。