【问题标题】:ELK to monitor KubernetesELK 监控 Kubernetes
【发布时间】:2019-03-07 06:51:38
【问题描述】:

我有 Kubernetes 集群正在运行,并在不同的机器上创建了 ELK 堆栈。 现在我想将日志从 Kubernetes 集群发送到 ELK,我该如何实现呢? ELK 堆栈位于集群之外。

【问题讨论】:

  • 您可以从容器中复制日志,然后复制到您的 VM。这很容易但很复杂。我建议您可以使用 Azure 文件共享,将卷与它一起保存到您的容器中,然后将其挂载到您的 VM。所以你可以看到你的VM中的文件,不需要复制。
  • 我不能使用任何类型的节拍配置?如果我不熟悉日志记录,请纠正我。
  • 如果你的意思是你的容器的监视器?如果是这样,你可以看看Azure Monitor for containers overview
  • 我们已经有了日志分析和 grafana 仪表板,但是日志生成速度很快,我们打算简化这个过程。
  • 所以你可以改进显示器?你的意思是改变日志存储的地方?

标签: performance azure docker kubernetes elastic-stack


【解决方案1】:

你试过fluentd吗?收集日志并能够将日志发送到 Elastic 搜索的日志记录代理。

更新

我刚刚在kops repo 中找到了一些示例。可以查看here

【讨论】:

  • 如果我在集群内部配置了fluentd,是否需要在集群上安装任何ELK核心组件?
  • 不,fluentd daemonset 将负责将日志发送到弹性搜索。
【解决方案2】:

您可以运行filebeat 从 Kubernetes 收集日志。 按照链接上documentation的说明操作:

下载后kubernetes.yaml更改:

- name: ELASTICSEARCH_HOST
  value: [your elastic search domain]
- name: ELASTICSEARCH_PORT
  value: "9200"
- name: ELASTICSEARCH_USERNAME
  value: elastic
- name: ELASTICSEARCH_PASSWORD
  value: changeme

注意!您需要管理员权限才能创建 filebeat ServiceAccount

【讨论】:

    【解决方案3】:

    我们可以将 EFK 堆栈用于 Kubernetes 日志记录和监控。我们需要一个具备以下能力的 Kubernetes 集群。

    1. 能够运行特权容器。
    2. Helm 和 tiller 已启用。
    3. Statefulsets 和动态卷配置功能:Elasticsearch 作为有状态集部署在 Kubernetes 上。最好使用最新版本的 Kubernetes(撰写本文时为 1.10)

    请参考https://platform9.com/blog/kubernetes-logging-and-monitoring-the-elasticsearch-fluentd-and-kibana-efk-stack-part-2-elasticsearch-configuration/ 获取分步指南。

    【讨论】:

      【解决方案4】:

      您可以使用 Winston 之类的日志记录模块,通过它们提供的插件将日志发送到 Elastic

      设置非常直接和容易

      在我的节点应用程序中,我使用了这个 Winston plugin

      【讨论】:

        猜你喜欢
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-07
        • 1970-01-01
        • 2020-07-23
        相关资源
        最近更新 更多