第 12 章 日志存储
12.1. 关于日志存储
您可以使用集群中的内部 Loki 或 Elasticsearch 日志存储来存储日志,也可以使用 ClusterLogForwarder
自定义资源(CR) 将日志转发到外部存储。
12.1.1. 日志存储类型
Loki 是一个可横向扩展的、高度可用、多租户日志聚合系统,作为 Red Hat OpenShift 的日志记录的 GA 日志存储,可以使用 OpenShift Observability UI 视觉化。OpenShift Logging 提供的 Loki 配置是一个短期日志存储,旨在让用户使用收集的日志执行快速故障排除。为此,Loki 的 Red Hat OpenShift 配置的日志记录具有短期存储,并针对非常最新的查询进行了优化。对于长期存储或长时间查询,用户应查找其集群外部的日志存储。
Elasticsearch 在 ingestion 过程中完全索引传入的日志记录。Loki 在 ingestion 期间只索引几个固定标签,并延迟更复杂的解析,直到日志存储后为止。这意味着 Loki 可以更快地收集日志。
12.1.1.1. 关于 Elasticsearch 日志存储
日志记录 Elasticsearch 实例经过优化并测试,用于大约 7 天的简短存储。如果要更长时间保留日志,建议您将数据移至第三方存储系统。
Elasticsearch 将日志数据从 Fluentd 整理到数据存储或 索引 中,然后将每个索引分成多个碎片(称为 shard(分片) ),分散到 Elasticsearch 集群中的一组 Elasticsearch 节点上。您可以配置 Elasticsearch 来为分片制作备份(称为 replica(副本) ),Elasticsearch 也会分散到 Elasticsearch 节点上。ClusterLogging
自定义资源(CR)允许您指定如何复制分片,以提供数据冗余和故障恢复能力。您还可以使用 ClusterLogging
CR 中的保留策略来指定不同类型的日志的保留的时长。
索引模板的主分片数量等于 Elasticsearch 数据节点的数目。
Red Hat OpenShift Logging Operator 和相应的 OpenShift Elasticsearch Operator 确保每个 Elasticsearch 节点都使用带有自身存储卷的唯一部署来进行部署。在需要时,可以使用 ClusterLogging
自定义资源(CR)来增加 Elasticsearch 节点的数量。有关配置存储的注意事项,请参阅 Elasticsearch 文档。
高可用性 Elasticsearch 环境需要至少三个 Elasticsearch 节点,各自在不同的主机上。
Elasticsearch 索引中应用的基于角色的访问控制 (RBAC) 可让开发人员控制对日志的访问。管理员可以获取所有日志,开发人员只能访问自己项目中的日志。
12.1.2. 查询日志存储
您可以使用 LogQL 日志查询语言查询 Loki。