A:沒有做過很強(qiáng)的壓力,但是我們現(xiàn)在正常使用倒沒碰上過性能上的瓶頸。我們現(xiàn)在沒有對logger做資源限制,但是能占用300~400M內(nèi)存,因?yàn)橛衛(wèi)ogstash的原因。
Q:「生成日志容器」是指每個(gè)應(yīng)用容器要對應(yīng)一個(gè)日志容器?這樣資源消耗不會更大嗎?k8s那種日志采集性能消耗會比這樣每個(gè)應(yīng)用容器對應(yīng)一個(gè)日志容器高么?
A:是指每個(gè)應(yīng)用容器對應(yīng)一個(gè)日志容器。雖然每個(gè)應(yīng)用有一個(gè)日志容器,但是,日志容器是start once的,不會占用運(yùn)行時(shí)資源。
Q:你說的start once是什么意思?我說占資源是大量日志來的時(shí)候,那么多日志容器要消耗大量io的吧,CPU使用率會上升,不會影響應(yīng)用容器使用CPU么?
A:不會,日志容器只生成一下,不會持續(xù)運(yùn)行。
Q:怎么去監(jiān)聽local volume?
A:可以監(jiān)聽文件目錄,也可以定時(shí)請求docker daemon。
Q:直接用syslog driver,能做到對應(yīng)用無侵入么?
A:啟動(dòng)容器的時(shí)候 注明使用Syslog driver的參數(shù)即可,這樣幾乎沒有額外資源占用。
Q:這種方案是不是要保證應(yīng)用容器日志要輸出到/var/log下啊?
A:不是,可以隨意定義,logstah可以抓syslog。
Q:syslog driver能收集容器內(nèi)的日志文件么?容器內(nèi)不同流向的日志能區(qū)分么?
A:容器內(nèi)應(yīng)用的本地日志syslog可以收集,分流同樣可以完成,但是容器內(nèi)的本地日志這個(gè)我個(gè)人覺得跟容器環(huán)境下的應(yīng)用無本地化、無狀態(tài)化相悖吧。
Q:最后你說到,重新配置logstash中配置文件,看上去感覺你又是通過wiselog這個(gè)容器去采集所有日志的?只不過是動(dòng)態(tài)配置logstash里面參數(shù)。
A:是的,現(xiàn)在收集工作是logstash來完成的,單純的文件收集,可選的方案還挺多的,也沒有必要再造輪子了。
Q:那這個(gè)方案其實(shí)有個(gè)疑問,為什么不學(xué)k8s那種,直接固定那目錄,通過正則表達(dá)式去采集日志文件,而要?jiǎng)討B(tài)這么做?有什么好處嗎?目前我感覺這兩套方案幾乎一樣。
A:為了減少對應(yīng)用的侵入。因?yàn)楹芏嘤脩舻默F(xiàn)有系統(tǒng)不能再修改了,這樣做也是為了減少用戶現(xiàn)有程序的修改,為了最重要的“兼容現(xiàn)有”。
Q:除了kibana還有沒別的可視化方案?
A:針對es來說,還沒有別的更好的方案。
Q:如果是掛載log目錄,logstash就可以去宿主機(jī)收集了,還需要?jiǎng)e的插件做什么?
A:通過容器可以識別出來這個(gè)應(yīng)用的業(yè)務(wù)上的邏輯,可以拿到service名稱。
Q:有的應(yīng)用輸出的log名都是一樣的,不會有沖突嗎,比如我啟動(dòng)2個(gè)容器在一個(gè)宿主機(jī)上,都往xx.log里寫入會有問題。
A:不會,給每一個(gè)應(yīng)用容器配一個(gè)日志卷容器就可以解決這個(gè)問題。這個(gè)問題也是我們出方案時(shí)一個(gè)棘手的問題。所以這個(gè)方案的一個(gè)好處就是,每一個(gè)應(yīng)用的都可以隨意設(shè)置日志目錄,不用考慮和別的應(yīng)用沖突,也不會和同宿主機(jī)同一應(yīng)用沖突。
Q:上次聽別人說全部把日志扔到標(biāo)準(zhǔn)輸出里,不知道靠譜不?
A:有人報(bào)過這種處理方式,日志量大時(shí),docker daemon會崩潰。
2/2 首頁 上一頁 1 2