第 4 章 Logging 5.5
4.1. Logging 5.5 发行注记
Red Hat OpenShift 的日志记录子系统作为一个可安装的组件提供,它与核心 OpenShift Container Platform 不同的发行周期不同。Red Hat OpenShift Container Platform 生命周期政策概述了发行版本兼容性。
4.1.1. Logging 5.5.16
此发行版本包括 OpenShift Logging 程序错误修复 5.5.16。
4.1.1.1. 程序错误修复
- 在此次更新之前,LokiStack 网关会广泛缓存授权请求。因此,这会导致错误的授权结果。在这个版本中,Loki 网关缓存以更精细的方式缓存来解决这个问题。(LOG-4434)
4.1.1.2. CVE
4.1.2. Logging 5.5.14
此发行版本包括 OpenShift Logging 程序错误修复 5.5.14。
4.1.2.1. 程序错误修复
-
在此次更新之前,向量收集器偶尔会在日志中出现以下错误信息:
thread 'vector-worker' panicked at 'all branch are disabled, no else branch', src/kubernetes/reflector.rs:26:9
。在这个版本中,这个错误已解决。(LOG-4279)
4.1.2.2. CVE
4.1.3. Logging 5.5.13
此发行版本包括 OpenShift Logging 程序错误修复 5.5.13。
4.1.3.1. 程序错误修复
无。
4.1.3.2. CVE
4.1.4. Logging 5.5.11
此发行版本包括 OpenShift Logging 程序错误修复 5.5.11。
4.1.4.1. 程序错误修复
4.1.4.2. CVE
- CVE-2021-26341
- CVE-2021-33655
- CVE-2021-33656
- CVE-2022-1462
- CVE-2022-1679
- CVE-2022-1789
- CVE-2022-2196
- CVE-2022-2663
- CVE-2022-2795
- CVE-2022-3028
- CVE-2022-3239
- CVE-2022-3522
- CVE-2022-3524
- CVE-2022-3564
- CVE-2022-3566
- CVE-2022-3567
- CVE-2022-3619
- CVE-2022-3623
- CVE-2022-3625
- CVE-2022-3627
- CVE-2022-3628
- CVE-2022-3707
- CVE-2022-3970
- CVE-2022-4129
- CVE-2022-20141
- CVE-2022-24765
- CVE-2022-25265
- CVE-2022-29187
- CVE-2022-30594
- CVE-2022-36227
- CVE-2022-39188
- CVE-2022-39189
- CVE-2022-39253
- CVE-2022-39260
- CVE-2022-41218
- CVE-2022-41674
- CVE-2022-42703
- CVE-2022-42720
- CVE-2022-42721
- CVE-2022-42722
- CVE-2022-43750
- CVE-2022-47929
- CVE-2023-0394
- CVE-2023-0461
- CVE-2023-1195
- CVE-2023-1582
- CVE-2023-2491
- CVE-2023-23454
- CVE-2023-27535
4.1.5. Logging 5.5.10
此发行版本包括 OpenShift Logging 程序错误修复 5.5.10。
4.1.5.1. 程序错误修复
- 在此次更新之前,OpenShift Web 控制台的日志记录视图插件在 LokiStack 无法访问时只显示一个错误文本。在这个版本中,插件会显示正确的错误消息,其中包含如何修复不可访问 LokiStack 的详细信息。(LOG-2874)
4.1.5.2. CVE
4.1.6. Logging 5.5.9
此发行版本包括 OpenShift Logging 程序错误修复 5.5.9。
4.1.6.1. 程序错误修复
-
在此次更新之前,Fluentd 收集器的问题会导致它不会捕获存储在
/var/log/auth-server/audit.log
中的 OAuth 登录事件。这会导致 OAuth 服务中的登录事件集合不完整。在这个版本中,Fluentd 收集器通过从 OAuth 服务捕获所有登录事件来解决这个问题,包括存储在/var/log/auth-server/audit.log
中的登录事件。(LOG-3730) - 在此次更新之前,当启用结构化解析且消息转发到多个目的地时,它们不会被深度复制。这会导致一些接收的日志,包括结构化消息,而其他日志则没有。在这个版本中,在 JSON 解析前,配置生成已被修改为深度复制信息。因此,所有收到的日志现在都包含结构化消息,即使它们被转发到多个目的地。(LOG-3767)
4.1.6.2. CVE
4.1.7. Logging 5.5.8
此发行版本包括 OpenShift Logging 程序错误修复 5.5.8。
4.1.7.1. 程序错误修复
-
在此次更新之前,
systemd
日志中缺少priority
字段,因为收集器如何设置level
字段出错。在这个版本中,这些字段会被正确设置,从而解决了这个问题。(LOG-3630)
4.1.7.2. CVE
4.1.8. Logging 5.5.7
此发行版本包括 OpenShift Logging 程序错误修复 5.5.7。
4.1.8.1. 程序错误修复
4.1.8.2. CVE
CVE-2021-46848CVE-2022-3821CVE-2022-35737CVE-2022-42010CVE-2022-42011CVE-2022-42012CVE-2022-42898CVE-2022-43680
4.1.9. Logging 5.5.6
此发行版本包括 OpenShift Logging 程序错误修复 5.5.6。
4.1.9.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)
4.1.9.2. CVE
4.1.10. Logging 5.5.5
此发行版本包括 OpenShift Logging 程序错误修复 5.5.5。
4.1.10.1. 程序错误修复
-
在此次更新之前,Kibana 有一个固定的
24h
OAuth cookie 过期时间,当accessTokenInactivityTimeout
字段被设置为小于24h
的值时,会导致 Kibana 中的 401 错误。在这个版本中,Kibana 的 OAuth cookie 过期时间与accessTokenInactivityTimeout
同步,默认值为24h
。(LOG-3305) -
在此次更新之前,当启用 JSON 解析时向量解析消息字段,而不定义
structuredTypeKey
或structuredTypeName
值。在这个版本中,在将结构化日志写入 Elasticsearch 时,structuredTypeKey
或structuredTypeName
所需的值。(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)
4.1.10.2. CVE
- CVE-2016-3709
- CVE-2020-35525
- CVE-2020-35527
- CVE-2020-36516
- CVE-2020-36558
- CVE-2021-3640
- CVE-2021-30002
- CVE-2022-0168
- CVE-2022-0561
- CVE-2022-0562
- CVE-2022-0617
- CVE-2022-0854
- CVE-2022-0865
- CVE-2022-0891
- CVE-2022-0908
- CVE-2022-0909
- CVE-2022-0924
- CVE-2022-1016
- CVE-2022-1048
- CVE-2022-1055
- CVE-2022-1184
- CVE-2022-1292
- CVE-2022-1304
- CVE-2022-1355
- CVE-2022-1586
- CVE-2022-1785
- CVE-2022-1852
- CVE-2022-1897
- CVE-2022-1927
- CVE-2022-2068
- CVE-2022-2078
- CVE-2022-2097
- CVE-2022-2509
- CVE-2022-2586
- CVE-2022-2639
- CVE-2022-2938
- CVE-2022-3515
- CVE-2022-20368
- CVE-2022-21499
- CVE-2022-21618
- CVE-2022-21619
- CVE-2022-21624
- CVE-2022-21626
- CVE-2022-21628
- CVE-2022-22624
- CVE-2022-22628
- CVE-2022-22629
- CVE-2022-22662
- CVE-2022-22844
- CVE-2022-23960
- CVE-2022-24448
- CVE-2022-25255
- CVE-2022-26373
- CVE-2022-26700
- CVE-2022-26709
- CVE-2022-26710
- CVE-2022-26716
- CVE-2022-26717
- CVE-2022-26719
- CVE-2022-27404
- CVE-2022-27405
- CVE-2022-27406
- CVE-2022-27950
- CVE-2022-28390
- CVE-2022-28893
- CVE-2022-29581
- CVE-2022-30293
- CVE-2022-34903
- CVE-2022-36946
- CVE-2022-37434
- CVE-2022-39399
4.1.11. Logging 5.5.4
此发行版本包括 OpenShift Logging 程序错误修复 5.5.4。
4.1.11.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)
4.1.11.2. CVE
4.1.12. 日志记录 5.5.3
此发行版本包括 OpenShift Logging 程序错误修复 5.5.3。
4.1.12.1. 程序错误修复
- 在此次更新之前,带有结构化消息的日志条目包含原始消息字段,该字段使条目更大。在这个版本中,删除了结构化日志的 message 字段,以减少增大的大小。(LOG-2759)
-
在此次更新之前,收集器配置排除了来自
收集器
、default-log-store
和visualization
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)
4.1.12.2. CVE
4.1.13. Logging 5.5.2
此发行版本包括 OpenShift Logging 程序错误修复 5.5.2。
4.1.13.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)
4.1.13.2. CVE
4.1.14. Logging 5.5.1
此发行版本包括 OpenShift Logging 程序错误修复 5.5.1。
4.1.14.1. 功能增强
4.1.14.2. 程序错误修复
- 在此次更新之前,Operator 无法确保 pod 就绪,这会导致集群在集群重启过程中达到可操作的状态。在这个版本中,Operator 会在重启过程中进入新 pod 前将新 pod 标记为 ready,这会解决这个问题。(LOG-2745)
- 在此次更新之前,Fluentd 有时无法识别 Kubernetes 平台轮转日志文件,且不会读取日志消息。在这个版本中,通过设置上游开发团队所推荐的配置参数修正。(LOG-2995)
- 在此次更新之前,添加多行错误检测会导致内部路由更改并将记录转发到错误的目的地。在这个版本中,内部路由正确。(LOG-2801)
- 在此次更新之前,更改 OpenShift Container Platform Web 控制台的刷新间隔会在 Query 字段为空时造成错误。在这个版本中,当 Query 字段为空时,更改间隔不是可用的选项。(LOG-2917)
4.1.14.3. CVE
4.1.15. Logging 5.5.0
此发行版本包括:OpenShift Logging 程序错误修复 5.5.0。
4.1.15.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 的日志记录部分。
4.1.15.2. 程序错误修复
- 在此次更新之前,配置为将日志转发到 Amazon CloudWatch 的集群会将拒绝的日志文件写入到临时存储,从而导致集群变得不稳定。在这个版本中,所有存储选项的块备份已被禁用,从而解决了这个问题。(LOG-2746)
- 在此次更新之前,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)