【问题标题】:Add centralized logging to kubernetes cluster that use systemd向使用 systemd 的 Kubernetes 集群添加集中式日志记录
【发布时间】:2019-02-11 06:45:27
【问题描述】:

我正在尝试使用 EFK 将集中式日志记录添加到我的 kubernetes 集群。我发现我从 pod 中写入系统输出的日志存储在我的主节点的日志中。但我想将这些日志存储在 elasticsearch 中。

我可以更改 docker config 以将日志重定向到 var 日志吗?我尽量避免在自定义位置从我的 pod 登录。

或者我可以使用 fluentd 或其他任何东西截取来自 journald 的日志吗?

谢谢

【问题讨论】:

标签: logging kubernetes fluentd


【解决方案1】:

请试试这个link

基本思想是将 Filebeat 作为守护程序集运行,它将从容器收集和发送日志并推送到 Elasticsearch。

【讨论】:

  • 感谢您的回复。如果我从 yaml 文件中正确理解 Filebeat 从“/var/lib/docker/containers/*/*.log”读取日志,我的问题是 docker 不写入文件,而是写入日志。我的问题是如何修改 docker/kubernetes 以记录到文件或如何从日志中捕获日志?
  • 有 2 个选项,1. 您可以检查此 link 以将默认 docker 日志更改回 json-log ,这是从 filebeat 然后拾取并将日志发送到 Elasticsearch 的地方。 2. 使用Journalbeat 一个专门创建的社区节拍,用于将日志从 journald 传送到 Elasticsearch。如果您没有任何特定理由将 docker 日志发送到 journald,我相信第一个选项可能是一种更简单的方法
  • 我尝试添加 daemon.json "log-driver": "json-file",但随后 docker 无法启动“docker.service 的作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status docker.service”和“journalctl -xe”。”我可以弄清楚是什么问题..
  • 请查看 journalctl -xeu docker.service 的详细日志,我认为那里会有更多详细信息。另外请检查您的用户是否具有适当的权限。您是否以 root 身份运行 docker?
  • 感谢您的回复。你帮了我很多,我弄清楚了问题所在。我在机器上安装了旧版本的 docker,我安装了最新的 docker,一切正常。
猜你喜欢
  • 2021-07-16
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多