迁移至Rancher v2.5日志
在新的日志功能的众多特性和变化中,有一项是取消了特定项目的日志配置。取而代之的是,现在在命名空间级别配置日志。集群级日志仍然可用,但配置选项有所不同。
注意
v2.5 之前的用户界面现在被称为集群管理器。v2.5+的仪表盘被称为Cluster Explorer。
要在 Rancher v2.5+中安装日志,请参考安装说明。
术语
在 v2.5 中,日志配置集中在集群浏览器中的日志菜单选项下。集群和命名空间的日志都是通过这个菜单选项来配置的。
注意
日志是以每个集群为基础安装的。您需要在集群之间进行导航,以便为每个集群配置日志
对于 v2.5 以上的日志,有四个关键概念需要理解:
Outputs
Outputs 是一个配置资源,它决定了收集到的日志的目的地。这是存储 ElasticSearch、Kafka 等聚合器的设置的地方。Outputs 是命名空间的资源。
Flows
流量是一种配置资源,用于确定日志的收集、过滤和目标规则。在一个流中,人们将配置要收集哪些日志,如何突变或过滤它们,以及将日志发送到哪些输出。流是命名空间的资源,既可以连接到同一命名空间的_Output,也可以连接到ClusterOutput。
ClusterOutputs
ClusterFlows
ClusterFlows 的功能与 Flows 相同,但在集群层面。它们用于配置整个集群的日志收集,而不是每个命名空间级别的。ClusterFlows 也是定义突变和过滤器的地方,与 Flows 一样。
集群日志
要配置 v2.5+日志的集群范围,需要设置一个 ClusterFlow。这个对象定义了日志的来源,任何要应用的转换或过滤器,以及最终的日志输出。
重要
ClusterFlows 必须在命名空间中定义。如果在任何其他命名空间中定义,ClusterFlows 将不起作用。
在之前的日志中,为了从整个集群中收集日志,只需要启用集群级日志并定义所需的输出。这一基本方法在 v2.5+日志中仍然存在。要复制遗留的集群级日志,请遵循以下步骤:
- 根据下的说明定义一个 ClusterOutput。
- 创建一个 ClusterFlow,确保设置为在
cattle-logging-system
命名空间中创建。- 从流程定义中删除所有的 Include 和 Exclude 规则。这样可以确保所有的日志都被收集。
- 如果您不希望配置任何过滤器,您不需要配置任何过滤器—默认行为不需要创建它们
- 定义你的群组产出
这将导致收集来自集群中所有来源(所有 pods 和所有系统组件)的日志,并将其发送到您在 ClusterFlow 中定义的输出。
项目日志
在 v2.5+中,日志不是项目感知的。这意味着,为了收集在项目命名空间中运行的 pod 的日志,您需要为这些命名空间定义 Flows。
要从特定的命名空间收集日志,请按照以下步骤进行。
- 根据下的说明,定义一个 Output 或 ClusterOutput。
- 创建一个 Flow,确保它被设置为在你要收集日志的命名空间中创建。
- 如果您希望定义 Include 或 Exclude 规则,您可以这样做。否则,删除所有规则将导致目标命名空间中的所有 pod 的日志都被收集。
- 如果您不希望,您不需要配置任何过滤器—默认行为不需要创建它们。
这将导致收集命名空间(pods)中所有来源的日志,并将其发送到你在 Flow 中定义的输出。
要从一个项目中收集日志,请对项目中的每个命名空间重复上述步骤。或者,您可以用一个通用的标签来标记您的项目工作负载(例如:project=my-project
),然后使用 ClusterFlow 来收集与此标签相匹配的所有 pod 的日志。
在之前的日志中,有五个日志目的地可供选择:Elasticsearch、Splunk、Kafka、Fluentd 和 Syslog。除了 Syslog 之外,所有这些目的地都可以在日志 v2.5+中使用。
Elasticsearch
Copy
用将要创建的索引的前缀替换 <desired prefix>
。在之前的日志中,这默认为集群的名称。
Splunk
_(1) client_key
和 client_cert
的值必须分别是密钥和证书文件的路径。这些文件必须挂载到rancher-logging-fluentd
pod 中才能使用。
_(2) 用户可以配置 ca_file
(PEM 编码的 CA 证书的路径)或 ca_path
(PEM 格式的 CA 证书目录的路径)。这些文件必须挂载到rancher-logging-fluentd
pod 中才能使用。
Kafka
从 v2.5.2 开始,只能使用 “编辑为表单 “选项来添加一个 Fluentd 服务器。要添加多个服务器,请将输出编辑为 YAML 并输入多个服务器。
_(1) 这些值是作为文件的路径来指定的,这些文件必须安装到rancher-logging-fluentd
pod 中才能使用。这些文件必须安装到rancher-logging-fluentd
pod 中才能使用。
Syslog
从 v2.5.2 开始,目前不支持使用 v2.5 以上的日志作为输出。
自定义日志字段
为了添加自定义日志字段,你将需要添加以下 YAML 到你的流程配置中。
---
spec:
filters:
- record_modifier:
records:
Copy
请将 foo: "bar"
替换为您希望添加的自定义日志字段。
系统日志
在之前的日志中,从系统组件收集日志是通过在设置集群日志时勾选 “包括系统日志 “的框来完成的。在 v2.5+日志中,系统日志的收集方式有两种:
- 收集所有集群日志,不指定任何匹配或排除规则。这样做的结果是收集集群的所有容器日志,其中包括系统日志。
- 通过为系统组件添加匹配规则,专门针对系统日志。具体的匹配规则取决于被收集的组件。