如何将本地 Kubernetes 日志发送到 Stackdriver
Posted
技术标签:
【中文标题】如何将本地 Kubernetes 日志发送到 Stackdriver【英文标题】:How to Send On Premises Kubernetes Logs to Stackdriver 【发布时间】:2019-04-13 10:33:31 【问题描述】:目标:在 Google 上进行一些日志记录/监控 来自 Kuberntes HA 集群的 Stackdriver 即在本地,版本 1.11.2。
我已经能够使用 Fluentd Daemonset for
Kubernetes 将日志发送到 Elasticsearch,但是
项目不支持 Stackdriver
(issue)。
也就是说,有一个为 Stackdriver 创建的 docker 映像
(source),
但它没有守护进程。在此查看其他守护程序集
存储库,不同的fluent.conf
文件之间有相似之处
除了缺少任何内容的 Stackdriver fluent.conf
文件
环境变量。
如GitHub issue 中所述 上面提到有一个插件位于 Kubernetes GitHub here, 但它是遗产。 可以找到文档 here.
它说:
“警告:Stackdriver 日志记录守护进程在 Google Kubernetes Engine 以外的平台。风险自负。”
以这种方式安装失败,没有说明原因。
其他一些注释。有Stackdriver Kubernetes Monitoring 很清楚 状态:
“在任何云或本地轻松上手”
在首页,但是 似乎没有解释如何。这个Stack Overflow question 有人希望将监控添加到他的 AWS 集群。好像还不支持。
此外,在实际的 Google Stackdriver 里面也有说明
“适用于多个云和本地基础架构”。
值得注意的是,我是 Fluentd 和 Google Cloud Platform 的新手,但我很漂亮 熟悉管理本地 Kubernetes 集群。
有没有人能够从另一个平台获得监控或日志记录以在 GCP 上工作?如果是这样,使用了什么方法?
【问题讨论】:
AFAIK 这是官方解决方案:github.com/kubernetes/kubernetes/tree/master/cluster/addons/…。我将专注于弄清楚当您将它安装到集群上时会看到哪些错误 我很害怕。感谢您对编辑的帮助。如果我能够让它工作,我会更新。 【参考方案1】:考虑审查 this documentation 以使用 Google 合作伙伴 Blue Medora 提供的 BindPlane 托管 fluentd 服务。所有 Stackdriver 用户都可以使用 Alpha 版。它将 Kubernetes 日志解析/转发到 Stackdriver,并带有额外的有效负载标记。 免责声明:我受雇于 Blue Medora。
【讨论】:
【参考方案2】:查看提供本地日志功能的新 Stackdriver BindPlane 集成。
它完全由 Google 支持并且是免费的(除了典型的 Stackdriver 消费费用)
https://cloud.google.com/solutions/logging-on-premises-resources-with-stackdriver-and-blue-medora
【讨论】:
以上是关于如何将本地 Kubernetes 日志发送到 Stackdriver的主要内容,如果未能解决你的问题,请参考以下文章
将日志文件写入慢速磁盘或将 Tomcat 访问日志发送到 ElasticSearch?
Kubernetes:通过入口将非 HTTP 请求路由到容器