日志记录

OpenShift Container Platform 4.10

OpenShift Logging 安装、使用和发行注记

Red Hat OpenShift Documentation Team

摘要

本文档提供有关安装、配置和使用 OpenShift Logging 的说明,该 Logging 将汇总多个 OpenShift Container Platform 服务的日志。

第 1 章 Logging 发行注记

注意

Red Hat OpenShift 的日志记录子系统作为一个可安装的组件提供,它与核心 OpenShift Container Platform 不同的发行周期不同。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。

注意

stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-X,其中 X 是您安装的日志记录版本。

1.1. Logging 5.6.11

此发行版本包括 OpenShift Logging 程序错误修复 5.6.11

1.1.1. 程序错误修复

  • 在此次更新之前,LokiStack 网关会广泛缓存授权请求。因此,这会导致错误的授权结果。在这个版本中,Loki 网关缓存以更精细的方式缓存来解决这个问题。(LOG-4435)

1.1.2. CVE

1.2. Logging 5.6.9

此发行版本包括 OpenShift Logging 程序错误修复 5.6.9

1.2.1. 程序错误修复

  • 在此次更新之前,当使用多个角色使用带有 AWS Cloudwatch 转发的 STS 进行身份验证时,最近更新会导致凭证不是唯一的。在这个版本中,STS 角色和静态凭证的多个组合可以再次用于与 AWS Cloudwatch 进行身份验证。(LOG-4084)
  • 在此次更新之前,向量收集器偶尔会在日志中出现以下错误信息:thread 'vector-worker' panicked at 'all branch are disabled, no else branch', src/kubernetes/reflector.rs:26:9。在这个版本中,这个错误已解决。(LOG-4276)
  • 在此次更新之前,Loki 为活跃流过滤标签值,但没有删除重复,使 Grafana 的标签浏览器不可用。在这个版本中,Loki 会过滤活跃流的重复标签值,从而解决了这个问题。(LOG-4390)

1.2.2. CVE

1.3. Logging 5.6.8

此发行版本包括 OpenShift Logging 程序错误修复 5.6.8

1.3.1. 程序错误修复

  • 在此次更新之前,当输入匹配标签值包含 ClusterLogForwarder 中的 / 字符时,向量收集器意外终止。在这个版本中,通过引用 match 标签解决了这个问题,使收集器能够启动和收集日志。(LOG-4091)
  • 在此次更新之前,当在 OpenShift Container Platform Web 控制台中查看日志时,点更多数据可用选项仅在第一次点击时加载更多日志条目。在这个版本中,每次点击时会加载更多条目。(OU-187)
  • 在此次更新之前,当在 OpenShift Container Platform Web 控制台中查看日志时,点 streaming 选项只显示 流传输 日志消息,而无需显示实际日志。在这个版本中,消息和日志流都会正确显示。(OU-189)
  • 在此次更新之前,Loki Operator 会重置错误,导致识别配置问题很难排除故障。在这个版本中,错误会保留,直到配置错误解决为止。(LOG-4158)
  • 在此次更新之前,具有超过 8,000 个命名空间的集群会导致 Elasticsearch 拒绝查询,因为命名空间列表大于 http.max_header_size 设置。在这个版本中,标头大小的默认值有所增加,从而解决了这个问题。(LOG-4278)

1.3.2. CVE

1.4. Logging 5.6.7

此发行版本包括 OpenShift Logging 程序错误修复 5.6.7

1.4.1. 程序错误修复

  • 在此次更新之前,LokiStack 网关返回命名空间的标签值,而无需应用用户的访问权限。在这个版本中,Loki 网关应用标签值请求的权限,从而解决了这个问题。(LOG-3728)
  • 在此次更新之前,当消息包含时间戳时,日志消息的 time 字段不会默认解析为 Fluentd 中的 structured.time。在这个版本中,如果输出目的地支持,解析的日志消息将包含一个 structured.time 字段。(LOG-4090)
  • 在此次更新之前,LokiStack 路由配置会导致查询运行时间超过 30 秒。在这个版本中,Loki global 和 per-tenant queryTimeout 设置会影响路由超时设置,从而解决了这个问题。(LOG-4130)
  • 在此次更新之前,带有为租户限制定义的值的 LokiStack CR,但没有全局限制会导致 Loki Operator 崩溃。在这个版本中,Operator 可以处理仅定义租户限制的 LokiStack CR,从而解决了这个问题。(LOG-4199)
  • 在此次更新之前,OpenShift Container Platform Web 控制台会在升级后生成错误,因为 web 浏览器保留了之前版本的缓存文件。在这个版本中,这些文件不再被缓存,从而解决了这个问题。(LOG-4099)
  • 在此次更新之前,Vector 在转发到默认 Loki 实例时会生成证书错误。在这个版本中,可以使用 Vector 将日志在没有错误的情况下转发到 Loki。(LOG-4184)
  • 在此次更新之前,当 tls.insecureSkipVerify 选项被设置为 true 时,Cluster Logging Operator API 需要一个由 secret 提供的证书。在这个版本中,Cluster Logging Operator API 不再需要在这样的情形中由 secret 提供证书。以下配置已添加到 Operator 的 CR 中:

    tls.verify_certificate = false
    tls.verify_hostname = false

    (LOG-4146)

1.4.2. CVE

1.5. Logging 5.6.6

此发行版本包括 OpenShift Logging 程序错误修复 5.6.6

1.5.1. 程序错误修复

  • 在此次更新之前,在将 ClusterLogForwarder 自定义资源配置为写入与有效负载中键匹配的 Kafka 输出主题时,会丢弃信息,因为出现错误。在这个版本中,这个问题已通过在 Fluentd 的缓冲名称前添加一个下划线前缀来解决。(LOG-3458)
  • 在此次更新之前,当内节点被重复使用并且有多个具有相同内节点的条目时,Fluentd 中会出现监控被提早关闭的问题。在这个版本中,在 Fluentd 位置文件中提早关闭监控的问题已解决。(LOG-3629)
  • 在此次更新之前,Fluentd 的 JavaScript 客户端多行异常的检测会失败,从而导致它们以多行打印。在这个版本中,例外会以一行输出,从而解决了这个问题。(LOG-3761)
  • 在此次更新之前,从 Red Hat Openshift Logging Operator 版本 4.6 直接升级到 5.6 版本,从而导致功能问题。在这个版本中,升级范围被限制在两个版本内,从而解决了这个问题。(LOG-3837)
  • 在此次更新之前,Splun 或 Google Logging 输出不会显示指标。在这个版本中,这个问题已通过为 HTTP 端点发送指标来解决。(LOG-3932)
  • 在此次更新之前,当 ClusterLogForwarder 自定义资源被删除时,收集器 Pod 会继续运行。在这个版本中,在不启用日志转发时,收集器 Pod 不会运行。(LOG-4030)
  • 在此次更新之前,无法通过点击并在日志直方图上拖动,在 OpenShift Container Platform Web 控制台中选择时间范围。在这个版本中,可以使用单击和拖动来成功选择时间范围。(LOG-4101)
  • 在此次更新之前,监视文件的 Fluentd 哈希值是使用对日志文件的路径生成的,从而导致日志轮转时没有唯一的哈希值。在这个版本中,监视文件的哈希值使用内节点号创建,从而解决了这个问题。(LOG-3633)
  • 在此次更新之前,点 OpenShift Container Platform Web 控制台中的 Show Resources 链接不会产生任何影响。在这个版本中,通过修复 Show Resources 链接的功能来解决这个问题,以切换每个日志条目的资源显示。(LOG-4118)

1.5.2. CVE

1.6. Logging 5.6.5

此发行版本包括 OpenShift Logging 程序错误修复 5.6.5

1.6.1. 程序错误修复

  • 在此次更新之前,模板定义会阻止 Elasticsearch 索引一些标签和 namespace_labels,从而导致数据 ingestion 出现问题。在这个版本中,修复替换了标签中的点和斜杠,以确保正确修正、有效地解决问题。(LOG-3419)
  • 在此次更新之前,如果 OpenShift Web 控制台的 Logs 页面无法连接到 LokiStack,则会显示通用错误消息,从而不提供额外的上下文或故障排除建议。在这个版本中,错误消息已被改进,使其包含更具体的故障排除详情和建议。(LOG-3750)
  • 在此次更新之前,时间范围格式不会被验证,从而导致选择自定义日期范围的错误。在这个版本中,时间格式会被验证,允许用户选择有效的范围。如果选择了无效的时间范围格式,则会向用户显示错误消息。(LOG-3583)
  • 在此次更新之前,当在 Loki 中搜索日志时,即使表达式的长度不超过 5120 个字符,查询也会在很多情况下失败。在这个版本中,查询授权标签匹配程序已被优化,从而解决了这个问题。(LOG-3480)
  • 在此次更新之前,Loki Operator 无法生成一个 memberlist 配置,该配置足以在使用 memberlist 进行私有 IP 时查找所有组件。在这个版本中,确保生成的配置包含公告的端口,从而成功查找所有组件。(LOG-4008)

1.6.2. CVE

1.7. Logging 5.6.4

此发行版本包括 OpenShift Logging 程序错误修复 5.6.4

1.7.1. 程序错误修复

  • 在此次更新之前,当 LokiStack 部署为日志存储时,Loki pod 生成的日志会被收集并发送到 LokiStack。在这个版本中,Loki 生成的日志不包括在集合中,不会存储。(LOG-3280)
  • 在此次更新之前,当 OpenShift Web 控制台的 Logs 页面中的查询编辑器为空时,下拉菜单不会被填充。在这个版本中,如果尝试空查询,会显示错误消息,且下拉菜单现在会如预期填充。(LOG-3454)
  • 在此次更新之前,当 tls.insecureSkipVerify 选项被设置为 true 时,Cluster Logging Operator 会生成不正确的配置。因此,当尝试跳过证书验证时,Operator 无法将数据发送到 Elasticsearch。在这个版本中,Cluster Logging Operator 会生成正确的 TLS 配置,即使启用了 tls.insecureSkipVerify。因此,即使尝试跳过证书验证,数据也可以成功发送到 Elasticsearch。(LOG-3475)
  • 在此次更新之前,当启用结构化解析且消息转发到多个目的地时,它们不会被深度复制。这会导致一些接收的日志,包括结构化消息,而其他日志则没有。在这个版本中,在 JSON 解析前,配置生成已被修改为深度复制信息。因此,所有收到的消息现在都包含结构化消息,即使它们被转发到多个目的地。(LOG-3640)
  • 在此次更新之前,如果 collection 字段包含 {},可能会导致 Operator 崩溃。在这个版本中,Operator 将忽略这个值,允许 Operator 在不中断的情况下平稳运行。(LOG-3733)
  • 在此次更新之前,LokiiHost 的 Gateway 组件的 nodeSelector 属性没有任何效果。在这个版本中,nodeSelector 属性可以正常工作。(LOG-3783)
  • 在此次更新之前,静态 LokiStack memberlist 配置只依赖于私有 IP 网络。因此,当 OpenShift Container Platform 集群 pod 网络配置了公共 IP 范围时,Lokiition pod 会出现 crashloop。在这个版本中,Loki 管理员可以选择将 pod 网络用于 memberlist 配置。这解决了这个问题,并防止 LokiStack pod 在 OpenShift Container Platform 集群 pod 网络配置了公共 IP 范围时进入 crashloop 状态。(LOG-3814)
  • 在此次更新之前,如果 tls.insecureSkipVerify 字段设置为 true,Cluster Logging Operator 会生成不正确的配置。因此,当尝试跳过证书验证时,Operator 无法将数据发送到 Elasticsearch。在这个版本中,即使启用了 tls.insecureSkipVerify,Operator 也会生成正确的 TLS 配置。因此,即使尝试跳过证书验证,数据也可以成功发送到 Elasticsearch。(LOG-3838)
  • 在此次更新之前,如果 Cluster Logging Operator (CLO) 安装没有 Elasticsearch Operator,则 CLO pod 会持续显示与删除 Elasticsearch 相关的错误消息。在这个版本中,CLO 在显示任何错误消息前执行额外的检查。因此,没有 Elasticsearch Operator 时不再显示与 Elasticsearch 删除相关的错误消息。(LOG-3763)

1.7.2. CVE

1.8. Logging 5.6.3

此发行版本包括 OpenShift Logging 程序错误修复 5.6.3

1.8.1. 程序错误修复

  • 在此次更新之前,Operator 将网关租户 secret 信息存储在配置映射中。在这个版本中,Operator 将此信息存储在 secret 中。(LOG-3717)
  • 在此次更新之前,Fluentd 收集器不会捕获存储在 /var/log/auth-server/audit.log 中的 OAuth 登录事件。在这个版本中,Fluentd 会捕获这些 OAuth 登录事件,从而解决了这个问题。(LOG-3729)

1.8.2. CVE

1.9. 日志记录 5.6.2

此发行版本包括 OpenShift Logging 程序错误修复 5.6.2

1.9.1. 程序错误修复

  • 在此次更新之前,收集器没有根据 systemd 日志的优先级正确设置 level 字段。在这个版本中,level 字段会被正确设置。(LOG-3429)
  • 在此次更新之前,Operator 会错误地在 OpenShift Container Platform 4.12 或更高版本上生成不兼容警告。在这个版本中,Operator 最大 OpenShift Container Platform 版本值已被修正,从而解决了这个问题。(LOG-3584)
  • 在此次更新之前,创建一个带有 default 值的 ClusterLogForwarder 自定义资源(CR)不会生成任何错误。在这个版本中,这个值无效生成的错误警告。(LOG-3437)
  • 在此次更新之前,当 ClusterLogForwarder 自定义资源 (CR) 配置了多个管道时,会将一个输出设置为默认,收集器 Pod 会重启。在这个版本中,输出验证的逻辑已被修正,从而解决了这个问题。(LOG-3559)
  • 在此次更新之前,收集器 Pod 在创建后会重启。在这个版本中,部署的收集器不会自行重启。(LOG-3608)
  • 在此次更新之前,补丁版本会从目录中删除了 Operator 的早期版本。这使得无法安装旧版本。这个版本更改了捆绑包配置,以便以前的同一次版本的发行版本保留在目录中。(LOG-3635)

1.9.2. CVE

1.10. Logging 5.6.1

此发行版本包括 OpenShift Logging 程序错误修复 5.6.1

1.10.1. 程序错误修复

  • 在此次更新之前,紧凑器会在保留活跃时报告 TLS 证书错误与 querier 通信。在这个版本中,紧凑器和 querier 不再通过 HTTP 进行通信。(LOG-3494)
  • 在此次更新之前,Loki Operator 不会重试设置 LokiStack CR 的状态,这会导致过时的状态信息。在这个版本中,Operator 会重试冲突的状态信息更新。(LOG-3496)
  • 在此次更新之前,当 kube-apiserver-operator Operator 检查 Webhook 的有效性时,Loki Operator Webhook 服务器会导致 TLS 错误。在这个版本中,Loki Operator Webhook PKI 由 Operator Lifecycle Manager (OLM) 管理,从而解决了这个问题。(LOG-3510)
  • 在此次更新之前,LokiStack Gateway Labels Enforcer 会在使用带有布尔值表达式的组合标签过滤器时为有效的 LogQL 查询生成解析错误。在这个版本中,LokiStack LogQL 实现支持带有布尔值表达式的标签过滤器,并解决这个问题。(LOG-3441),(LOG-3397)
  • 在此次更新之前,如果多个标签键具有相同的前缀,一些键包含点,则写入 Elasticsearch 的记录将失败。在这个版本中,下划线替换标签键中的点,从而解决了这个问题。(LOG-3463)
  • 在此次更新之前,因为 OpenShift Container Platform 控制台和 logging-view-plugin 之间的不兼容,Red Hat OpenShift Logging Operator 不适用于 OpenShift Container Platform 4.10 集群。在这个版本中,插件可以与 OpenShift Container Platform 4.10 管理控制台正确集成。(LOG-3447)
  • 在此次更新之前,ClusterLogForwarder 自定义资源的协调会错误地报告引用默认日志存储的管道的降级状态。在这个版本中,管道会正确验证。(LOG-3477)

1.10.2. CVE

1.11. Logging 5.6

此版本包括 OpenShift Logging Release 5.6

1.11.1. 弃用通知

在 Logging 5.6 中,Fluentd 已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为 fluentd 的替代选择,您可以使用 Vector。

1.11.2. 功能增强

  • 在这个版本中,日志记录与 OpenShift Container Platform 集群范围的加密策略兼容。(LOG-895)
  • 在这个版本中,您可以通过 LokiStack 自定义资源(按优先级排序)来为每个租户、每个流和全局策略保留策略声明。(LOG-2695)
  • 在这个版本中,Splun 是日志转发的可用输出选项。(LOG-2913)
  • 在这个版本中,Vector 替换了 Fluentd 作为默认的 Collector。(LOG-2222)
  • 在这个版本中,Developer 角色可以访问在运行 OpenShift Container Platform 4.11 及更高版本的集群中将其分配到的 Log Console Plugin 中的每个项目工作负载日志。(LOG-3388)
  • 在这个版本中,任何源的日志包含一个字段 openshift.cluster_id,它是部署 Operator 的集群的唯一标识符。您可以使用以下命令查看 clusterID 值。(LOG-2715)
