云服务一多,日志管理就开始头大。每个服务一堆实例,每个实例一个日志文件,出了问题,你都不知道该去哪找。传统那一套 ssh 上节点看日志的方法,在云上真不太行,费时又危险。ELK这套工具栈,刚好适合应对这种分布式日志混战场景。

Elasticsearch是 ELK 的核心,日志收集到它那,查得快、存得多,还能搞,响应也快。你想按时间、关键词、服务名搜,都没问题,用过一次就知道有多爽。

Logstash是数据大管家,各种格式它都能接,字段提取、清洗、重命名,搞一套流程出来顺手。不过它内存占用还挺高,集群里跑多了有点吃力,所以多人会搭配Filebeat

Filebeat轻巧多了,部署方便,日志文件一改,它立刻推走。它直接把数据丢到 Logstash 或者 Elasticsearch,性能还不错,适合资源紧张的环境,像 K8s 里搞点容器日志,就挺好用。

Kibana负责把日志数据“画”出来,图表、仪表盘、折线图都有,UI 用起来顺手,查日志跟玩一样。还能设告警,比如服务异常、日志暴涨,提前发现问题挺管用。

还有人喜欢用FluentdFluent Bit,内存更省,配置也灵活。尤其是 Fluent Bit,在边缘设备或者容器里,表现挺稳。但要说生态和插件数量,Logstash 还是略胜一筹。

常见架构是:每个节点跑个 Filebeat 或者 Fluentd,日志先收集,再送去 Logstash,统一进 Elasticsearch,Kibana 那边做展示。整套下来,稳定性和扩展性都还不错。

如果你正头疼怎么在 K8s、Docker 这类云环境下管日志,ELK这套还挺值得一试。先用 Filebeat+Elasticsearch+Kibana 试试,简单又高效。