Tags: k8s環(huán)境下的容器日志收集
K8S環(huán)境下面如何收集應(yīng)用日志
===
在本文中重點講一下K8S容器環(huán)境中如何收集容器的日志;
??在K8S集群中,容器的日志收集方案一般有三種;第一種方案是通過在每一個k8s節(jié)點安裝日志收集客戶端軟件,比如fluentd。這種方案不好的一點是應(yīng)用的日志必須輸出到標(biāo)準(zhǔn)輸出,并且是通過在每一臺計算節(jié)點的/var/log/containers目錄下面的日志文件,這個日志文件的名稱是這種格式user-center-765885677f-j68zt_default_user-center-0867b9c2f8ede64cebeb359dd08a6b05f690d50427aa89f7498597db8944cccc.log,文件名稱有很多隨機字符串,很難和容器里面的應(yīng)用對應(yīng)起來。并且在網(wǎng)上看到別人說這個里面的日志,對于JAVA的報錯內(nèi)容沒有多行合并,不過我還沒有測試過此方案。
??第二種方案就是在應(yīng)用的pods里面在運行一個sidecar container(邊角容器),這個容器會和應(yīng)用的容器掛載同一個volume日志卷。比如這個sidecar容器可以是filebeat或者flunetd等;這種方案不足之處是部署了sidecar , 所以會消耗資源 , 每個pod都要起一個日志收集容器。
??第三種方案就是直接將應(yīng)用的日志收集到kafka,然后通過kafka再發(fā)送到logstash,再處理成json格式的日志發(fā)送到es集群,最后在kibana展示。我實驗的就是這種方案。通過修改logsbak配置文件實現(xiàn)了日志直接發(fā)送到kafka緩存的功能;下面直接看配置了
-
-
[%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
-
${log-path}/${app-name}/${filename}.log
-
/${log-path}/${app-name}/${filename}.%d{yyyy-MM-dd}.%i.log
15
300MB
-
[%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
${log-path}/${app-name}/${filename}-error.log
/${log-path}/${app-name}/${filename}-error.%d{yyyy-MM-dd}.%i.log
300MB
15
[%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
ERROR
ACCEPT
DENY
[%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
elk-stand-sit-fkp-eureka
bootstrap.servers=192.168.1.12:9092,192.168.1.14:9092,192.168.1.15:9092
acks=0
linger.ms=1000
max.block.ms=0
client.id=${HOSTNAME}-${CONTEXT_NAME}-logback-relaxed
block.on.buffer.full=false
###2. 針對logsbak配置說明:###
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
important-logs
0
bootstrap.servers=localhost:9092
buffer.memory=8388608
metadata.fetch.timeout.ms=99999999999
client.id=${HOSTNAME}-${CONTEXT_NAME}-logback-restrictive
compression.type=gzip
通過配置logsbak直接輸出到kafka,并且使用異步模式,就成功的在kibana里面看到了容器的日志了;
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。