Kubernetes日志收集的那些套路
- 默認(rèn)方式下容器日志并不會(huì)限制日志文件的大小,容器會(huì)一直寫日志,導(dǎo)致磁盤爆滿,影響系統(tǒng)應(yīng)用。(docker log-driver支持log文件的rotate)
- Docker Daemon收集容器的標(biāo)準(zhǔn)輸出,當(dāng)日志量過大時(shí)會(huì)導(dǎo)致Docker Daemon成為日志收集的瓶頸,日志的收集速度受限。
- 日志文件量過大時(shí),利用docker logs -f查看時(shí)會(huì)直接將Docker Daemon阻塞住,造成docker ps等命令也不響應(yīng)。
log-driver 日志收集速度
syslog 14.9 MB/s
json-file 37.9 MB/s






- 所有應(yīng)用容器都是基于S6基底鏡像的,容器應(yīng)用日志都會(huì)重定向到宿主機(jī)的某個(gè)目錄文件下比如/data/logs/namespace/appname/podname/log/xxxx.log
- log-agent內(nèi)部包含F(xiàn)ilebeat,Logrotate等工具,其中Filebeat是作為日志文件收集的agent
- 通過Filebeat將收集的日志發(fā)送到Kafka
- Kafka在講日志發(fā)送的ES日志存儲(chǔ)/kibana檢索層
- Logstash作為中間工具主要用來在ES中創(chuàng)建index和消費(fèi)Kafka的消息
- 用戶部署的新應(yīng)用,如何動(dòng)態(tài)更新Filebeat配置
- 如何保證每個(gè)日志文件都被正常的rotate
- 如果需要更多的功能則需要二次開發(fā)Filebeat,使Filebeat支持更多的自定義配置

- https://docs.docker.com/v17.09/engine/admin/logging/overview/
- http://skarnet.org/software/s6/
文章轉(zhuǎn)載:?分布式實(shí)驗(yàn)室
(版權(quán)歸原作者所有,侵刪)