自荐一个 Kubernetes 的日志采集软件:envlog

https://github.com/zhangrr/envlog

软件最大优势

采集容器内自定义文件

  • 阿里的SLS有个最大的优势,可以在Deployment中宣告pod容器内的文件路径,然后就会自动采集。
  • Docker引擎可以很容易搜索pod路径,Containerd做起来比较费劲。
  • 但这也是最吸引人的特性,如果只采集stdout,那随便什么软件loki、filebeat都可以,就没什么吸引力。
  • 这个困扰了我很多年,终于在AI的加持下实现了:

例如我们要采集 Pod 内的文件 /tmp/logtest.log

    - env:
      - name: envlog_ngtest
        value: "/tmp/logtest.log"

该模式会尝试将容器内路径映射到宿主机路径(优先使用 volume mount,其次使用容器 overlay upperdir),并生成对应的 Filebeat paths。 然后发往ES、Kafka比较好,本软件优化了ES的字段,去掉了多余的字段,也便于阅读。 这也是本软件最大的特色!

然后我们去ES的Kibana面板,Management –> Stack Management

建立Index Patterns

image-20260214092942892

然后去 Analytics –> Discover

就可以看到日志的详细内容了:

字段做了优化,不需要的字段统统都舍弃了,保留了必要的字段和日志的详细内容。

image-20260214093107822