使用 ElasticSearch 和 Kibana 进行日志管理

    本文介绍了如何设置一个集群,将日志导入 ,并使用 Kibana 查看日志,作为在 GCE 上 运行应用时使用 Stackdriver Logging 管理日志的替代方案。

    要使用 Elasticsearch 和 Kibana 处理集群日志,你应该在使用 kube-up.sh 脚本创建集群时设置下面所示的环境变量:

    你还应该确保设置了 (这是 GCE 平台的默认设置)。

    每个节点的 Fluentd Pod、Elasticsearch Pod 和 Kibana Pod 都应该在集群启动后不久运行在 kube-system 名字空间中。

    fluentd-elasticsearch Pod 从每个节点收集日志并将其发送到 elasticsearch-logging Pod, 该 Pod 是名为 的 的一部分。 这些 ElasticSearch pod 存储日志,并通过 REST API 将其公开。 kibana-logging pod 提供了一个用于读取 ElasticSearch 中存储的日志的 Web UI, 它是名为 kibana-logging 的服务的一部分。

    Elasticsearch 和 Kibana 服务都位于 名字空间中,并且没有通过 可公开访问的 IP 地址直接暴露。要访问它们,请参照 访问集群中运行的服务 的说明进行操作。

    如果你想在浏览器中访问 elasticsearch-logging 服务,你将看到类似下面的状态页面:

    现在你可以直接在浏览器中输入 Elasticsearch 查询,如果你愿意的话。 请参考 以了解这样做的更多细节。

    或者,你可以使用 Kibana 查看集群的日志(再次使用 访问集群中运行的服务的说明)。 第一次访问 Kibana URL 时,将显示一个页面,要求你配置所接收日志的视图。 选择时间序列值的选项,然后选择 @timestamp。 在下面的页面中选择 选项卡,然后你应该能够看到所摄取的日志。 你可以将刷新间隔设置为 5 秒,以便定期刷新日志。

    以下是从 Kibana 查看器中摄取日志的典型视图: