【问题标题】:how to force all kubernetes services (proxy, kublet, apiserver..., containers) to write logs to /var/logs如何强制所有 kubernetes 服务(代理、kublet、apiserver...、容器)将日志写入 /var/logs
【发布时间】:2021-10-02 13:37:11
【问题描述】:

如何强制所有 kubernetes 服务(proxy、kublet、apiserver...、容器)写入日志到/var/logs

例如:

/var/logs/apiServer.log

或:

/var/logs/proxy.log

我可以使用syslog 配置来做到这一点吗?该配置的示例是什么?

我已经试过journald配置forward to syslogs=yes

【问题讨论】:

    标签: kubernetes logging syslog


    【解决方案1】:
    1. 首先想到的是 - 创建一个边车容器,它将所有日志收集到一个地方。

    2. The Complete Guide to Kubernetes Logging.

    这是一个相当广泛的问题,应该分成几个部分。 Kubernetes 将不同类型的日志存储在不同的地方。

    • Kubernetes 容器日志(不在这个问题中,但只是 kubectl logs <podname> + -n 用于命名空间,如果它不是默认值 + -c 用于在 pod 内指定容器)

    • Kubernetes 节点日志

    • Kubernetes 集群日志


    Kubernetes 节点日志

    根据您的操作系统和服务,有多种 您可以收集的节点级日志,例如内核日志或 systemd 日志。

    在带有 systemd 的节点上,kubelet 和容器运行时都写入 日记。如果 systemd 不存在,它们将写入 .log 文件中的 /var/log 目录。

    您可以使用 journalctl 命令访问 systemd 日志。

    Tutorial: Logging with journald 有一个巨大的解释,你如何配置 journalctl 来收集日志。有像 ELK 这样的聚合日志工具,没有它们。 journald log filtering 可以简化你的生活。

    有两种通过 syslog 集中日志条目的方法:

    1. syslog 守护进程充当 journald 客户端(如 journalctl 或 Logstash 或 Journalbeat)
    2. journald 将消息转发到系统日志(通过套接字)

    选项 1) 较慢 - 从日志读取比从套接字读取慢 - 但会捕获日志中的所有字段。

    选项 2) 更安全(例如,没有日志损坏问题),但日志只会转发传统的系统日志字段(如严重性、主机名、消息..)

    /etc/systemd/journald.conf 中谈论ForwardToSyslog=yes --> 它将以系统日志格式向/run/systemd/journal/syslog 写入消息。例如,您可以将此文件传递给rsyslog。您可以手动处理日志或将它们移动到所需的位置..


    Kubernetes 集群日志

    默认情况下,容器外的系统组件将文件写入 journald,而在容器中运行的组件写入 /var/log 目录。但是,可以选择将容器引擎配置为将日志流式传输到首选位置。

    Kubernetes 不提供用于集群级别日志记录的本机解决方案。但是,您还可以使用其他方法:

    • 使用在每个节点上运行的节点级日志记录代理

    • 在应用程序 pod 中添加一个用于日志记录的 sidecar 容器

    • 直接从应用程序公开日志。


    附:我尝试过以下方法,但它看起来很有希望 - 检查一下,也许它会帮助您完成最不简单的任务。

    设置节点级日志记录代理的最简单方法是 配置一个 DaemonSet 在每个节点上运行代理

    helm install --name st-agent \
      --set infraToken=xxxx-xxxx \
      --set containerToken=xxxx-xxxx \
      --set logsToken=xxxx-xxxx \
      --set region=US \
      stable/sematext-agent
    

    默认情况下,此设置会将所有集群和容器日志发送到 便于管理和故障排除的中心位置。带着小小的 一点添加的配置,你可以配置它来收集节点级别 日志和审计日志。

    【讨论】:

      猜你喜欢
      • 2021-08-28
      • 2017-01-18
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多