$ oc get clusterversion/version -o jsonpath='{.spec.clusterID}{"\n"}'

1.11.3. 已知问题

  • 在此次更新之前,如果多个标签键具有相同的前缀,并且一些键包含 . 字符,则 Elasticsearch 将拒绝日志。这通过将标签键中的 . 替换为 _ 来解决 Elasticsearch 的限制。这个问题的一个临时解决方案是删除导致错误的标签,或向标签添加一个命名空间。(LOG-3463)

1.11.4. 程序错误修复

  • 在此次更新之前,如果您删除了 Kibana 自定义资源,OpenShift Container Platform Web 控制台将继续显示到 Kibana 的链接。在这个版本中,删除 Kibana 自定义资源也会删除该链接。(LOG-2993)
  • 在此次更新之前,用户无法查看其有权访问的命名空间的应用程序日志。在这个版本中,Loki Operator 会自动创建一个集群角色和集群角色绑定,允许用户读取应用程序日志。(LOG-3072)
  • 在此次更新之前,Operator 在使用 LokiStack 作为默认日志存储时删除了 ClusterLogForwarder 自定义资源中定义的任何自定义输出。在这个版本中,Operator 会在处理 ClusterLogForwarder 自定义资源时将自定义输出与默认输出合并。(LOG-3090)
  • 在此次更新之前,CA 密钥用作将 CA 挂载到 Loki 的卷名称,从而导致 CA Key 包含非格式字符(如点)时出现错误状态。在这个版本中,卷名称标准化为一个内部字符串,用于解决这个问题。(LOG-3331)
  • 在此次更新之前,在 LokiStack 自定义资源定义中设置的默认值,会导致无法创建 LokiStack 实例,而无需 ReplicationFactor1。在这个版本中,Operator 为使用的大小设置实际值。(LOG-3296)
  • 在此次更新之前,当启用 JSON 解析时向量解析消息字段,而不定义 structuredTypeKeystructuredTypeName 值。在这个版本中,在将结构化日志写入 Elasticsearch 时,structuredTypeKeystructuredTypeName 所需的值。(LOG-3195)
  • 在此次更新之前,Elasticsearch Operator 的 secret 创建组件会持续修改的内部 secret。在这个版本中,现有 secret 会被正确处理。(LOG-3161)
  • 在此次更新之前,Operator 可以在 Elasticsearch 或 Kibana 部署改变状态时,输入删除和重新创建收集器 daemonset 的循环。在这个版本中,Operator 状态处理中会解决这个问题。(LOG-3157)
  • 在此次更新之前,Kibana 有一个固定的 24h OAuth cookie 过期时间,当 accessTokenInactivityTimeout 字段被设置为小于 24h 的值时,会导致 Kibana 中的 401 错误。在这个版本中,Kibana 的 OAuth cookie 过期时间与 accessTokenInactivityTimeout 同步,默认值为 24h。(LOG-3129)
  • 在此次更新之前,协调资源的 Operator 常规模式是在尝试获取或更新前尝试和创建,这会导致创建后持续的 HTTP 409 响应。在这个版本中,Operator 会首先尝试检索对象,仅在缺少或未指定对象时创建或更新它。(LOG-2919)
  • 在此次更新之前,Fluentd 中的 .level 和'.structure.level 字段可能包含不同的值。在这个版本中,每个字段的值都相同。(LOG-2819)
  • 在此次更新之前,Operator 不会等待可信 CA 捆绑包填充,并在更新捆绑包后再次部署收集器。在这个版本中,Operator 会在继续收集器部署前,等待简要查看捆绑包是否已填充。(LOG-2789)
  • 在此次更新之前,日志记录遥测信息在检查指标时会出现两次。在这个版本中,日志记录遥测信息会如预期显示。(LOG-2315)
  • 在此次更新之前,Fluentd pod 日志会在启用 JSON 解析添加后包含警告信息。在这个版本中,不会显示警告信息。(LOG-1806)
  • 在此次更新之前,must-gather 脚本无法完成,因为 oc 需要具有写入权限的文件夹来构建其缓存。在这个版本中,oc 对文件夹有写入权限,must-gather 脚本可以成功完成。(LOG-3446)
  • 在此次更新之前,日志收集器 SCC 可以替换为集群上的其他 SCC,从而导致收集器不可用。在这个版本中,设置日志收集器 SCC 的优先级,使其优先于其他 SCC。(LOG-3235)
  • 在此次更新之前,向量缺少字段 sequence,它被添加到 fluentd 中,作为处理缺少实际纳秒精度的方法。在这个版本中,字段 openshift.sequence 已添加到事件日志中。(LOG-3106)

1.11.5. CVE

1.12. Logging 5.5.16

此发行版本包括 OpenShift Logging 程序错误修复 5.5.16

1.12.1. 程序错误修复

  • 在此次更新之前,LokiStack 网关会广泛缓存授权请求。因此,这会导致错误的授权结果。在这个版本中,Loki 网关缓存以更精细的方式缓存来解决这个问题。(LOG-4434)

1.12.2. CVE

1.13. Logging 5.5.14

此发行版本包括 OpenShift Logging 程序错误修复 5.5.14

1.13.1. 程序错误修复

  • 在此次更新之前,向量收集器偶尔会在日志中出现以下错误信息:thread 'vector-worker' panicked at 'all branch are disabled, no else branch', src/kubernetes/reflector.rs:26:9。在这个版本中,这个错误已解决。(LOG-4279)

1.13.2. CVE

1.14. Logging 5.5.13

此发行版本包括 OpenShift Logging 程序错误修复 5.5.13

1.14.1. 程序错误修复

无。

1.14.2. CVE

1.15. Logging 5.5.11

此发行版本包括 OpenShift Logging 程序错误修复 5.5.11

1.15.1. 程序错误修复

  • 在此次更新之前,无法通过点击并在日志直方图上拖动,在 OpenShift Container Platform Web 控制台中选择时间范围。在这个版本中,可以使用单击和拖动来成功选择时间范围。(LOG-4102)
  • 在此次更新之前,点 OpenShift Container Platform Web 控制台中的 Show Resources 链接不会产生任何影响。在这个版本中,通过修复 Show Resources 链接的功能来解决这个问题,以切换每个日志条目的资源显示。(LOG-4117)

1.15.2. CVE

1.16. Logging 5.5.10

此发行版本包括 OpenShift Logging 程序错误修复 5.5.10

1.16.1. 程序错误修复

  • 在此次更新之前,OpenShift Web 控制台的日志记录视图插件在 LokiStack 无法访问时只显示一个错误文本。在这个版本中,插件会显示正确的错误消息,其中包含如何修复不可访问 LokiStack 的详细信息。(LOG-2874)

1.16.2. CVE

1.17. Logging 5.5.9

此发行版本包括 OpenShift Logging 程序错误修复 5.5.9

1.17.1. 程序错误修复

  • 在此次更新之前,Fluentd 收集器的问题会导致它不会捕获存储在 /var/log/auth-server/audit.log 中的 OAuth 登录事件。这会导致 OAuth 服务中的登录事件集合不完整。在这个版本中,Fluentd 收集器通过从 OAuth 服务捕获所有登录事件来解决这个问题,包括存储在 /var/log/auth-server/audit.log 中的登录事件。(LOG-3730)
  • 在此次更新之前,当启用结构化解析且消息转发到多个目的地时,它们不会被深度复制。这会导致一些接收的日志,包括结构化消息,而其他日志则没有。在这个版本中,在 JSON 解析前,配置生成已被修改为深度复制信息。因此,所有收到的日志现在都包含结构化消息,即使它们被转发到多个目的地。(LOG-3767)

1.17.2. CVE

1.18. Logging 5.5.8

此发行版本包括 OpenShift Logging 程序错误修复 5.5.8

1.18.1. 程序错误修复

  • 在此次更新之前,systemd 日志中缺少 priority 字段,因为收集器如何设置 level 字段出错。在这个版本中,这些字段会被正确设置,从而解决了这个问题。(LOG-3630)

1.18.2. CVE

1.19. Logging 5.5.7

此发行版本包括 OpenShift Logging 程序错误修复 5.5.7

1.19.1. 程序错误修复

  • 在此次更新之前,LokiStack Gateway Labels Enforcer 会在使用带有布尔值表达式的组合标签过滤器时为有效的 LogQL 查询生成解析错误。在这个版本中,LokiStack LogQL 实现支持带有布尔值表达式的标签过滤器,并解决这个问题。(LOG-3534)
  • 在此次更新之前,ClusterLogForwarder 自定义资源(CR)不会将 syslog 输出的 TLS 凭证传递给 Fluentd,从而导致转发过程中出现错误。在这个版本中,凭证可以正确地传递给 Fluentd,从而解决了这个问题。(LOG-3533)

1.19.2. CVE

CVE-2021-46848CVE-2022-3821CVE-2022-35737CVE-2022-42010CVE-2022-42011CVE-2022-42012CVE-2022-42898CVE-2022-43680

1.20. Logging 5.5.6

此发行版本包括 OpenShift Logging 程序错误修复 5.5.6

1.20.1. 程序错误修复

  • 在此次更新之前,Pod 安全准入控制器会将标签 podSecurityLabelSync = true 添加到 openshift-logging 命名空间中。这会导致我们指定的安全标签被覆盖,因此 Collector pod 不会启动。在这个版本中,标签 podSecurityLabelSync = false 可保留安全标签。收集器 Pod 按预期部署。(LOG-3340)
  • 在此次更新之前,Operator 会安装 console 视图插件,即使在集群中没有启用它。这会导致 Operator 崩溃。在这个版本中,如果集群的帐户没有启用 console 视图,Operator 会正常运行,且不会安装 console 视图。(LOG-3407)
  • 在此次更新之前,以前的一个用于支持部署没有被更新时进行回归的修复会导致 Operator 崩溃,除非部署了 Red Hat Elasticsearch Operator。在这个版本中,这个问题已被恢复,Operator 现在会稳定,但重新引入了以前的与报告状态相关的问题。(LOG-3428)
  • 在此次更新之前,Loki Operator 只部署 LokiStack 网关的一个副本,而不考虑所选的堆栈大小。在这个版本中,根据所选大小正确配置副本数。(LOG-3478)
  • 在此次更新之前,如果多个标签键具有相同的前缀,一些键包含点,则写入 Elasticsearch 的记录将失败。在这个版本中,下划线替换标签键中的点,从而解决了这个问题。(LOG-3341)
  • 在此次更新之前,日志记录视图插件包含与特定版本的 OpenShift Container Platform 不兼容的功能。在这个版本中,插件的正确发行版本流可以解决这个问题。(LOG-3467)
  • 在此次更新之前,ClusterLogForwarder 自定义资源的协调会错误地报告一个或多个管道的降级状态,从而导致收集器 pod 每 8-10 秒重启。在这个版本中,ClusterLogForwarder 自定义资源进程的协调可以正确地解决这个问题。(LOG-3469)
  • 在此更改 ClusterLogForwarder 自定义资源的 outputDefaults 字段的 spec 之前,会将设置应用到每个声明的 Elasticsearch 输出类型。这会变化可以更正行为,使其与设置专门用于默认受管 Elasticsearch 存储的增强规格匹配。(LOG-3342)
  • 在此次更新之前,OpenShift CLI (oc) must-gather 脚本没有完成,因为 OpenShift CLI (oc)需要一个具有写入权限来构建其缓存的文件夹。在这个版本中,OpenShift CLI (oc) 对文件夹有写入权限,must-gather 脚本可以成功完成。(LOG-3472)
  • 在此次更新之前,Loki Operator Webhook 服务器会导致 TLS 错误。在这个版本中,Loki Operator Webhook PKI 由 Operator Lifecycle Manager 的动态 webhook 管理来管理,从而解决了这个问题。(LOG-3511)

1.20.2. CVE

1.21. Logging 5.5.5

此发行版本包括 OpenShift Logging 程序错误修复 5.5.5

1.21.1. 程序错误修复

  • 在此次更新之前,Kibana 有一个固定的 24h OAuth cookie 过期时间,当 accessTokenInactivityTimeout 字段被设置为小于 24h 的值时,会导致 Kibana 中的 401 错误。在这个版本中,Kibana 的 OAuth cookie 过期时间与 accessTokenInactivityTimeout 同步,默认值为 24h。(LOG-3305)
  • 在此次更新之前,当启用 JSON 解析时向量解析消息字段,而不定义 structuredTypeKeystructuredTypeName 值。在这个版本中,在将结构化日志写入 Elasticsearch 时,structuredTypeKeystructuredTypeName 所需的值。(LOG-3284)
  • 在此次更新之前,当出现从此警报表达式返回的一组标签时,FluentdQueueLengthIncreasing 警报可能无法触发。在这个版本中,减少了标签,使其只包含警报所需的标签。(LOG-3226)
  • 在此次更新之前,Loki 不支持连接到断开连接的集群中的外部存储。在这个版本中,容器镜像中包含代理环境变量和代理可信 CA 捆绑包来支持这些连接。(LOG-2860)
  • 在此次更新之前,OpenShift Container Platform Web 控制台用户无法选择包含 Loki 的 CA 证书的 ConfigMap 对象,从而导致 pod 在没有 CA 的情况下运行。在这个版本中,Web 控制台用户可以选择配置映射,从而解决了这个问题。(LOG-3310)
  • 在此次更新之前,CA 密钥用作将 CA 挂载到 Loki 中的卷名称,从而导致 CA 密钥包含非格式字符(如点)时出现错误状态。在这个版本中,卷名称标准化为一个内部字符串,用于解决这个问题。(LOG-3332)

1.21.2. CVE

1.22. Logging 5.5.4

此发行版本包括 RHSA-2022:7434-OpenShift Logging 程序错误修复 5.5.4

1.22.1. 程序错误修复

  • 在此次更新之前,日志记录视图插件的查询解析程序中的错误会导致日志查询的部分部分(如果查询包含大括号 {} )消失。这会导致查询无效,从而导致为有效查询返回错误。在这个版本中,解析器可以正确地处理这些查询。(LOG-3042)
  • 在此次更新之前,Operator 可以在 Elasticsearch 或 Kibana 部署改变状态时,输入删除和重新创建收集器 daemonset 的循环。在这个版本中,Operator 状态处理中会解决这个问题。(LOG-3049)
  • 在此次更新之前,不会实施警报来支持 Vector 的收集器实现。这个更改会添加 Vector 警报并部署单独的警报,具体取决于所选收集器的实现。(LOG-3127)
  • 在此次更新之前,Elasticsearch Operator 的 secret 创建组件会持续修改的内部 secret。在这个版本中,现有 secret 会被正确处理。(LOG-3138)
  • 在此次更新之前,日志 must-gather 脚本的前重构删除了工件的预期位置。在这个版本中,恢复将工件写入 /must-gather 文件夹的更改。(LOG-3213)
  • 在此次更新之前,在某些集群中,Prometheus exporter 会使用 IPv4 上而不是 IPv6。在这个版本中,Fluentd 会检测 IP 版本,并使用 0.0.0.0 (IPv4) 或 [::] 用于 IPv6。(LOG-3162)

1.22.2. CVE

1.23. 日志记录 5.5.3

此发行版本包括 OpenShift Logging 程序错误修复 5.5.3

1.23.1. 程序错误修复

  • 在此次更新之前,带有结构化消息的日志条目包含原始消息字段,该字段使条目更大。在这个版本中,删除了结构化日志的 message 字段,以减少增大的大小。(LOG-2759)
  • 在此次更新之前,收集器配置排除了来自 收集器default-log-storevisualization pod 的日志,但无法在 .gz 文件中排除存档的日志。在这个版本中,作为 collector, default-log-store, 和 visualization pod 的 .gz 存储的归档日志也会被排除。(LOG-2844)
  • 在此次更新之前,当请求通过网关发送对不可用 pod 的请求时,不会警告中断。在这个版本中,如果网关在完成写入或读取请求时遇到问题,则单个警报将生成。(LOG-2884)
  • 在此次更新之前,pod 元数据可以被流畅的插件更改,因为通过管道传递的值通过引用。此更新可确保每个日志消息接收 pod 元数据的副本,以便每个消息进程都可以独立使用。(LOG-3046)
  • 在此次更新之前,在 OpenShift Console Logs 视图中选择 unknown severity 排除了 level=unknown 值的日志。在这个版本中,根据未知严重性进行过滤时,可以查看没有级别以及带有 level=unknown 的日志。(LOG-3062)
  • 在此次更新之前,发送到 Elasticsearch 的日志记录有一个名为 write-index 的额外字段,其中包含发送日志所需的索引名称。此字段不是数据模型的一部分。在这个版本中,这个字段将不再发送。(LOG-3075)
  • 随着新的内置 Pod Security Admission Controller 的推出,根据全局或命名空间级别定义的强制安全标准没有配置 Pod。在这个版本中,Operator 和收集器允许特权执行并运行,而不出现安全审计警告或错误。(LOG-3077)
  • 在此次更新之前,Operator 在使用 LokiStack 作为默认日志存储时删除了 ClusterLogForwarder 自定义资源中定义的任何自定义输出。在这个版本中,Operator 会在处理 ClusterLogForwarder 自定义资源时将自定义输出与默认输出合并。(LOG-3095)

1.23.2. CVE

1.24. Logging 5.5.2

此发行版本包括 OpenShift Logging 程序错误修复 5.5.2

1.24.1. 程序错误修复

  • 在此次更新之前,Fluentd 收集器的警报规则不遵循 OpenShift Container Platform 监控风格的准则。此更新会修改这些警报,使其包含命名空间标签,从而解决了这个问题。(LOG-1823)
  • 在此次更新之前,索引管理滚动脚本会在索引名称中有多个连字符时生成新的索引名称。在这个版本中,索引名称会正确生成。(LOG-2644)
  • 在此次更新之前,Kibana 路由会在没有证书的情况下设置 caCertificate 值。在这个版本中,不会设置 caCertificate 值。(LOG-2661)
  • 在此次更新之前,收集器依赖项的更改会导致它为未使用的参数发出警告消息。在这个版本中,删除未使用的配置参数可以解决这个问题。(LOG-2859)
  • 在此次更新之前,为 Loki Operator 创建的部署创建的 pod 被错误地调度到没有 Linux 操作系统的节点(如果这些节点已在运行 Operator 的集群中可用)。在这个版本中,Operator 将额外的 node-selector 附加到 pod 定义,该定义仅允许将 pod 调度到基于 Linux 的节点上。(LOG-2895)
  • 在此次更新之前,OpenShift 控制台日志视图不会根据严重性过滤日志,因为 LokiStack 网关中存在 LogQL 解析器问题。在这个版本中,解析器修复了这个问题,OpenShift Console Logs 视图可以根据严重性进行过滤。(LOG-2908)
  • 在此次更新之前,重构 Fluentd 收集器插件会删除事件的时间戳字段。在这个版本中,恢复从事件收到的时间提供的 timestamp 字段。(LOG-2923)
  • 在此次更新之前,审计日志中没有 level 字段会导致向量日志出现错误。在这个版本中,在审计日志记录中添加 level 字段可以解决这个问题。(LOG-2961)
  • 在此次更新之前,如果您删除了 Kibana 自定义资源,OpenShift Container Platform Web 控制台将继续显示到 Kibana 的链接。在这个版本中,删除 Kibana 自定义资源也会删除该链接。(LOG-3053)
  • 在此次更新之前,当 ClusterLogForwarder 自定义资源定义了 JSON 解析时,每个 rollover 任务都会创建空索引。在这个版本中,新的索引不为空。(LOG-3063)
  • 在此次更新之前,当用户在 Loki Operator 5.5 更新后删除了 LokiStack 时,最初由 Loki Operator 5.4 创建的资源仍保留。在这个版本中,资源的 owner-references 指向 5.5 LokiStack。(LOG-2945)
  • 在此次更新之前,用户无法查看其有权访问的命名空间的应用程序日志。在这个版本中,Loki Operator 会自动创建一个集群角色和集群角色绑定,允许用户读取应用程序日志。(LOG-2918)
  • 在此次更新之前,具有 cluster-admin 特权的用户无法使用日志记录控制台正确查看基础架构和审计日志。在这个版本中,授权检查已被扩展,还可将 cluster-admin 和 dedicated-admin 组中的用户识别为 admins。(LOG-2970)

1.24.2. CVE

1.25. Logging 5.5.1

此发行版本包括 OpenShift Logging 程序错误修复 5.5.1

1.25.1. 功能增强

  • 当日志记录控制台(Logging Console)插件被使用时,此增强会将 Aggregated Logs 选项卡添加到 OpenShift Container Platform Web 控制台的 Pod Details 页面中。此功能增强仅适用于 OpenShift Container Platform 4.10 及更新的版本。(LOG-2647)
  • 此功能增强将 Google Cloud Logging 添加为日志转发的输出选项。(LOG-1482)

1.25.2. 程序错误修复

  • 在此次更新之前,Operator 无法确保 pod 就绪,这会导致集群在集群重启过程中达到可操作的状态。在这个版本中,Operator 会在重启过程中进入新 pod 前将新 pod 标记为 ready,这会解决这个问题。(LOG-2745)
  • 在此次更新之前,Fluentd 有时无法识别 Kubernetes 平台轮转日志文件,且不会读取日志消息。在这个版本中,通过设置上游开发团队所推荐的配置参数修正。(LOG-2995)
  • 在此次更新之前,添加多行错误检测会导致内部路由更改并将记录转发到错误的目的地。在这个版本中,内部路由正确。(LOG-2801)
  • 在此次更新之前,更改 OpenShift Container Platform Web 控制台的刷新间隔会在 Query 字段为空时造成错误。在这个版本中,当 Query 字段为空时,更改间隔不是可用的选项。(LOG-2917)

1.25.3. CVE

1.26. Logging 5.5

以下公告可用于 Logging 5.5:发行版本 5.5

1.26.1. 功能增强

  • 在这个版本中,您可以将来自同一 pod 的不同容器的结构化日志转发到不同的索引。要使用此功能,您必须使用多容器支持配置管道并注解 pod。(LOG-1296)
重要

日志的 JSON 格式化因应用程序而异。因为创建太多索引会影响性能,所以请限制使用此功能,仅对与 JSON 格式不兼容的日志创建索引。使用查询将日志与不同命名空间分离,或使用兼容 JSON 格式的应用程序进行隔离。

  • 在这个版本中,您可以使用 Kubernetes 的普通标签,app.kubernetes.io/component, app.kubernetes.io/managed-by, app.kubernetes.io/part-of, 和 app.kubernetes.io/version 来过滤 Elasticsearch 输出的日志。非 Elasticsearch 输出类型可以使用 kubernetes.labels 中包含的所有标签。(LOG-2388)
  • 在这个版本中,启用了 AWS Security Token Service (STS) 的集群可能会使用 STS 验证将日志转发到 Amazon CloudWatch。(LOG-1976)
  • 在这个版本中,"LokiOperator" Operator 和 Vector 收集器从技术预览变为正式发布 (GA)。与之前版本相关的全部仍处于会待处理的状态,一些 API 仍为技术预览。详情请参阅 带有 LokiStack 的日志记录部分。

1.26.2. 程序错误修复

  • 在此次更新之前,配置为将日志转发到 Amazon CloudWatch 的集群会将拒绝的日志文件写入到临时存储,从而导致集群变得不稳定。在这个版本中,所有存储选项的块备份已被禁用,从而解决了这个问题。(LOG-2746)
  • 在此次更新之前,Operator 使用的一些 API 的版本已弃用,并计划在以后的 OpenShift Container Platform 版本中删除。在这个版本中,依赖项被移到受支持的 API 版本。(LOG-2656)

在此次更新之前,Operator 使用的一些 API 的版本已弃用,并计划在以后的 OpenShift Container Platform 版本中删除。在这个版本中,依赖项被移到受支持的 API 版本。(LOG-2656)

  • 在此次更新之前,为多行错误检测配置了多个 ClusterLogForwarder 管道,会导致收集器进入 crashloopbackoff 错误状态。在这个版本中解决了这个问题,多个配置部分具有相同的唯一 ID。(LOG-2241)
  • 在此次更新之前,收集器无法将非 UTF-8 符号保存到 Elasticsearch 存储日志中。在这个版本中,收集器对非 UTF-8 符号进行编码,从而解决此问题。(LOG-2203)
  • 在此次更新之前,非拉丁字符在 Kibana 中无法正确显示。在这个版本中,Kibana 可以正确地显示所有有效的 UTF-8 字符。(LOG-2784)

1.26.3. CVE

1.27. Logging 5.4.14

此发行版本包括 OpenShift Logging 程序错误修复 5.4.14

1.27.1. 程序错误修复

无。

1.27.2. CVE

1.28. Logging 5.4.13

此发行版本包括 OpenShift Logging 程序错误修复 5.4.13

1.28.1. 程序错误修复

  • 在此次更新之前,Fluentd 收集器的问题会导致它不会捕获存储在 /var/log/auth-server/audit.log 中的 OAuth 登录事件。这会导致 OAuth 服务中的登录事件集合不完整。在这个版本中,Fluentd 收集器通过从 OAuth 服务捕获所有登录事件来解决这个问题,包括存储在 /var/log/auth-server/audit.log 中的登录事件。(LOG-3731)

1.28.2. CVE

1.29. Logging 5.4.12

此发行版本包括 OpenShift Logging 程序错误修复 5.4.12

1.29.1. 程序错误修复

无。

1.29.2. CVE

1.30. Logging 5.4.11

此发行版本包括 OpenShift Logging 程序错误修复 5.4.11

1.30.1. 程序错误修复

1.30.2. CVE

1.31. Logging 5.4.10

此发行版本包括 OpenShift Logging 程序错误修复 5.4.10

1.31.1. 程序错误修复

无。

1.31.2. CVE

1.32. 日志记录 5.4.9

此发行版本包括 OpenShift Logging 程序错误修复 5.4.9

1.32.1. 程序错误修复

  • 在此次更新之前,Fluentd 收集器会警告未使用的配置参数。在这个版本中,删除了这些配置参数及其警告信息。(LOG-3074)
  • 在此次更新之前,Kibana 有一个固定的 24h OAuth cookie 过期时间,当 accessTokenInactivityTimeout 字段被设置为小于 24h 的值时,会导致 Kibana 中的 401 错误。在这个版本中,Kibana 的 OAuth cookie 过期时间与 accessTokenInactivityTimeout 同步,默认值为 24h。(LOG-3306)

1.32.2. CVE

1.33. Logging 5.4.8

此发行版本包括 RHSA-2022:7435-OpenShift Logging 程序错误修复 5.4.8

1.33.1. 程序错误修复

无。

1.33.2. CVE

1.34. Logging 5.4.6

此发行版本包括 OpenShift Logging 程序错误修复 5.4.6

1.34.1. 程序错误修复

  • 在此次更新之前,Fluentd 有时无法识别 Kubernetes 平台轮转日志文件,且不会读取日志消息。在这个版本中,通过设置上游开发团队所推荐的配置参数修正。(LOG-2792)
  • 在此次更新之前,当 ClusterLogForwarder 自定义资源定义了 JSON 解析时,每个 rollover 任务都会创建空索引。在这个版本中,新的索引不为空。(LOG-2823)
  • 在此次更新之前,如果您删除了 Kibana 自定义资源,OpenShift Container Platform Web 控制台将继续显示到 Kibana 的链接。在这个版本中,删除 Kibana 自定义资源也会删除该链接。(LOG-3054)

1.34.2. CVE

1.35. Logging 5.4.5

此发行版本包括 RHSA-2022:6183-OpenShift Logging Bug Fix 5.4.5

1.35.1. 程序错误修复

  • 在此次更新之前,Operator 无法确保 pod 就绪,这会导致集群在集群重启过程中达到可操作的状态。在这个版本中,Operator 会在重启过程中进入新 pod 前将新 pod 标记为 ready,这会解决这个问题。(LOG-2881)
  • 在此次更新之前,添加多行错误检测会导致内部路由更改并将记录转发到错误的目的地。在这个版本中,内部路由正确。(LOG-2946)
  • 在此次更新之前,Operator 无法使用带引号的布尔值值解码索引设置 JSON 响应,并导致错误。在这个版本中,Operator 可以正确解码这个 JSON 响应。(LOG-3009)
  • 在此次更新之前,Elasticsearch 索引模板定义了带有错误类型的标签的字段。这会更新这些模板以匹配日志收集器所转发的预期类型。(LOG-2972)

1.35.2. CVE

1.36. Logging 5.4.4

此发行版本包括 RHBA-2022:5907-OpenShift Logging Bug Fix 5.4.4

1.36.1. 程序错误修复

  • 在此次更新之前,非拉丁字符在 Elasticsearch 中无法正确显示。在这个版本中,Elasticsearch 可以正确显示所有有效的 UTF-8 符号。(LOG-2794)
  • 在此次更新之前,非拉丁字符在 Fluentd 中无法正确显示。在这个版本中,Fluentd 可以正确地显示所有有效的 UTF-8 字符。(LOG-2657)
  • 在此次更新之前,收集器的指标服务器尝试使用通过环境值公开的值绑定到地址。在这个更改中,将配置修改为绑定到任何可用接口。(LOG-2821)
  • 在此次更新之前,cluster-logging Operator 依赖于集群来创建 secret。OpenShift Container Platform 4.11 中更改了集群行为,这会导致日志记录部署失败。在这个版本中,cluster-logging Operator 会根据需要创建 secret 来解决这个问题。(LOG-2840)

1.36.2. CVE

1.37. Logging 5.4.3

此发行版本包括 RHSA-2022:5556-OpenShift Logging Bug Fix 5.4.3

1.37.1. Elasticsearch Operator 弃用通知

在日志记录子系统 5.4.3 中,Elasticsearch Operator 已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为使用 Elasticsearch Operator 管理默认日志存储的替代选择,您可以使用 Loki Operator。

1.37.2. 程序错误修复

  • 在此次更新之前,OpenShift Logging 仪表板会显示活跃主分片的数量,而不是所有活跃分片。在这个版本中,仪表板显示所有活跃分片。(LOG-2781)
  • 在此次更新之前,elasticsearch-operator 使用的库中的有一个程序错误,它包含一个拒绝服务攻击的安全漏洞。在这个版本中,库已更新至不包含此漏洞的版本。(LOG-2816)
  • 在此次更新之前,当将 Vector 配置为将日志转发到 Loki 时,无法设置自定义 bearer 令牌,如果 Loki 启用了 TLS,则无法使用默认的令牌。在这个版本中,Vector 可以使用启用了 TLS 的令牌将日志转发到 Loki。(LOG-2786
  • 在此次更新之前,Elasticure Operator 在选择 oauth-proxy 镜像时省略 ImageStream 自定义资源的 referencePolicy 属性。这导致 Kibana 部署在特定环境中失败。在这个版本中,使用 referencePolicy 解决了这个问题,Operator 可以成功部署 Kibana。(LOG-2791)
  • 在此次更新之前,ClusterLogForwarder 自定义资源的警报规则不会考虑多个转发输出。这个版本解决了这个问题。(LOG-2640)
  • 在此次更新之前,配置为将日志转发到 Amazon CloudWatch 的集群会将拒绝的日志文件写入到临时存储,从而导致集群变得不稳定。在这个版本中,CloudWatch 的块备份已被禁用,从而解决了这个问题。(LOG-2768)

1.37.3. CVE

1.38. Logging 5.4.2

此发行版本包括 RHBA-2022:4874-OpenShift Logging Bug Fix 5.4.2

1.38.1. 程序错误修复

  • 在此次更新之前,使用 oc edit 编辑 Collector 配置非常困难,因为它对空格的使用不一致。这个更改引入了在 Operator 更新前对配置进行规范化和格式化的逻辑,以便使用 oc edit 轻松编辑配置。(LOG-2319)
  • 在此次更新之前,FluentdNodeDown 警报无法正确在 message 部分中提供实例标签。在这个版本中,通过修复警报规则来在部分实例失败时提供实例标签,从而解决了这个问题。(LOG-2607)
  • 在此次更新之前,在文档中声明支持的几个日志级别(如`critical`)实际并不支持。在这个版本中,相关的日志级别已被支持。(LOG-2033)

1.38.2. CVE

1.39. Logging 5.4.1

此发行版本包括 RHSA-2022:2216-OpenShift Logging 程序错误修复 5.4.1

1.39.1. 程序错误修复

  • 在此次更新之前,日志文件指标 exporter 仅报告在导出器运行期间创建的日志,从而造成日志增长数据不准确。此次更新通过监控 /var/log/pods 解决了这个问题。(LOG-2442)
  • 在此次更新之前,收集器会被阻断,因为它在将日志转发到 fluentd 转发接收器时不断尝试使用过时的连接。在这个版本中,keepalive_timeout 值被设置为 30 秒(30s),以便收集器回收连接并重新尝试在合理的时间内发送失败消息。(LOG-2534)
  • 在此次更新之前,网关组件强制租期中的错误,用于读取带有 Kubernetes 命名空间的日志的有限访问会导致 "audit" 以及一些 "infrastructure" 日志不可读取。在这个版本中,代理可以正确地检测到具有 admin 访问权限的用户,并允许在没有命名空间的情况下访问日志。(LOG-2448)
  • 在此次更新之前,system:serviceaccount:openshift-monitoring:prometheus-k8s 服务帐户将集群级别权限作为 clusterroleclusterrolebinding。在这个版本中,服务帐户使用角色和 rolebinding 限制到 openshift-logging 命名空间。(LOG-2437)
  • 在此次更新之前,Linux 审计日志时间解析依赖于键/值对的正序位置。此更新会将解析更改为使用正则表达式来查找时间条目。(LOG-2321)

1.39.2. CVE

1.40. Logging 5.4

以下公告可用于日志 5.4: Red Hat OpenShift 版本 5.4 的 Logging 子系统

1.40.1. 技术预览

重要

向量只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

1.40.2. 关于向量

向量(vector)是一个日志收集器,它作为一个技术预览替代 logging 子系统的当前默认收集器。

以下输出受支持:

  • elasticsearch.一个外部 Elasticsearch 实例。elasticsearch 输出可以使用 TLS 连接。
  • kafka.Kafka 代理。kafka 输出可以使用不安全的或 TLS 连接。
  • loki。Loki,一个可横向扩展的、高可用性、多租户日志聚合系统。

1.40.2.1. 启用向量

默认不启用向量。使用以下步骤在 OpenShift Container Platform 集群上启用向量。

重要

向量不支持 FIPS 启用集群。

先决条件

  • OpenShift Container Platform: 4.10
  • Red Hat OpenShift 的 logging 子系统: 5.4
  • 禁用 FIPS

流程

  1. 编辑 openshift-logging 项目中的 ClusterLogging 自定义资源(CR):

    $ oc -n openshift-logging edit ClusterLogging instance
  2. ClusterLogging 自定义资源(CR)添加 logging.openshift.io/preview-vector-collector: enabled 注解。
  3. ClusterLogging 自定义资源(CR)中添加 vector 作为集合类型。
  apiVersion: "logging.openshift.io/v1"
  kind: "ClusterLogging"
  metadata:
    name: "instance"
    namespace: "openshift-logging"
    annotations:
      logging.openshift.io/preview-vector-collector: enabled
  spec:
    collection:
      logs:
        type: "vector"
        vector: {}

其他资源

重要

Loki Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

1.40.3. 关于 Loki

Loki 是一个可横向扩展的、高度可用且多租户的日志聚合系统,目前作为日志记录子系统的日志存储提供。

其他资源

1.40.3.1. 部署 Lokistack

您可以使用 OpenShift Container Platform Web 控制台安装 Loki Operator。

先决条件

  • OpenShift Container Platform: 4.10
  • Red Hat OpenShift 的 logging 子系统: 5.4

使用 OpenShift Container Platform Web 控制台安装 Loki Operator:

  1. 安装 Loki Operator:

    1. 在 OpenShift Container Platform Web 控制台中,点击 OperatorsOperatorHub
    2. 从可用的 Operator 列表中选择 Loki Operator,然后点 Install
    3. Installation Mode 下,选择 All namespaces on the cluster
    4. Installed Namespace 下,选择 openshift-operators-redhat

      您必须指定 openshift-operators-redhat 命名空间。openshift-operators 命名空间可能会包含社区提供的 operator。这些 operator 不被信任,其发布的 metric 可能与 OpenShift Container Platform metric 的名称相同,从而导致冲突。

    5. 选择 Enable operator recommended cluster monitoring on this namespace

      这个选项在 Namespace 对象中设置 openshift.io/cluster-monitoring: "true" 标识。您必须设置这个选项,以确保集群监控提取 openshift-operators-redhat 命名空间。

    6. 选择一个批准策略

      • Automatic 策略允许 Operator Lifecycle Manager(OLM)在有新版本可用时自动更新 Operator。
      • Manual 策略需要拥有适当凭证的用户批准 Operator 更新。
    7. Install
    8. 验证您安装了 Loki Operator。访问 OperatorsInstalled Operators 页面,并查找 "Loki Operator"。
    9. 确保 Loki Operator 列在 StatusSucceeded 的所有项目中。

1.40.4. 程序错误修复

  • 在此次更新之前,cluster-logging-operator 使用集群范围的角色和绑定来建立 Prometheus 服务帐户的权限,以提取指标。这些权限在使用控制台界面部署 Operator 时创建,但在从命令行部署时缺失。在这个版本中,通过使角色和绑定命名空间范围解决了这个问题。(LOG-2286)
  • 在此次更新之前,修复仪表板协调在命名空间间引入一个 ownerReferences 字段。因此,在命名空间中不会创建配置映射和仪表板。在这个版本中,删除了 ownerReferences 字段可以解决这个问题,OpenShift Logging 仪表板在控制台中可用。(LOG-2163)
  • 在此次更新之前,对指标仪表板的更改不会部署,因为 cluster-logging-operator 无法正确比较包含仪表板的现有和修改后的配置映射。在这个版本中,为对象标签添加唯一的散列值可解决这个问题。(LOG-2071)
  • 在此次更新之前,OpenShift Logging 仪表板没有正确显示表中的 pod 和命名空间,这会显示在最后 24 小时收集的生成容器。在这个版本中,pod 和命名空间会被正确显示。(LOG-2069)
  • 在此次更新之前,当 ClusterLogForwarder 设置为 Elasticsearch OutputDefault 且 Elasticsearch 输出没有结构化键时,生成的配置包含身份验证的错误值。在这个版本中,修正了使用的 secret 和证书。(LOG-2056)
  • 在此次更新之前,OpenShift Logging 仪表板会显示一个空的 CPU 图形,因为引用无效指标。在这个版本中,选择了正确的数据点来解决此问题。(LOG-2026)
  • 在此次更新之前,Fluentd 容器镜像包含在运行时不需要的构建程序工具。这个版本从镜像中删除这些工具。(LOG-1927)
  • 在此次更新之前,在 5.3 版本中部署的收集器的名称更改会导致日志记录收集器生成 FluentdNodeDown 警报。在这个版本中,修复 Prometheus 警报的作业名称解决了这个问题。(LOG-1918)
  • 在此次更新之前,日志收集器因为重构组件名称更改而收集自己的日志。这可能会导致收集器处理自己的日志的潜在反馈循环,这可能会导致内存和日志消息大小问题。在这个版本中解决了这个问题,它会从集合中排除收集器日志。(LOG-1774)
  • 在此次更新之前,Elasticsearch 会生成错误 Unable to create PersistentVolumeClaim due to forbidden: exceeded quota: infra-storage-quota.(如果 PVC 已存在)。在这个版本中,Elasticsearch 会检查现有的 PVC,从而解决了这个问题。(LOG-2131)
  • 在此次更新之前,当 elasticsearch-signing secret 被删除时,Elasticsearch 无法返回 ready 状态。在这个版本中,Elasticsearch 能够在删除该 secret 后返回 ready 状态。(LOG-2171)
  • 在此次更新之前,收集器读取容器日志的路径的更改会导致收集器将一些记录转发到错误的索引。在这个版本中,收集器使用正确的配置来解决这个问题。(LOG-2160)
  • 在此次更新之前,带有大量命名空间的集群会导致 Elasticsearch 停止服务请求,因为命名空间列表达到最大标头大小限制。在这个版本中,标头只包括命名空间名称列表,从而解决了这个问题。(LOG-1899)
  • 在此次更新之前,OpenShift Container Platform Logging 仪表板显示分片"x"数量大于 Elasticsearch 具有 'x' 节点时的实际值。出现这个问题的原因是,它会输出每个 Elasticsearch pod 的所有主分片,并计算出整个 Elasticsearch 集群的总和。在这个版本中,分片数量会被正确计算。(LOG-2156)
  • 在此次更新之前,如果 secret kibanakibana-proxy 被删除,则不会重新创建它们。在这个版本中,elasticsearch-operator 会监视资源,并在删除时自动重新创建这些资源。(LOG-2250)
  • 在此次更新之前,调整缓冲区块大小可能会导致收集器生成超过事件流字节限制的块大小警告。在这个版本中,您还可以调整读行限制,并解决问题。(LOG-2379)
  • 在此次更新之前,OpenShift WebConsole 中的日志记录控制台链接不会被 ClusterLogging CR 删除。在这个版本中,删除 CR 或卸载 Cluster Logging Operator 会删除链接。(LOG-2373)
  • 在此次更新之前,对容器日志路径的更改会导致集合指标始终为零,且使用原始路径配置旧版本。在这个版本中,插件会公开有关收集日志的指标,支持从任一路径中读取来解决这个问题。(LOG-2462)

1.40.5. CVE

1.41. Logging 5.3.14

此发行版本包括 OpenShift Logging 程序错误修复 5.3.14

1.41.1. 程序错误修复

  • 在此次更新之前,log-file-metrics-exporter 组件生成的日志文件大小映射不会删除已删除文件的条目,从而导致文件大小和进程内存增加。在这个版本中,日志文件大小映射不包含已删除文件的条目。(LOG-3293)

1.41.2. CVE

1.42. Logging 5.3.13

此发行版本包括 RHSA-2022:68828-OpenShift Logging Bug Fix Release 5.3.13

1.42.1. 程序错误修复

无。

1.42.2. CVE

1.43. Logging 5.3.12

此发行版本包括 OpenShift Logging 程序错误修复版本 5.3.12

1.43.1. 程序错误修复

无。

1.43.2. CVE

1.44. Logging 5.3.11

此发行版本包括 OpenShift Logging 程序错误修复 5.3.11

1.44.1. 程序错误修复

  • 在此次更新之前,Operator 无法确保 pod 就绪,这会导致集群在集群重启过程中达到可操作的状态。在这个版本中,Operator 会在重启过程中进入新 pod 前将新 pod 标记为 ready,这会解决这个问题。(LOG-2871)

1.44.2. CVE

1.45. Logging 5.3.10

此发行版本包括 RHSA-2022:5908-OpenShift Logging 程序错误修复 5.3.10

1.45.1. 程序错误修复

1.45.2. CVE

1.46. Logging 5.3.9

此发行版本包括 RHBA-2022:5557-OpenShift Logging Bug Fix 5.3.9

1.46.1. 程序错误修复

  • 在此次更新之前,日志记录收集器包含一个路径,作为它生成的指标的标签。此路径经常更改,并会导致 Prometheus 服务器的存储的大量更改。在这个版本中,标签已被丢弃以解决问题并减少存储消耗。(LOG-2682)

1.46.2. CVE

1.47. Logging 5.3.8

此发行版本包括 RHBA-2022:5010-OpenShift Logging Bug Fix 5.3.8

1.47.1. 程序错误修复

(无.)

1.47.2. CVE

1.48. OpenShift Logging 5.3.7

此发行版本包括 RHSA-2022:2217 OpenShift Logging 程序错误修复 5.3.7

1.48.1. 程序错误修复

  • 在此次更新之前,Linux 审计日志时间解析依赖于键/值对的正误定位。在这个版本中,解析被修改为使用 regex 来查找时间条目。(LOG-2322)
  • 在此更新前,一些日志转发器输出可能会使用相同的时间戳重新排序日志。在这个版本中,在日志中添加了一个序列号,以订购具有匹配时间戳的条目。(LOG-2334)
  • 在此次更新之前,带有大量命名空间的集群会导致 Elasticsearch 停止服务请求,因为命名空间列表达到最大标头大小限制。在这个版本中,标头只包括命名空间名称列表,从而解决了这个问题。(LOG-2450)
  • 在此次更新之前,system:serviceaccount:openshift-monitoring:prometheus-k8s 有集群级别特权,作为 clusterroleclusterrolebinding。在这个版本中,使用 role 和 rolebinding 将 serviceaccount 限制到 openshift-logging 命名空间。(LOG-2481))

1.48.2. CVE

1.49. OpenShift Logging 5.3.6

此发行版本包括 RHBA-2022:1377 OpenShift Logging Bug Fix 5.3.6

1.49.1. 程序错误修复

  • 在此次更新之前,定义没有密钥的容限,且现有 Operator 会导致 Operator 无法完成升级。在这个版本中,这个容限不再阻止升级完成。(LOG-2126)
  • 在此更改前,收集器可能会生成警告,其中块字节限值超过发出的事件。在这个版本中,您可以调整 readline 限制,以根据上游文档建议解决问题。(LOG-2380)

1.50. OpenShift Logging 5.3.5

此发行版本包括 RHSA-2022:0721 OpenShift Logging 程序错误修复 5.3.5

1.50.1. 程序错误修复

  • 在此次更新之前,如果您从 OpenShift Container Platform 中删除了 OpenShift Logging,Web 控制台仍然会显示指向 Logging 页面的链接。在这个版本中,删除或卸载 OpenShift Logging 也会删除该链接。(LOG-2182)

1.50.2. CVE

1.51. OpenShift Logging 5.3.4

此发行版本包括 RHBA-2022:0411 OpenShift Logging Bug Fix 5.3.4

1.51.1. 程序错误修复

  • 在此次更新之前,对 metrics 仪表板的更改还没有部署,因为 cluster-logging-operator 没有正确比较包含仪表板的现有和所需的配置映射。在这个版本中,通过在对象标签中添加唯一的 hash 值来解决逻辑。(LOG-2066)
  • 在此次更新之前,Elasticsearch Pod 在启用了 FIPS 更新后无法启动。在这个版本中,Elasticsearch Pod 可以成功启动。(LOG-1974)
  • 在此次更新之前,Elasticsearch 会生成错误 "Unable to create PersistentVolumeClaim due to forbidden: exceeded quota: infra-storage-quota."(如果 PVC 已存在)。在这个版本中,Elasticsearch 会检查现有的 PVC,从而解决了这个问题。(LOG-2127)

1.51.2. CVE

1.52. OpenShift Logging 5.3.3

此发行版本包括 RHSA-2022:0227 OpenShift Logging Bug Fix 5.3.3

1.52.1. 程序错误修复

  • 在此次更新之前,对 metrics 仪表板的更改还没有部署,因为 cluster-logging-operator 没有正确地比较包含仪表板的现有和所需 configmaps。在这个版本中,通过将仪表板唯一的哈希值添加到对象标签来修复逻辑。(LOG-2066)
  • 在这个版本中,log4j 依赖项改为 2.17.1 以解决 CVE-2021-44832.(LOG-2102)

1.52.2. CVE

例 1.11. 点击以展开 CVE

1.53. OpenShift Logging 5.3.2

此发行版本包括 RHSA-2022:0044 OpenShift Logging Bug Fix 5.3.2

1.53.1. 程序错误修复

  • 在此次更新之前,因为解析错误,Elasticsearch 会拒绝来自事件路由器的日志。在这个版本中,更改了数据模型来解决这个问题。但是,以前的索引可能会导致 Kibana 中的警告或错误。kubernetes.event.metadata.resourceVersion 字段会导致错误,直到删除现有索引被删除或重新索引为止。如果 Kibana 中没有使用此字段,您可以忽略错误消息。如果您有一个删除旧索引的保留策略,策略最终会删除旧的索引并停止错误消息。或者手动重新索引来停止生成错误消息。(LOG-2087)
  • 在此次更新之前,OpenShift Logging Dashboard 在表中显示错误的 pod 命名空间,该命名空间显示上 24 小时内构建和收集容器。在这个版本中,OpenShift Logging Dashboard 会显示正确的 pod 命名空间。(LOG-2051)
  • 在此次更新之前,如果 ClusterLogForwarder 自定义资源(CR)实例的 outputDefaults.elasticsearch.structuredTypeKey 没有结构化密钥,则 CR 会将输出 secret 替换为用来与默认日志存储通信的默认 secret。在这个版本中,定义的输出 secret 会被正确使用。(LOG-2046)

1.53.2. CVE

1.54. OpenShift Logging 5.3.1

此发行版本包括 RHSA-2021:5129 OpenShift Logging 程序错误修复 5.3.1

1.54.1. 程序错误修复

  • 在此次更新之前,Fluentd 容器镜像包含在运行时不需要的构建程序工具。这个版本从镜像中删除这些工具。(LOG-1998)
  • 在此次更新之前,日志记录仪表板会显示空 CPU 图形,因为引用无效指标。在这个版本中,日志记录仪表板可以正确地显示 CPU 图形。(LOG-1925)
  • 在此次更新之前,Elasticsearch Prometheus exporter 插件使用会影响 Elasticsearch 节点性能的高成本查询编译了索引级指标。这个版本实现了更低成本的查询,可提高性能。(LOG-1897)

1.54.2. CVE

1.55. OpenShift Logging 5.3.0

此发行版本包括 RHSA-2021:4627 OpenShift Logging 程序错误修复 5.3.0

1.55.1. 新功能及功能增强

  • 在这个版本中,Log Forwarding 的授权选项已被扩展。输出现在可以配置 SASL、用户名/密码或 TLS。

1.55.2. 程序错误修复

  • 在此次更新之前,如果您使用 syslog 协议转发日志,请串行化 ruby 哈希编码的键/值对,使其包含"归档"字符,并使用"#11"替换制表符。在这个版本中解决了这个问题,日志消息被正确序列化为有效的 JSON。(LOG-1494)
  • 在此次更新之前,应用程序日志没有被正确配置,以转发到启用了多行错误检测的正确的 Cloudwatch 流。(LOG-1939)
  • 在此次更新之前,5.3 发行版中部署的收集器的名称更改会导致生成警报 'fluentnodedown'。(LOG-1918)
  • 在此次更新之前,以前的发行配置中引入的回归会导致收集器在关闭前清除其缓冲区信息,从而造成终止并重启收集器 Pod。在这个版本中,fluentd 不再在关闭时清除缓冲区,从而解决了这个问题。(LOG-1735)
  • 在此次更新之前,在以前的版本中会有意禁用 JSON 消息解析。这个版本重新启用 JSON 解析。它还根据解析 JSON 消息中的"level"字段设置日志条目"level"字段,或者使用 regex 从消息字段中提取匹配项。(LOG-1199)
  • 在此次更新之前,ClusterLogging 自定义资源(CR)将 totalLimitSize 字段的值应用到 Fluentd total_limit_size 字段,即使所需的缓冲空间不可用。在这个版本中,CR 会将两个 totalLimitSize 或 'default' 值的 lesser 应用到 Fluentd total_limit_size 字段,从而解决这个问题。(LOG-1776)

1.55.3. 已知问题

  • 如果您将日志转发到外部 Elasticsearch 服务器,然后在管道 secret 中更改配置的值,如用户名和密码,Fluentd forwarder 会加载新 secret,但使用旧值连接到外部 Elasticsearch 服务器。出现这个问题的原因是,Red Hat OpenShift Logging Operator 当前不会监控 secret 的内容更改。(LOG-1652)

    作为临时解决方案,如果更改了 secret,您可以强制重新部署 Fluentd Pod:

    $ oc delete pod -l component=collector

1.55.4. 弃用和删除的功能

之前版本中的一些功能已被弃用或删除。

弃用的功能仍然包含在 OpenShift Logging 中,并且仍然被支持。但是,这个功能会在以后的发行版本中被删除,且不建议在新的部署中使用。

1.55.4.1. 使用旧的 Fluentd 和旧的 syslog 方法转发日志已被删除

在 OpenShift Logging 5.3 中,将日志转发到 Syslog 和 Fluentd 的传统方法已被删除。错误修复和支持在 OpenShift Logging 5.2 生命周期结束时提供。之后,不会进行新的功能增强。

反之,使用以下非传统方法:

1.55.4.2. 已删除旧转发方法的配置机制

在 OpenShift Logging 5.3 中,日志转发的传统配置机制已被删除: 您不能使用旧的 Fluentd 方法和旧的 Syslog 方法转发日志。使用标准日志转发方法。

1.55.5. CVE

例 1.14. 点击以展开 CVE

1.56. Logging 5.2.13

此发行版本包括 RHSA-2022:5909-OpenShift Logging Bug Fix 5.2.13

1.56.1. 程序错误修复

1.56.2. CVE

1.57. Logging 5.2.12

此发行版本包括 RHBA-2022:5558-OpenShift Logging Bug Fix 5.2.12

1.57.1. 程序错误修复

无。

1.57.2. CVE

1.58. Logging 5.2.11

此发行版本包括 RHBA-2022:5012-OpenShift Logging Bug Fix 5.2.11

1.58.1. 程序错误修复

  • 在此次更新之前,配置为执行 CloudWatch 转发的集群会将拒绝的日志文件写入临时存储,从而导致集群因为时间不稳定。在这个版本中,CloudWatch 的块备份已被禁用,从而解决了这个问题。(LOG-2635)

1.58.2. CVE

1.59. OpenShift Logging 5.2.10

此发行版本包括 OpenShift Logging Bug Fix Release 5.2.10]

1.59.1. 程序错误修复

  • 在此更新前,一些日志转发器输出可能会使用相同的时间戳重新排序日志。在这个版本中,在日志中添加了一个序列号,以订购具有匹配时间戳的条目。(LOG-2335)
  • 在此次更新之前,带有大量命名空间的集群会导致 Elasticsearch 停止服务请求,因为命名空间列表达到最大标头大小限制。在这个版本中,标头只包括命名空间名称列表,从而解决了这个问题。(LOG-2475)
  • 在此次更新之前,system:serviceaccount:openshift-monitoring:prometheus-k8s 有集群级别特权,作为 clusterroleclusterrolebinding。在这个版本中,使用 role 和 rolebinding 将 serviceaccount 限制到 openshift-logging 命名空间。(LOG-2480)
  • 在此次更新之前,cluster-logging-operator 使用集群范围的角色和绑定来建立 Prometheus 服务帐户的权限,以提取指标。这些权限只有在使用控制台界面部署 Operator 时创建,在从命令行部署 Operator 时缺失。在这个版本中,这个角色和绑定命名空间范围解决了这个问题。(LOG-1972)

1.59.2. CVE

1.60. OpenShift Logging 5.2.9

此发行版本包括 RHBA-2022:1375 OpenShift Logging Bug Fix Release 5.2.9]

1.60.1. 程序错误修复

  • 在此次更新之前,定义没有密钥的容限,且现有 Operator 会导致 Operator 无法完成升级。在这个版本中,这个容限不再阻止升级完成。(LOG-2304)

1.61. OpenShift Logging 5.2.8

此发行版本包括 RHSA-2022:0728 OpenShift Logging Bug Fix 5.2.8

1.61.1. 程序错误修复

  • 在此次更新之前,如果您从 OpenShift Container Platform 中删除了 OpenShift Logging,Web 控制台仍然会显示指向 Logging 页面的链接。在这个版本中,删除或卸载 OpenShift Logging 也会删除该链接。(LOG-2180)

1.61.2. CVE

例 1.19. 点击以展开 CVE

1.62. OpenShift Logging 5.2.7

此发行版本包括 RHBA-2022:0478 OpenShift Logging Bug Fix 5.2.7

1.62.1. 程序错误修复

  • 在此次更新之前,启用了 FIPS 的 Elasticsearch Pod 无法在更新后启动。在这个版本中,Elasticsearch Pod 可以成功启动。(LOG-2000)
  • 在此次更新之前,如果持久性卷声明(PVC)已存在,Elasticsearch 会生成错误,"Unable to create PersistentVolumeClaim due to forbidden: exceeded quota: infra-storage-quota." 在这个版本中,Elasticsearch 会检查现有的 PVC,从而解决了这个问题。(LOG-2118)

1.62.2. CVE

1.63. OpenShift Logging 5.2.6

此发行版本包括 RHSA-2022:0230 OpenShift Logging 程序错误修复 5.2.6

1.63.1. 程序错误修复

  • 在此次更新之前,这个版本不包含导致 Fluentd 崩溃的过滤器更改。在这个版本中,缺少的过滤器已被修正。(LOG-2104)
  • 在这个版本中,log4j 依赖项改为 2.17.1 以解决 CVE-2021-44832.(LOG-2101)

1.63.2. CVE

例 1.21. 点击以展开 CVE

1.64. OpenShift Logging 5.2.5

此发行版本包括 RHSA-2022:0043 OpenShift Logging 程序错误修复 5.2.5

1.64.1. 程序错误修复

  • 在此次更新之前,因为解析错误,Elasticsearch 会拒绝来自事件路由器的日志。在这个版本中,更改了数据模型来解决这个问题。但是,以前的索引可能会导致 Kibana 中的警告或错误。kubernetes.event.metadata.resourceVersion 字段会导致错误,直到删除现有索引被删除或重新索引为止。如果 Kibana 中没有使用此字段,您可以忽略错误消息。如果您有一个删除旧索引的保留策略,策略最终会删除旧的索引并停止错误消息。或者手动重新索引来停止生成错误消息。LOG-2087)

1.64.2. CVE

1.65. OpenShift Logging 5.2.4

此发行版本包括 RHSA-2021:5127 OpenShift Logging 程序错误修复 5.2.4

1.65.1. 程序错误修复

  • 在更新之前,syslog 附带的更新记录会序列化 ruby 散列编码键/值对,使其包含"存储"字符,并将标签替换为 "#11"。在这个版本中,可以正确地将消息序列化为正确的 JSON。(LOG-1775)
  • 在此次更新之前,Elasticsearch Prometheus exporter 插件使用会影响 Elasticsearch 节点性能的高成本查询编译了索引级指标。这个版本实现了更低成本的查询,可提高性能。(LOG-1970)
  • 在此次更新之前,当 Log Forwarding 配置了多个输出时,Elasticsearch 有时会拒绝消息。这是因为将其中一个输出修改的消息内容配置为单个消息。在这个版本中,日志转发会复制每个输出的消息,以便特定于输出的处理不会影响其他输出。(LOG-1824)

1.65.2. CVE

1.66. OpenShift Logging 5.2.3

此发行版本包括 RHSA-2021:4032 OpenShift Logging 程序错误修复 5.2.3

1.66.1. 程序错误修复

  • 在此次更新之前,一些警报不包含命名空间标签。此遗漏不符合 OpenShift 监控团队在 OpenShift Container Platform 中编写警报规则的准则。在这个版本中,Elasticsearch Operator 中的所有警报都包含一个命名空间标签,并遵循在 OpenShift Container Platform 中编写警报规则的所有准则。(LOG-1857)
  • 在此次更新之前,在以前的版本中会有意禁用 JSON 消息解析。这个版本重新启用 JSON 解析。它还根据解析 JSON 消息中的 level 字段设置日志条目 level 字段,或者使用 regex 从消息字段中提取匹配项。(LOG-1759)

1.66.2. CVE

1.67. OpenShift Logging 5.2.2

此发行版本包括 RHBA-2021:3747 OpenShift Logging 程序错误修复 5.2.2

1.67.1. 程序错误修复

  • 在此次更新之前,ClusterLogging 自定义资源(CR)将 totalLimitSize 字段的值应用到 Fluentd total_limit_size 字段,即使所需的缓冲空间不可用。在这个版本中,CR 会将两个 totalLimitSize 或 'default' 值的 lesser 应用到 Fluentd total_limit_size 字段,从而解决这个问题。(LOG-1738)
  • 在此次更新之前,以前的发行配置中引入的回归会导致收集器在关闭前清除其缓冲区信息,从而造成终止并重启收集器 Pod。在这个版本中,Fluentd 不再在关闭时清除缓冲区,从而解决了这个问题。(LOG-1739)
  • 在此次更新之前,捆绑包清单中的问题会阻止在 OpenShift Container Platform 4.9 上安装 Elasticsearch Operator。在这个版本中,更正捆绑包清单会在 4.9 中重新启用并升级。(LOG-1780)

1.67.2. CVE

1.68. OpenShift Logging 5.2.1

此发行版本包括 RHBA-2021:3550 OpenShift Logging 程序错误修复 5.2.1

1.68.1. 程序错误修复

  • 在此次更新之前,因为发行版本管道脚本中的一个问题,olm.skipRange 字段的值会保持不变(为 5.2.0),而不是反映当前的发行号。在这个版本中修复了管道脚本,在发行号更改时更新此字段的值。(LOG-1743)

1.68.2. CVE

(无)

1.69. OpenShift Logging 5.2.0

此发行版本包括 RHBA-2021:3393 OpenShift Logging 程序错误修复 5.2.0

1.69.1. 新功能及功能增强

  • 在这个版本中,您可以将日志数据转发到 Amazon CloudWatch,它提供应用程序和基础架构监控。如需更多信息,请参阅将日志转发到 Amazon CloudWatch。(LOG-1173)
  • 在这个版本中,您可以将日志数据转发到 Loki,这是一个可横向扩展、高度可用、多租户日志聚合系统。如需更多信息,请参阅将日志转发到 Loki。(LOG-684)
  • 在这个版本中,如果使用 Fluentd forward 协议通过 TLS 加密连接转发日志数据,现在可以使用密码加密的私钥文件并在 Cluster Log Forwarder 配置中指定密码短语。如需更多信息,请参阅使用 Fluentd 转发协议 转发日志。(LOG-1525)
  • 在这个版本中,您可以使用用户名和密码来验证与外部 Elasticsearch 实例的日志转发连接。例如,如果无法使用 mutual TLS (mTLS),因为第三方运行 Elasticsearch 实例,您可以使用 HTTP 或 HTTPS 并设置包含用户名和密码的 secret。如需更多信息,请参阅将日志转发到外部 Elasticsearch 实例。(LOG-1022)
  • 在这个版本中,您可以收集 OVN 网络策略审计日志来转发到日志记录服务器。(LOG-1526)
  • 默认情况下,OpenShift Container Platform 4.5 中引入的数据模型为来自不同命名空间的日志提供一个通用索引。这个变化造成很难看到哪些命名空间生成的日志最多。

    当前发行版本在 OpenShift Container Platform 控制台中的 Logging 仪表板中添加命名空间指标。使用这些指标,您可以看到哪个命名空间生成日志,以及每个命名空间为给定时间戳生成的日志数量。

    要查看这些指标,请在 OpenShift Container Platform web 控制台中打开 Administrator 视角,再导航到 ObserveDashboardsLogging/Elasticsearch。(LOG-1680)

  • 当前发行版本 OpenShift Logging 5.2 启用两个新指标:对于给定的时间戳或持续时间,您可以查看各个容器生成或记录的日志总数,以及收集器收集的日志总数。这些指标由命名空间、pod 和容器名称标记,以便您可以查看每个命名空间和 pod 收集和生成的日志数量。(LOG-1213)

1.69.2. 程序错误修复

  • 在更新前,当 OpenShift Elasticsearch Operator 创建索引管理 cronjobs 时,它会添加 POLICY_MAPPING 环境变量两次,这会导致 apiserver 报告重复。在这个版本中解决了这个问题,使得 POLICY_MAPPING 环境变量只为每个 cronjob 设置一次,且 apiserver 报告没有重复。(LOG-1130)
  • 在以前的版本中,将 Elasticsearch 集群挂起到零个节点不会挂起 index-management cronjobs,这会使这些 cronjobs 造成大量 backoff。然后,在取消暂停 Elasticsearch 集群后,这些 cronjobs 会因为达到最大 backoff 而停止。在这个版本中,通过挂起 cronjobs 和集群解决了这个问题。(LOG-1268)
  • 在这个版本中,在 OpenShift Container Platform 控制台中的 Logging 仪表板中,前 10 种日志生成容器列表缺少 "chart namespace" 标签,并提供不正确的指标名称 fluentd_input_status_total_bytes_logged。在这个版本中,chart 显示命名空间标签和正确的指标名称 log_logged_bytes_total。(LOG-1271)
  • 在更新之前,如果索引管理 cronjob 终止并显示错误退出代码,则报告错误退出代码:相反,其作业状态为"complete"。 在这个版本中,报告使用错误终止的索引管理 cronjobs 的错误退出代码解决了这个问题。(LOG-1273)
  • priorityclasses.v1beta1.scheduling.k8s.io 已从 1.22 中删除,并被 priorityclasses.v1.scheduling.k8s.io 替代(v1beta1v1替代)。在更新之前,APIRemovedInNextReleaseInUse 警报是为 priorityclasses 生成的,因为 v1beta1 仍然存在。在这个版本中,将 v1beta1 替换为 v1,解决了这个问题。不再生成警报。(LOG-1385)
  • 在以前的版本中,OpenShift Elasticsearch Operator 和 Red Hat OpenShift Logging Operator 没有所需的注解,它们会显示在断开连接的环境中的 OpenShift Container Platform Web 控制台列表中。在这个版本中,将 operators.openshift.io/infrastructure-features: '["Disconnected"]' 注解添加到这两个 Operator 中,使它们出现在在断开连接的环境中运行的 Operator 列表中。(LOG-1420)
  • 在更新前,Red Hat OpenShift Logging Operator pod 被调度到在性能优化的单节点集群中为客户工作负载保留的 CPU 内核。在这个版本中,集群日志记录操作器 pod 调度到正确的 CPU 内核中。(LOG-1440)
  • 在更新前,一些日志条目没有被识别为 UTF-8 字节,这会导致 Elasticsearch 拒绝消息并阻塞整个缓冲的有效负载。在这个版本中,被拒绝的载荷会丢弃无效的日志条目并重新提交剩余的条目来解决这个问题。(LOG-1499)
  • 在此次更新之前,kibana-proxy pod 有时输入 CrashLoopBackoff 状态,并记录以下消息 Invalid configuration: cookie_secret must be 16, 24, or 32 bytes to create an AES cipher when pass_access_token == true or cookie_refresh != 0, but is 29 bytes.实际的字节数可能有所不同。在这个版本中,Kibana 会话 secret 的生成已被修正,kibana-proxy pod 不再会因为这个错误而进入 CrashLoopBackoff 状态。(LOG-1446)
  • 在这个版本中,AWS CloudWatch Fluentd 插件在所有日志级别记录了对 Fluentd 日志的 AWS API 调用,这会消耗额外的 OpenShift Container Platform 节点资源。在这个版本中,AWS CloudWatch Fluentd 插件仅在"debug"和"trace"日志级别记录 AWS API 调用。这样,在默认的"warn"日志级别中,Fluentd 不会消耗额外的节点资源。(LOG-1071)
  • 在更新前,Elasticsearch OpenDistro 安全插件会导致用户索引迁移失败。在这个版本中,通过提供新版本的插件解决了这个问题。现在,索引迁移可以正常进行。(LOG-1276)
  • 在更新前,在 OpenShift Container Platform 控制台中的 Logging 仪表板中,前 10 种生成日志的容器列表缺少数据点。此更新解决了这个问题,仪表板会显示所有数据点。(LOG-1353)
  • 在更新前,如果您要通过调整 chunkLimitSizetotalLimitSize 值来调整 Fluentd 日志转发器的性能,Setting queued_chunks_limit_size for each buffer to 消息报告值太低。当前更新解决了这个问题,此消息可以报告正确的值。(LOG-1411)
  • 在更新前,Kibana OpenDistro 安全插件会导致用户索引迁移失败。在这个版本中,通过提供新版本的插件解决了这个问题。现在,索引迁移可以正常进行。(LOG-1558)
  • 在这个版本中,使用命名空间输入过滤器会阻止该命名空间中的日志出现在其他输入中。在这个版本中,日志会发送到可以接受它们的所有输入。(LOG-1570)
  • 在以前的版本中, viaq/logerr 依赖项缺少许可证文件,这会导致许可证扫描程序在没有成功的情况下被中止。在这个版本中, viaq/logerr 依赖项使用 Apache 2.0 许可,许可证扫描程序可以成功运行。(LOG-1590)
  • 在更新前,elasticsearch-operator-bundle 构建管道中的 curator5 的不正确的 brew 标签会导致拉取镜像被固定到 dummy SHA1 中。在这个版本中,构建管道使用 logging-curator5-rhel8 来引用 curator5,索引管理 cronjobs 可以从 registry.redhat.io 中拉取正确的镜像。(LOG-1624)
  • 在更新前,ServiceAccount 有一个权限问题,这会导致错误,如 no permissions for [indices:admin/aliases/get]。在这个版本中,权限修复解决了这个问题。(LOG-1657)
  • 在更新前,Red Hat OpenShift Logging Operator 的自定义资源定义 (CRD) 缺少 Loki 输出类型,这会导致准入控制器拒绝 ClusterLogForwarder 自定义资源对象。在这个版本中,CRD 包含 Loki 作为输出类型,以便管理员可以配置 ClusterLogForwarder 以将日志发送到 Loki 服务器。(LOG-1683)
  • 在这个版本中,OpenShift Elasticsearch Operator 协调 ServiceAccounts 覆盖了包含 secret 的第三方拥有的字段。这会导致因为频繁重新创建 secret 而导致内存和 CPU 激增。这个版本解决了这个问题。现在,OpenShift Elasticsearch Operator 不会覆盖第三方拥有的字段。(LOG-1714)
  • 在更新前,在 ClusterLogging 自定义资源 (CR) 定义中,如果您指定了 flush_interval 值但没有将 flush_mode 设置为 interval,Red Hat OpenShift Logging Operator 会生成 Fluentd 配置。但是,Fluentd 收集器在运行时生成一个错误。在这个版本中,Red Hat OpenShift Logging Operator 会验证 ClusterLogging CR 定义,只有指定了这两个字段时才会生成 Fluentd 配置。(LOG-1723)

1.69.3. 已知问题

  • 如果您将日志转发到外部 Elasticsearch 服务器,然后在管道 secret 中更改配置的值,如用户名和密码,Fluentd forwarder 会加载新 secret,但使用旧值连接到外部 Elasticsearch 服务器。出现这个问题的原因是,Red Hat OpenShift Logging Operator 当前不会监控 secret 的内容更改。(LOG-1652)

    作为临时解决方案,如果更改了 secret,您可以强制重新部署 Fluentd Pod:

    $ oc delete pod -l component=collector

1.69.4. 弃用和删除的功能

之前版本中的一些功能已被弃用或删除。

弃用的功能仍然包含在 OpenShift Logging 中,并且仍然被支持。但是,这个功能会在以后的发行版本中被删除,且不建议在新的部署中使用。

1.69.5. 使用旧的 Fluentd 和旧 syslog 方法转发日志已被弃用

从 OpenShift Container Platform 4.6 升级到现在,使用以下传统方法转发日志已被弃用,并将在以后的发行版本中删除:

  • 使用旧的 Fluentd 方法转发日志
  • 使用旧的 syslog 方法转发日志

反之,使用以下非传统方法:

1.69.6. CVE

第 2 章 支持

logging 子系统只支持本文档中介绍的配置选项。

不要使用任何其他配置选项,因为它们不被支持。各个 OpenShift Container Platform 发行版本的配置范例可能会有所变化,只有掌握了所有可能的配置,才能稳妥应对这样的配置变化。如果您使用本文档中描述的配置以外的配置,您的更改会被覆盖,因为 Operator 旨在协调差异。

注意

如果必须执行 OpenShift Container Platform 文档中未描述的配置,您需要将 Red Hat OpenShift Logging Operator 设置为 Unmanaged。一个不受管理的 OpenShift Logging 环境不被支持,且不会接收更新,直到 OpenShift Logging 返回到 Managed

注意

Red Hat OpenShift 的日志记录子系统作为一个可安装的组件提供,它与核心 OpenShift Container Platform 不同的发行周期不同。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。

Red Hat OpenShift 的 logging 子系统是一个建议的收集器,以及应用程序、基础架构和审计日志的规范化程序。它旨在将日志转发到各种支持的系统。

Red Hat OpenShift 的 logging 子系统不是:

  • 一个大规模日志收集系统
  • 兼容安全信息和事件监控 (SIEM)
  • 历史或长日志的保留或存储
  • 保证的日志接收器
  • 安全存储 - 默认不存储审计日志

第 3 章 Logging 5.6

3.1. 日志记录 5.6 发行注记

注意

Red Hat OpenShift 的日志记录子系统作为一个可安装的组件提供,它与核心 OpenShift Container Platform 不同的发行周期不同。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。

注意

stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-X,其中 X 是您安装的日志记录版本。

3.1.1. Logging 5.6.11

此发行版本包括 OpenShift Logging 程序错误修复 5.6.11

3.1.1.1. 程序错误修复

  • 在此次更新之前,LokiStack 网关会广泛缓存授权请求。因此,这会导致错误的授权结果。在这个版本中,Loki 网关缓存以更精细的方式缓存来解决这个问题。(LOG-4435)

3.1.1.2. CVE

3.1.2. Logging 5.6.8

此发行版本包括 OpenShift Logging 程序错误修复 5.6.8

3.1.2.1. 程序错误修复

  • 在此次更新之前,当输入匹配标签值包含 ClusterLogForwarder 中的 / 字符时,向量收集器意外终止。在这个版本中,通过引用 match 标签解决了这个问题,使收集器能够启动和收集日志。(LOG-4091)
  • 在此次更新之前,当在 OpenShift Container Platform Web 控制台中查看日志时,点更多数据可用选项仅在第一次点击时加载更多日志条目。在这个版本中,每次点击时会加载更多条目。(OU-187)
  • 在此次更新之前,当在 OpenShift Container Platform Web 控制台中查看日志时,点 streaming 选项只显示 流传输 日志消息,而无需显示实际日志。在这个版本中,消息和日志流都会正确显示。(OU-189)
  • 在此次更新之前,Loki Operator 会重置错误,导致识别配置问题很难排除故障。在这个版本中,错误会保留,直到配置错误解决为止。(LOG-4158)
  • 在此次更新之前,具有超过 8,000 个命名空间的集群会导致 Elasticsearch 拒绝查询,因为命名空间列表大于 http.max_header_size 设置。在这个版本中,标头大小的默认值有所增加,从而解决了这个问题。(LOG-4278)

3.1.2.2. CVE

3.1.3. Logging 5.6.7

此发行版本包括 OpenShift Logging 程序错误修复 5.6.7

3.1.3.1. 程序错误修复

  • 在此次更新之前,LokiStack 网关返回命名空间的标签值,而无需应用用户的访问权限。在这个版本中,Loki 网关应用标签值请求的权限,从而解决了这个问题。(LOG-3728)
  • 在此次更新之前,当消息包含时间戳时,日志消息的 time 字段不会默认解析为 Fluentd 中的 structured.time。在这个版本中,如果输出目的地支持,解析的日志消息将包含一个 structured.time 字段。(LOG-4090)
  • 在此次更新之前,LokiStack 路由配置会导致查询运行时间超过 30 秒。在这个版本中,Loki global 和 per-tenant queryTimeout 设置会影响路由超时设置,从而解决了这个问题。(LOG-4130)
  • 在此次更新之前,带有为租户限制定义的值的 LokiStack CR,但没有全局限制会导致 Loki Operator 崩溃。在这个版本中,Operator 可以处理仅定义租户限制的 LokiStack CR,从而解决了这个问题。(LOG-4199)
  • 在此次更新之前,OpenShift Container Platform Web 控制台会在升级后生成错误,因为 web 浏览器保留了之前版本的缓存文件。在这个版本中,这些文件不再被缓存,从而解决了这个问题。(LOG-4099)
  • 在此次更新之前,Vector 在转发到默认 Loki 实例时会生成证书错误。在这个版本中,可以使用 Vector 将日志在没有错误的情况下转发到 Loki。(LOG-4184)
  • 在此次更新之前,当 tls.insecureSkipVerify 选项被设置为 true 时,Cluster Logging Operator API 需要一个由 secret 提供的证书。在这个版本中,Cluster Logging Operator API 不再需要在这样的情形中由 secret 提供证书。以下配置已添加到 Operator 的 CR 中:

    tls.verify_certificate = false
    tls.verify_hostname = false

    (LOG-4146)

3.1.3.2. CVE

3.1.4. Logging 5.6.6

此发行版本包括 OpenShift Logging 程序错误修复 5.6.6

3.1.4.1. 程序错误修复

  • 在此次更新之前,在将 ClusterLogForwarder 自定义资源配置为写入与有效负载中键匹配的 Kafka 输出主题时,会丢弃信息,因为出现错误。在这个版本中,这个问题已通过在 Fluentd 的缓冲名称前添加一个下划线前缀来解决。(LOG-3458)
  • 在此次更新之前,当内节点被重复使用并且有多个具有相同内节点的条目时,Fluentd 中会出现监控被提早关闭的问题。在这个版本中,在 Fluentd 位置文件中提早关闭监控的问题已解决。(LOG-3629)
  • 在此次更新之前,Fluentd 的 JavaScript 客户端多行异常的检测会失败,从而导致它们以多行打印。在这个版本中,例外会以一行输出,从而解决了这个问题。(LOG-3761)
  • 在此次更新之前,从 Red Hat Openshift Logging Operator 版本 4.6 直接升级到 5.6 版本,从而导致功能问题。在这个版本中,升级范围被限制在两个版本内,从而解决了这个问题。(LOG-3837)
  • 在此次更新之前,Splun 或 Google Logging 输出不会显示指标。在这个版本中,这个问题已通过为 HTTP 端点发送指标来解决。(LOG-3932)
  • 在此次更新之前,当 ClusterLogForwarder 自定义资源被删除时,收集器 Pod 会继续运行。在这个版本中,在不启用日志转发时,收集器 Pod 不会运行。(LOG-4030)
  • 在此次更新之前,无法通过点击并在日志直方图上拖动,在 OpenShift Container Platform Web 控制台中选择时间范围。在这个版本中,可以使用单击和拖动来成功选择时间范围。(LOG-4101)
  • 在此次更新之前,监视文件的 Fluentd 哈希值是使用对日志文件的路径生成的,从而导致日志轮转时没有唯一的哈希值。在这个版本中,监视文件的哈希值使用内节点号创建,从而解决了这个问题。(LOG-3633)
  • 在此次更新之前,点 OpenShift Container Platform Web 控制台中的 Show Resources 链接不会产生任何影响。在这个版本中,通过修复 Show Resources 链接的功能来解决这个问题,以切换每个日志条目的资源显示。(LOG-4118)

3.1.4.2. CVE

3.1.5. Logging 5.6.5

此发行版本包括 OpenShift Logging 程序错误修复 5.6.5

3.1.5.1. 程序错误修复

  • 在此次更新之前,模板定义会阻止 Elasticsearch 索引一些标签和 namespace_labels,从而导致数据 ingestion 出现问题。在这个版本中,修复替换了标签中的点和斜杠,以确保正确修正、有效地解决问题。(LOG-3419)
  • 在此次更新之前,如果 OpenShift Web 控制台的 Logs 页面无法连接到 LokiStack,则会显示通用错误消息,从而不提供额外的上下文或故障排除建议。在这个版本中,错误消息已被改进,使其包含更具体的故障排除详情和建议。(LOG-3750)
  • 在此次更新之前,时间范围格式不会被验证,从而导致选择自定义日期范围的错误。在这个版本中,时间格式会被验证,允许用户选择有效的范围。如果选择了无效的时间范围格式,则会向用户显示错误消息。(LOG-3583)
  • 在此次更新之前,当在 Loki 中搜索日志时,即使表达式的长度不超过 5120 个字符,查询也会在很多情况下失败。在这个版本中,查询授权标签匹配程序已被优化,从而解决了这个问题。(LOG-3480)
  • 在此次更新之前,Loki Operator 无法生成一个 memberlist 配置,该配置足以在使用 memberlist 进行私有 IP 时查找所有组件。在这个版本中,确保生成的配置包含公告的端口,从而成功查找所有组件。(LOG-4008)

3.1.5.2. CVE

3.1.6. Logging 5.6.4

此发行版本包括 OpenShift Logging 程序错误修复 5.6.4

3.1.6.1. 程序错误修复

  • 在此次更新之前,当 LokiStack 部署为日志存储时,Loki pod 生成的日志会被收集并发送到 LokiStack。在这个版本中,Loki 生成的日志不包括在集合中,不会存储。(LOG-3280)
  • 在此次更新之前,当 OpenShift Web 控制台的 Logs 页面中的查询编辑器为空时,下拉菜单不会被填充。在这个版本中,如果尝试空查询,会显示错误消息,且下拉菜单现在会如预期填充。(LOG-3454)
  • 在此次更新之前,当 tls.insecureSkipVerify 选项被设置为 true 时,Cluster Logging Operator 会生成不正确的配置。因此,当尝试跳过证书验证时,Operator 无法将数据发送到 Elasticsearch。在这个版本中,Cluster Logging Operator 会生成正确的 TLS 配置,即使启用了 tls.insecureSkipVerify。因此,即使尝试跳过证书验证,数据也可以成功发送到 Elasticsearch。(LOG-3475)
  • 在此次更新之前,当启用结构化解析且消息转发到多个目的地时,它们不会被深度复制。这会导致一些接收的日志,包括结构化消息,而其他日志则没有。在这个版本中,在 JSON 解析前,配置生成已被修改为深度复制信息。因此,所有收到的消息现在都包含结构化消息,即使它们被转发到多个目的地。(LOG-3640)
  • 在此次更新之前,如果 collection 字段包含 {},可能会导致 Operator 崩溃。在这个版本中,Operator 将忽略这个值,允许 Operator 在不中断的情况下平稳运行。(LOG-3733)
  • 在此次更新之前,LokiiHost 的 Gateway 组件的 nodeSelector 属性没有任何效果。在这个版本中,nodeSelector 属性可以正常工作。(LOG-3783)
  • 在此次更新之前,静态 LokiStack memberlist 配置只依赖于私有 IP 网络。因此,当 OpenShift Container Platform 集群 pod 网络配置了公共 IP 范围时,Lokiition pod 会出现 crashloop。在这个版本中,Loki 管理员可以选择将 pod 网络用于 memberlist 配置。这解决了这个问题,并防止 LokiStack pod 在 OpenShift Container Platform 集群 pod 网络配置了公共 IP 范围时进入 crashloop 状态。(LOG-3814)
  • 在此次更新之前,如果 tls.insecureSkipVerify 字段设置为 true,Cluster Logging Operator 会生成不正确的配置。因此,当尝试跳过证书验证时,Operator 无法将数据发送到 Elasticsearch。在这个版本中,即使启用了 tls.insecureSkipVerify,Operator 也会生成正确的 TLS 配置。因此,即使尝试跳过证书验证,数据也可以成功发送到 Elasticsearch。(LOG-3838)
  • 在此次更新之前,如果 Cluster Logging Operator (CLO) 安装没有 Elasticsearch Operator,则 CLO pod 会持续显示与删除 Elasticsearch 相关的错误消息。在这个版本中,CLO 在显示任何错误消息前执行额外的检查。因此,没有 Elasticsearch Operator 时不再显示与 Elasticsearch 删除相关的错误消息。(LOG-3763)

3.1.6.2. CVE

3.1.7. Logging 5.6.3

此发行版本包括 OpenShift Logging 程序错误修复 5.6.3

3.1.7.1. 程序错误修复

  • 在此次更新之前,Operator 将网关租户 secret 信息存储在配置映射中。在这个版本中,Operator 将此信息存储在 secret 中。(LOG-3717)
  • 在此次更新之前,Fluentd 收集器不会捕获存储在 /var/log/auth-server/audit.log 中的 OAuth 登录事件。在这个版本中,Fluentd 会捕获这些 OAuth 登录事件,从而解决了这个问题。(LOG-3729)

3.1.7.2. CVE

3.1.8. 日志记录 5.6.2

此发行版本包括 OpenShift Logging 程序错误修复 5.6.2

3.1.8.1. 程序错误修复

  • 在此次更新之前,收集器没有根据 systemd 日志的优先级正确设置 level 字段。在这个版本中,level 字段会被正确设置。(LOG-3429)
  • 在此次更新之前,Operator 会错误地在 OpenShift Container Platform 4.12 或更高版本上生成不兼容警告。在这个版本中,Operator 最大 OpenShift Container Platform 版本值已被修正,从而解决了这个问题。(LOG-3584)
  • 在此次更新之前,创建一个带有 default 值的 ClusterLogForwarder 自定义资源(CR)不会生成任何错误。在这个版本中,这个值无效生成的错误警告。(LOG-3437)
  • 在此次更新之前,当 ClusterLogForwarder 自定义资源 (CR) 配置了多个管道时,会将一个输出设置为默认,收集器 Pod 会重启。在这个版本中,输出验证的逻辑已被修正,从而解决了这个问题。(LOG-3559)
  • 在此次更新之前,收集器 Pod 在创建后会重启。在这个版本中,部署的收集器不会自行重启。(LOG-3608)
  • 在此次更新之前,补丁版本会从目录中删除了 Operator 的早期版本。这使得无法安装旧版本。这个版本更改了捆绑包配置,以便以前的同一次版本的发行版本保留在目录中。(LOG-3635)

3.1.8.2. CVE

3.1.9. Logging 5.6.1

此发行版本包括 OpenShift Logging 程序错误修复 5.6.1

3.1.9.1. 程序错误修复

  • 在此次更新之前,紧凑器会在保留活跃时报告 TLS 证书错误与 querier 通信。在这个版本中,紧凑器和 querier 不再通过 HTTP 进行通信。(LOG-3494)
  • 在此次更新之前,Loki Operator 不会重试设置 LokiStack CR 的状态,这会导致过时的状态信息。在这个版本中,Operator 会重试冲突的状态信息更新。(LOG-3496)
  • 在此次更新之前,当 kube-apiserver-operator Operator 检查 Webhook 的有效性时,Loki Operator Webhook 服务器会导致 TLS 错误。在这个版本中,Loki Operator Webhook PKI 由 Operator Lifecycle Manager (OLM) 管理,从而解决了这个问题。(LOG-3510)
  • 在此次更新之前,LokiStack Gateway Labels Enforcer 会在使用带有布尔值表达式的组合标签过滤器时为有效的 LogQL 查询生成解析错误。在这个版本中,LokiStack LogQL 实现支持带有布尔值表达式的标签过滤器,并解决这个问题。(LOG-3441),(LOG-3397)
  • 在此次更新之前,如果多个标签键具有相同的前缀,一些键包含点,则写入 Elasticsearch 的记录将失败。在这个版本中,下划线替换标签键中的点,从而解决了这个问题。(LOG-3463)
  • 在此次更新之前,因为 OpenShift Container Platform 控制台和 logging-view-plugin 之间的不兼容,Red Hat OpenShift Logging Operator 不适用于 OpenShift Container Platform 4.10 集群。在这个版本中,插件可以与 OpenShift Container Platform 4.10 管理控制台正确集成。(LOG-3447)
  • 在此次更新之前,ClusterLogForwarder 自定义资源的协调会错误地报告引用默认日志存储的管道的降级状态。在这个版本中,管道会正确验证。(LOG-3477)

3.1.9.2. CVE

3.1.10. Logging 5.6.0

此版本包括 OpenShift Logging Release 5.6

3.1.10.1. 弃用通知

在日志记录版本 5.6 中,Fluentd 已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为 Fluentd 的替代选择,您可以使用 Vector。

3.1.10.2. 功能增强

  • 在这个版本中,日志记录与 OpenShift Container Platform 集群范围的加密策略兼容。(LOG-895)
  • 在这个版本中,您可以通过 LokiStack 自定义资源(按优先级排序)来为每个租户、每个流和全局策略保留策略声明。(LOG-2695)
  • 在这个版本中,Splun 是日志转发的可用输出选项。(LOG-2913)
  • 在这个版本中,Vector 替换了 Fluentd 作为默认的 Collector。(LOG-2222)
  • 在这个版本中,Developer 角色可以访问在运行 OpenShift Container Platform 4.11 及更高版本的集群中将其分配到的 Log Console Plugin 中的每个项目工作负载日志。(LOG-3388)
  • 在这个版本中,任何源的日志包含一个字段 openshift.cluster_id,它是部署 Operator 的集群的唯一标识符。您可以使用以下命令查看 clusterID 值。(LOG-2715)
$ oc get clusterversion/version -o jsonpath='{.spec.clusterID}{"\n"}'

3.1.10.3. 已知问题

  • 在此次更新之前,如果多个标签键具有相同的前缀,并且一些键包含 . 字符,则 Elasticsearch 将拒绝日志。这通过将标签键中的 . 替换为 _ 来解决 Elasticsearch 的限制。这个问题的一个临时解决方案是删除导致错误的标签,或向标签添加一个命名空间。(LOG-3463)

3.1.10.4. 程序错误修复

  • 在此次更新之前,如果您删除了 Kibana 自定义资源,OpenShift Container Platform Web 控制台将继续显示到 Kibana 的链接。在这个版本中,删除 Kibana 自定义资源也会删除该链接。(LOG-2993)
  • 在此次更新之前,用户无法查看其有权访问的命名空间的应用程序日志。在这个版本中,Loki Operator 会自动创建一个集群角色和集群角色绑定,允许用户读取应用程序日志。(LOG-3072)
  • 在此次更新之前,Operator 在使用 LokiStack 作为默认日志存储时删除了 ClusterLogForwarder 自定义资源中定义的任何自定义输出。在这个版本中,Operator 会在处理 ClusterLogForwarder 自定义资源时将自定义输出与默认输出合并。(LOG-3090)
  • 在此次更新之前,CA 密钥用作将 CA 挂载到 Loki 的卷名称,从而导致 CA Key 包含非格式字符(如点)时出现错误状态。在这个版本中,卷名称标准化为一个内部字符串,用于解决这个问题。(LOG-3331)
  • 在此次更新之前,在 LokiStack 自定义资源定义中设置的默认值,会导致无法创建 LokiStack 实例,而无需 ReplicationFactor1。在这个版本中,Operator 为使用的大小设置实际值。(LOG-3296)
  • 在此次更新之前,当启用 JSON 解析时向量解析消息字段,而不定义 structuredTypeKeystructuredTypeName 值。在这个版本中,在将结构化日志写入 Elasticsearch 时,structuredTypeKeystructuredTypeName 所需的值。(LOG-3195)
  • 在此次更新之前,Elasticsearch Operator 的 secret 创建组件会持续修改的内部 secret。在这个版本中,现有 secret 会被正确处理。(LOG-3161)
  • 在此次更新之前,Operator 可以在 Elasticsearch 或 Kibana 部署改变状态时,输入删除和重新创建收集器 daemonset 的循环。在这个版本中,Operator 状态处理中会解决这个问题。(LOG-3157)
  • 在此次更新之前,Kibana 有一个固定的 24h OAuth cookie 过期时间,当 accessTokenInactivityTimeout 字段被设置为小于 24h 的值时,会导致 Kibana 中的 401 错误。在这个版本中,Kibana 的 OAuth cookie 过期时间与 accessTokenInactivityTimeout 同步,默认值为 24h。(LOG-3129)
  • 在此次更新之前,协调资源的 Operator 常规模式是在尝试获取或更新前尝试和创建,这会导致创建后持续的 HTTP 409 响应。在这个版本中,Operator 会首先尝试检索对象,仅在缺少或未指定对象时创建或更新它。(LOG-2919)
  • 在此次更新之前,Fluentd 中的 .level 和'.structure.level 字段可能包含不同的值。在这个版本中,每个字段的值都相同。(LOG-2819)
  • 在此次更新之前,Operator 不会等待可信 CA 捆绑包填充,并在更新捆绑包后再次部署收集器。在这个版本中,Operator 会在继续收集器部署前,等待简要查看捆绑包是否已填充。(LOG-2789)
  • 在此次更新之前,日志记录遥测信息在检查指标时会出现两次。在这个版本中,日志记录遥测信息会如预期显示。(LOG-2315)
  • 在此次更新之前,Fluentd pod 日志会在启用 JSON 解析添加后包含警告信息。在这个版本中,不会显示警告信息。(LOG-1806)
  • 在此次更新之前,must-gather 脚本无法完成,因为 oc 需要具有写入权限的文件夹来构建其缓存。在这个版本中,oc 对文件夹有写入权限,must-gather 脚本可以成功完成。(LOG-3446)
  • 在此次更新之前,日志收集器 SCC 可以替换为集群上的其他 SCC,从而导致收集器不可用。在这个版本中,设置日志收集器 SCC 的优先级,使其优先于其他 SCC。(LOG-3235)
  • 在此次更新之前,向量缺少字段 sequence,它被添加到 fluentd 中,作为处理缺少实际纳秒精度的方法。在这个版本中,字段 openshift.sequence 已添加到事件日志中。(LOG-3106)

3.1.10.5. CVE

3.2. 日志 5.6 入门

此日志部署过程概述提供了便于参考。它不是完整的文档。对于新的安装,建议使用 VectorLokiStack

注意

从日志记录版本 5.5 开始,您可以选择从 FluentdVector 收集器实现中选择,ElasticsearchLokiStack 作为日志存储。有关日志记录的文档正在更新,以反映这些底层组件更改。

注意

Red Hat OpenShift 的日志记录子系统作为一个可安装的组件提供,它与核心 OpenShift Container Platform 不同的发行周期不同。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。

先决条件

  • 日志存储首选项:ElasticsearchLokiStack
  • 收集器实现首选项:FluentdVector
  • 日志转发输出的凭证
注意

从日志记录版本 5.4.3 开始,Elasticsearch Operator 已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为使用 Elasticsearch Operator 管理默认日志存储的替代选择,您可以使用 Loki Operator。

  1. 为您要使用的日志存储安装 Operator。

    • 对于 Elasticsearch,安装 OpenShift Elasticsearch Operator
    • 对于 LokiStack,请安装 Loki Operator

      • 创建 LokiStack 自定义资源 (CR) 实例。
  2. 安装 Red Hat OpenShift Logging Operator
  3. 创建 ClusterLogging 自定义资源 (CR) 实例。

    1. 选择您的 Collector 实现。

      注意

      从日志记录版本 5.6 Fluentd 开始,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为 Fluentd 的替代选择,您可以使用 Vector。

  4. 创建 ClusterLogForwarder 自定义资源 (CR) 实例。
  5. 为所选输出管道创建 secret。

3.3. 了解日志记录

logging 子系统由这些逻辑组件组成:

  • collector - 从每个节点读取容器日志数据,并将日志数据转发到配置的输出。
  • store - 存储用于分析的日志数据;转发器的默认输出。
  • visualization - 用于搜索、查询和查看存储日志的图形界面。

这些组件由 Operator 和自定义资源 (CR) YAML 文件管理。

Red Hat OpenShift 的 logging 子系统会收集容器日志和节点日志。它们被归类为:

  • Application - 非基础架构容器生成的容器日志。
  • Infrastructure - 容器日志来自命名空间 kube-*openshift-\*,节点日志来自 journald
  • audit - 日志来自 auditd, kube-apiserver, openshift-apiserver, 和 ovn(如果启用)。

日志记录收集器是一个 daemonset,它将 pod 部署到每个 OpenShift Container Platform 节点。系统及基础架构日志由来自操作系统、容器运行时和 OpenShift Container Platform 的日志消息生成。

容器日志由集群中运行的 pod 中运行的容器生成。每个容器生成单独的日志流。收集器从这些源收集日志,并在 ClusterLogForwarder 自定义资源中内部或外部转发它们。

3.4. 管理日志记录部署

3.4.1. 使用 Web 控制台部署 Red Hat OpenShift Logging Operator

您可以使用 OpenShift Container Platform Web 控制台来部署 Red Hat OpenShift Logging Operator。

先决条件

Red Hat OpenShift 的日志记录子系统作为一个可安装的组件提供,它与核心 OpenShift Container Platform 不同的发行周期不同。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。

流程

使用 OpenShift Container Platform Web 控制台部署 Red Hat OpenShift Logging Operator:

  1. 安装 Red Hat OpenShift Logging Operator:

    1. 在 OpenShift Container Platform Web 控制台中,点击 OperatorsOperatorHub
    2. Filter by keyword 字段中输入 Logging
    3. 从可用的 Operator 列表中选择 Red Hat OpenShift Logging,然后点 Install
    4. 选择 stablestable-5.y 作为 更新频道

      注意

      stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-X,其中 X 是您安装的日志记录版本。

    5. 确保在 Installation Mode 下选择了 A specific namespace on the cluster
    6. 确定在 Installed Namespace 下的 Operator recommended namespaceopenshift-logging
    7. 选择 Enable Operator recommended cluster monitoring on this Namespace
    8. Update approval 选择一个选项。

      • Automatic 选项允许 Operator Lifecycle Manager (OLM) 在有新版本可用时自动更新 Operator。
      • Manual 选项需要具有适当凭证的用户批准 Operator 更新。
    9. 为 Console 插件选择 EnableDisable
    10. Install
  2. 通过切换到 OperatorsInstalled Operators 页来验证 Red Hat OpenShift Logging Operator 是否已安装。

    1. 确保 openshift-logging 项目中列出的 Red Hat OpenShift LoggingStatusInstallSucceeded
  3. 创建 ClusterLogging 实例。

    注意

    Web 控制台的表单视图不包括所有可用的选项。建议您使用 YAML 视图 来完成您的设置。

    1. collection 部分中,选择一个 Collector Implementation。

      注意

      从日志记录版本 5.6 Fluentd 开始,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为 Fluentd 的替代选择,您可以使用 Vector。

    2. logStore 部分中,选择一个类型。

      注意

      从日志记录版本 5.4.3 开始,Elasticsearch Operator 已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为使用 Elasticsearch Operator 管理默认日志存储的替代选择,您可以使用 Loki Operator。

    3. Create

3.4.2. 使用 Web 控制台部署 Loki Operator

您可以使用 OpenShift Container Platform Web 控制台安装 Loki Operator。

先决条件

  • 支持的日志存储(AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation)

流程

使用 OpenShift Container Platform Web 控制台安装 Loki Operator:

  1. 在 OpenShift Container Platform Web 控制台中,点击 OperatorsOperatorHub
  2. Filter by keyword 字段中输入 Loki

    1. 从可用的 Operator 列表中选择 Loki Operator,然后点 Install
  3. 选择 stablestable-5.y 作为 更新频道

    注意

    stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-X,其中 X 是您安装的日志记录版本。

  4. 确保在 Installation Mode 下选择了 All namespaces on the cluster
  5. 确定在 Installed Namespace 下选择了 openshift-operators-redhat
  6. 选择 Enable Operator recommended cluster monitoring on this Namespace

    这个选项在 Namespace 对象中设置 openshift.io/cluster-monitoring: "true" 标识。您必须设置这个选项,以确保集群监控提取 openshift-operators-redhat 命名空间。

  7. Update approval 选择一个选项。

    • Automatic 选项允许 Operator Lifecycle Manager (OLM) 在有新版本可用时自动更新 Operator。
    • Manual 选项需要具有适当凭证的用户批准 Operator 更新。
  8. Install
  9. 通过切换到 OperatorsInstalled Operators 页来验证 LokiOperator 已被安装。

    1. 确定在所有项目中,列出的 LokiOperatorStatusSucceeded
  10. 创建一个 Secret YAML 文件,它使用 access_key_idaccess_key_secret 字段指定您的凭证和 bucketnamesendpointregion 来定义对象存储位置。AWS 在以下示例中使用:

    apiVersion: v1
    kind: Secret
    metadata:
      name: logging-loki-s3
      namespace: openshift-logging
    stringData:
      access_key_id: AKIAIOSFODNN7EXAMPLE
      access_key_secret: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      bucketnames: s3-bucket-name
      endpoint: https://s3.eu-central-1.amazonaws.com
      region: eu-central-1
  11. Details 选项卡中,选择 LokiStack 下的 Create instance。然后选择 YAML 视图。粘贴以下模板,根据实际情况替换相关的值。

      apiVersion: loki.grafana.com/v1
      kind: LokiStack
      metadata:
        name: logging-loki 1
        namespace: openshift-logging
      spec:
        size: 1x.small 2
        storage:
          schemas:
          - version: v12
            effectiveDate: '2022-06-01'
          secret:
            name: logging-loki-s3 3
            type: s3 4
        storageClassName: <storage_class_name> 5
        tenants:
          mode: openshift-logging
    1
    名称应该是 logging-loki
    2
    选择您的 Loki 部署大小。
    3
    定义用于日志存储的 secret。
    4
    定义对应的存储类型。
    5
    为临时存储输入现有存储类的名称。为获得最佳性能,请指定分配块存储的存储类。可以使用 oc get storageclasses 列出集群的可用存储类。
    1. 应用配置:

      oc apply -f logging-loki.yaml
  12. 创建或编辑 ClusterLogging CR:

      apiVersion: logging.openshift.io/v1
      kind: ClusterLogging
      metadata:
        name: instance
        namespace: openshift-logging
      spec:
        managementState: Managed
        logStore:
          type: lokistack
          lokistack:
            name: logging-loki
          collection:
            type: vector
    1. 应用配置:

      oc apply -f cr-lokistack.yaml

3.4.3. 使用 CLI 从 OperatorHub 安装

您可以使用 CLI 从 OperatorHub 安装 Operator,而不必使用 OpenShift Container Platform Web 控制台。使用 oc 命令来创建或更新一个订阅对象。

先决条件

  • 使用具有 cluster-admin 权限的账户访问 OpenShift Container Platform 集群。
  • 在您的本地系统安装 oc 命令。

流程

  1. 查看 OperatorHub 中集群可用的 Operator 列表:

    $ oc get packagemanifests -n openshift-marketplace

    输出示例

    NAME                               CATALOG               AGE
    3scale-operator                    Red Hat Operators     91m
    advanced-cluster-management        Red Hat Operators     91m
    amq7-cert-manager                  Red Hat Operators     91m
    ...
    couchbase-enterprise-certified     Certified Operators   91m
    crunchy-postgres-operator          Certified Operators   91m
    mongodb-enterprise                 Certified Operators   91m
    ...
    etcd                               Community Operators   91m
    jaeger                             Community Operators   91m
    kubefed                            Community Operators   91m
    ...

    记录下所需 Operator 的目录。

  2. 检查所需 Operator,以验证其支持的安装模式和可用频道:

    $ oc describe packagemanifests <operator_name> -n openshift-marketplace
  3. 一个 Operator 组(由 OperatorGroup 对象定义),在其中选择目标命名空间,在其中为与 Operator 组相同的命名空间中的所有 Operator 生成所需的 RBAC 访问权限。

    订阅 Operator 的命名空间必须具有与 Operator 的安装模式相匹配的 Operator 组,可采用 AllNamespaces 模式,也可采用 SingleNamespace 模式。如果您要使用 AllNamespaces 安装 Operator,则 openshift-operators 命名空间已有适当的 Operator 组。

    如果要安装的 Operator 采用 SingleNamespace 模式,而您没有适当的 Operator 组,则必须创建一个。

    注意

    在选择 SingleNamespace 模式时,该流程的 Web 控制台版本会在后台自动为您处理 OperatorGroupSubscription 对象的创建。

    1. 创建 OperatorGroup 对象 YAML 文件,如 operatorgroup.yaml

      OperatorGroup 对象示例

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: <operatorgroup_name>
        namespace: <namespace>
      spec:
        targetNamespaces:
        - <namespace>

    2. 创建 OperatorGroup 对象:

      $ oc apply -f operatorgroup.yaml
  4. 创建一个 Subscription 对象 YAML 文件,以便为 Operator 订阅一个命名空间,如 sub.yaml

    Subscription 对象示例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: <subscription_name>
      namespace: openshift-operators 1
    spec:
      channel: <channel_name> 2
      name: <operator_name> 3
      source: redhat-operators 4
      sourceNamespace: openshift-marketplace 5
      config:
        env: 6
        - name: ARGS
          value: "-v=10"
        envFrom: 7
        - secretRef:
            name: license-secret
        volumes: 8
        - name: <volume_name>
          configMap:
            name: <configmap_name>
        volumeMounts: 9
        - mountPath: <directory_name>
          name: <volume_name>
        tolerations: 10
        - operator: "Exists"
        resources: 11
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
        nodeSelector: 12
          foo: bar

    1
    对于 AllNamespaces 安装模式的使用,指定 openshift-operators 命名空间。否则,为 SingleNamespace 安装模式使用指定相关单一命名空间。
    2
    要订阅的频道的名称。
    3
    要订阅的 Operator 的名称。
    4
    提供 Operator 的目录源的名称。
    5
    目录源的命名空间。将 openshift-marketplace 用于默认的 OperatorHub 目录源。
    6
    env 参数定义必须存在于由 OLM 创建的 pod 中所有容器中的环境变量列表。
    7
    envFrom 参数定义要在容器中填充环境变量的源列表。
    8
    volumes 参数定义 OLM 创建的 pod 上必须存在的卷列表。
    9
    volumeMounts 参数定义由 OLM 创建的 pod 中必须存在的 VolumeMounts 列表。如果 volumeMount 引用不存在的 ,OLM 无法部署 Operator。
    10
    tolerations 参数为 OLM 创建的 pod 定义 Tolerations 列表。
    11
    resources 参数为 OLM 创建的 pod 中所有容器定义资源限制。
    12
    nodeSelector 参数为 OLM 创建的 pod 定义 NodeSelector
  5. 创建 Subscription 对象:

    $ oc apply -f sub.yaml

    此时,OLM 已了解所选的 Operator。Operator 的集群服务版本(CSV)应出现在目标命名空间中,由 Operator 提供的 API 应可用于创建。

3.4.4. 使用 Web 控制台从集群中删除 Operator

集群管理员可以使用 Web 控制台从所选命名空间中删除已安装的 Operator。

先决条件

  • 使用具有 cluster-admin 权限的账户访问 OpenShift Container Platform 集群 Web 控制台。

流程

  1. 进入到 OperatorsInstalled Operators 页面。
  2. Filter by name 字段中滚动或输入关键字以查找您要删除的 Operator。然后点它。
  3. Operator Details 页面右侧,从 Actions 列表中选择 Uninstall Operator

    此时会显示 Uninstall Operator? 对话框。

  4. 选择 Uninstall 来删除 Operator、Operator 部署和 pod。按照此操作,Operator 将停止运行,不再接收更新。

    注意

    此操作不会删除 Operator 管理的资源,包括自定义资源定义 (CRD) 和自定义资源 (CR) 。Web 控制台和继续运行的集群资源启用的仪表板和导航项可能需要手动清理。要在卸载 Operator 后删除这些,您可能需要手动删除 Operator CRD。

3.4.5. 使用 CLI 从集群中删除 Operator

集群管理员可以使用 CLI 从所选命名空间中删除已安装的 Operator。

先决条件

  • 使用具有 cluster-admin 权限的账户访问 OpenShift Container Platform 集群。
  • 已在工作站上安装 oc 命令。

流程

  1. 通过 currentCSV 字段检查已订阅 Operator 的当前版本(如 jaeger):

    $ oc get subscription jaeger -n openshift-operators -o yaml | grep currentCSV

    输出示例

      currentCSV: jaeger-operator.v1.8.2

  2. 删除订阅(如 jaeger):

    $ oc delete subscription jaeger -n openshift-operators

    输出示例

    subscription.operators.coreos.com "jaeger" deleted

  3. 使用上一步中的 currentCSV 值来删除目标命名空间中相应 Operator 的 CSV:

    $ oc delete clusterserviceversion jaeger-operator.v1.8.2 -n openshift-operators

    输出示例

    clusterserviceversion.operators.coreos.com "jaeger-operator.v1.8.2" deleted

3.5. 日志记录参考

3.5.1. 收集器功能

输出协议测试使用FluentdVector

Cloudwatch

REST over HTTP(S)

 

Elasticsearch v6

 

v6.8.1

Elasticsearch v7

 

v7.12.2, 7.17.7

Elasticsearch v8

 

v8.4.3

 

Fluent Forward

Fluentd forward v1

Fluentd 1.14.6, Logstash 7.10.1

 

Google Cloud Logging

   

HTTP

HTTP 1.1

Fluentd 1.14.6, Vector 0.21

  

Kafka

Kafka 0.11

Kafka 2.4.1, 2.7.0, 3.3.1

Loki

REST over HTTP(S)

Loki 2.3.0, 2.7

Splunk

HEC

v8.2.9, 9.0.0

 

Syslog

RFC3164, RFC5424

Rsyslog 8.37.0-9.el7

 

表 3.1. 日志源

功能FluentdVector

应用程序容器日志

特定于应用程序的路由

命名空间划分应用程序特定路由

Infra 容器日志

Infra 日志

kube API 审计日志

OpenShift API 审计日志

打开虚拟网络 (OVN) 审计日志

表 3.2. 授权和身份验证

功能FluentdVector

Elasticsearch 证书

Elasticsearch 用户名/密码

Cloudwatch keys

Cloudwatch STS

Kafka 证书

Kafka 用户名/密码

Kafka SASL

Loki bearer 令牌

表 3.3. 规范化和转换

功能FluentdVector

ViaQ 数据模型 - 应用程序

ViaQ 数据模型 - infra

ViaQ 数据模型 - infra(journal)

ViaQ 数据模型 - Linux 审计

ViaQ 数据模型 - kube-apiserver 审计

ViaQ 数据模型 - OpenShift API 审计

ViaQ 数据模型 - OVN

loglevel Normalization

JSON 解析

结构化索引

多行错误检测

 

multicontainer/ split 索引

Flatten 标签

CLF 静态标签

表 3.4. Tuning

功能FluentdVector

Fluentd readlinelimit

 

Fluentd 缓冲

 

- chunklimitsize

 

- totallimitsize

 

- overflowaction

 

- flushthreadcount

 

- flushmode

 

- flushinterval

 

- retrywait

 

- retrytype

 

- retrymaxinterval

 

- retrytimeout

 

表 3.5. 可见性

功能FluentdVector

指标

Dashboard

警报

 

表 3.6. 其它

功能FluentdVector

全局代理支持

x86 支持

ARM 支持

IBM Power 支持

IBM Z 支持

IPv6 支持

日志事件缓冲

 

断开连接的集群

其他资源

3.5.2. Logging 5.6 API 参

3.5.2.1. ClusterLogForwarder

ClusterLogForwarder 是一个 API,用于配置转发日志。

您可以通过指定一个 pipelines 列表来配置转发,该列表从一组命名输入转发到一组命名输出。

常用日志类别有内置输入名称,您可以定义自定义输入来执行额外的过滤。

默认 openshift 日志存储有一个内置输出名称,但您可以使用 URL 和其他连接信息定义您自己的输出,将日志转发到集群内部或处理器的其他连接信息。

如需了解更多详细信息,请参阅 API 字段的文档。

属性类型描述

spec

对象

ClusterLogForwarder 所需的行为规格

status

对象

ClusterLogForwarder 的状态

3.5.2.1.1. .spec
3.5.2.1.1.1. 描述

ClusterLogForwarderSpec 定义如何将日志转发到远程目标。

3.5.2.1.1.1.1. 类型
  • 对象
属性类型描述

输入

数组

(可选) 输入被命名过滤器,用于转发日志消息。

outputDefaults

对象

(可选) DEPRECATED OutputDefaults 为默认存储明确指定 forwarder 配置。

输出

数组

(可选) 输出的名称是日志消息的目的地。

pipelines

数组

Pipelines 将一组输入选择的消息转发到一组输出。

3.5.2.1.2. .spec.inputs[]
3.5.2.1.2.1. 描述

InputSpec 定义日志消息的选择器。

3.5.2.1.2.1.1. 类型
  • 数组
属性类型描述

application

对象

(可选) 如果存在,应用程序启用命名的应用程序日志集合

name

字符串

用于引用管道输入的名称。

3.5.2.1.3. .spec.inputs[].application
3.5.2.1.3.1. 描述

应用程序日志选择器。必须满足选择器中的所有条件(逻辑 AND)才能选择日志。

3.5.2.1.3.1.1. 类型
  • 对象
属性类型描述

命名空间

数组

(可选) 从中收集应用程序日志的命名空间。

selector

对象

(可选) 匹配标签的 pod 的日志的 Selector。

3.5.2.1.4. .spec.inputs[].application.namespaces[]
3.5.2.1.4.1. 描述
3.5.2.1.4.1.1. 类型
  • 数组
3.5.2.1.5. .spec.inputs[].application.selector
3.5.2.1.5.1. 描述

标签选择器,即一组资源的标签查询。

3.5.2.1.5.1.1. 类型
  • 对象
属性类型描述

matchLabels

对象

(可选) matchLabels 是 {key,value} 对的映射。matchLabels 中的单个 {key,value}

3.5.2.1.6. .spec.inputs[].application.selector.matchLabels
3.5.2.1.6.1. 描述
3.5.2.1.6.1.1. 类型
  • 对象
3.5.2.1.7. .spec.outputDefaults
3.5.2.1.7.1. 描述
3.5.2.1.7.1.1. 类型
  • 对象
属性类型描述

elasticsearch

对象

(可选) Elasticsearch OutputSpec 默认值

3.5.2.1.8. .spec.outputDefaults.elasticsearch
3.5.2.1.8.1. 描述

ElasticsearchStructuredSpec 与结构化日志更改相关的 spec,以确定 elasticsearch 索引

3.5.2.1.8.1.1. 类型
  • 对象
属性类型描述

enableStructuredContainerLogs

bool

(可选) 启用StructuredContainerLogs 启用多容器结构化日志来允许

structuredTypeKey

字符串

(可选) StructuredTypeKey 指定要用作 elasticsearch 索引名称的元数据键

structuredTypeName

字符串

(可选) StructuredTypeName 指定 elasticsearch 模式的名称

3.5.2.1.9. .spec.outputs[]
3.5.2.1.9.1. 描述

输出定义日志消息的目的地。

3.5.2.1.9.1.1. 类型
  • 数组
属性类型描述

syslog

对象

(可选)

fluentdForward

对象

(可选)

elasticsearch

对象

(可选)

kafka

对象

(可选)

cloudwatch

对象

(可选)

loki

对象

(可选)

googleCloudLogging

对象

(可选)

splunk

对象

(可选)

name

字符串

用于引用来自管道的输出的名称。

secret

对象

(可选) 用于身份验证的 Secret。

tls

对象

TLS 包含控制 TLS 客户端连接上的选项的设置。

type

字符串

输出插件的类型。

url

字符串

(可选) 将日志记录发送到的 URL。

3.5.2.1.10. .spec.outputs[].secret
3.5.2.1.10.1. 描述

OutputSecretSpec 是仅包含名称的一个 secret 引用,没有命名空间。

3.5.2.1.10.1.1. 类型
  • 对象
属性类型描述

name

字符串

为日志转发器 secret 配置的命名空间中 secret 的名称。

3.5.2.1.11. .spec.outputs[].tls
3.5.2.1.11.1. 描述

OutputTLSSpec 包含与输出类型无关的 TLS 连接选项。

3.5.2.1.11.1.1. 类型
  • 对象
属性类型描述

insecureSkipVerify

bool

如果 InsecureSkipVerify 为 true,则将配置 TLS 客户端来忽略证书的错误。

3.5.2.1.12. .spec.pipelines[]
3.5.2.1.12.1. 描述

PipelinesSpec 将一组输入链接到一组输出。

3.5.2.1.12.1.1. 类型
  • 数组
属性类型描述

detectMultilineErrors

bool

(可选) DetectMultilineErrors 启用容器日志的多行错误检测

inputRefs

数组

inputRefs 列出此管道输入的名称 (input.name)。

labels

对象

(可选) 应用于通过此管道传递的记录的标签。

name

字符串

(可选) 名称是可选的,但如果提供,则必须在 pipelines 列表中唯一。

outputRefs

数组

outputRefs 列出此管道输出的名称(output.name)。

parse

字符串

(可选) Parse 允许将日志条目解析为结构化日志中

3.5.2.1.13. .spec.pipelines[].inputRefs[]
3.5.2.1.13.1. 描述
3.5.2.1.13.1.1. 类型
  • 数组
3.5.2.1.14. .spec.pipelines[].labels
3.5.2.1.14.1. 描述
3.5.2.1.14.1.1. 类型
  • 对象
3.5.2.1.15. .spec.pipelines[].outputRefs[]
3.5.2.1.15.1. 描述
3.5.2.1.15.1.1. 类型
  • 数组
3.5.2.1.16. .status
3.5.2.1.16.1. 描述

ClusterLogForwarderStatus 定义 ClusterLogForwarder 的观察状态

3.5.2.1.16.1.1. 类型
  • 对象
属性类型描述

conditions

对象

日志转发器的条件。

输入

Conditions

输入将输入名称映射到输入条件。

输出

Conditions

输出将输出名称映射到输出的条件。

pipelines

Conditions

Pipelines 将管道名称映射到管道的条件。

3.5.2.1.17. .status.conditions
3.5.2.1.17.1. 描述
3.5.2.1.17.1.1. 类型
  • 对象
3.5.2.1.18. .status.inputs
3.5.2.1.18.1. 描述
3.5.2.1.18.1.1. 类型
  • Conditions
3.5.2.1.19. .status.outputs
3.5.2.1.19.1. 描述
3.5.2.1.19.1.1. 类型
  • Conditions
3.5.2.1.20. .status.pipelines
3.5.2.1.20.1. 描述
3.5.2.1.20.1.1. 类型
  • conditions== ClusterLogging 一个 Red Hat OpenShift Logging 实例。ClusterLogging 是 clusterloggings API 的 Schema
属性类型描述

spec

对象

ClusterLogging 所需的行为规格

status

对象

Status 定义 ClusterLogging 的观察状态

3.5.2.1.21. .spec
3.5.2.1.21.1. 描述

ClusterLoggingSpec 定义 ClusterLogging 的所需状态

3.5.2.1.21.1.1. 类型
  • 对象
属性类型描述

集合

对象

集群的 Collection 组件的规格

curation

对象

(已弃用) (可选) 已弃用。集群的 Curation 组件的规格

forwarder

对象

(已弃用) (可选) 已弃用。集群的 Forwarder 组件的规格

logStore

对象

(可选) 集群的日志存储组件的规格

managementState

字符串

(可选) 如果 Operator 是 'Managed' 或 'Unmanaged',则