Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

36.3. 指定日志记录 Ansible 变量

您可以通过在清单主机文件中为 EFK 部署指定参数来覆盖默认的参数值

在选择参数前,读取 ElasticsearchFluentd 部分:

注意

默认情况下,Elasticsearch 服务使用端口 9300 进行集群中的节点间的 TCP 通信。

参数描述

openshift_logging_install_logging

设置为 true 来安装日志记录。设置为 false 以卸载日志记录。当设置为 true 时,您必须使用 openshift_logging_es_nodeselector 指定节点选择器。

openshift_logging_use_ops

如果设置为 true,请为操作日志配置第二个 Elasticsearch 集群和 Kibana。Fluentd 在主集群和为操作日志保留的集群日志之间分割日志,其中包括项目 默认值openshiftopenshift-infra、Docker、OpenShift 和系统日志中的日志。这意味着部署了第二个 Elasticsearch 集群和 Kibana。部署可以通过其名称中包含的 -ops 后缀区分,并在下面列出并行部署选项,如 创建 Curator 配置 中所述。如果设置为 true,则必须openshift_logging_es_ops_nodeselector

openshift_logging_master_url

Kubernetes 主机的 URL,这并不是面向公共的,但应该可以从集群内部访问。例如,https://<PRIVATE-MASTER-URL>:8443

openshift_logging_purge_logging

常见的卸载会保留 PVC,以防止在重新安装过程中不需要的数据丢失。为确保 Ansible playbook 完全删除了所有日志持久性数据,包括 PVC,将 openshift_logging_install_logging 设置为 false 以触发卸载,将 openshift_logging_purge_logging 设置为 true。默认值为 false

openshift_logging_install_eventrouter

openshift_logging_install_logging 相结合。当两者都设为 true 时,将安装eventrouter。当两者都是 false 时,eventrouter 将被卸载。

openshift_logging_eventrouter_image

Eventrouter 的镜像版本。例如: registry.redhat.io/openshift3/ose-logging-eventrouter:v3.11

openshift_logging_eventrouter_image_version

日志记录路由器的 镜像版本

openshift_logging_eventrouter_sink

eventrouter,支持的 stdoutglog 选择一个 sink。默认值为 stdout

openshift_logging_eventrouter_nodeselector

标签映射,如 "node":"infra""region":"west",以选择 pod 将在其中加入的节点。

openshift_logging_eventrouter_replicas

默认值为 1

openshift_logging_eventrouter_cpu_limit

分配给路由器的最小 CPU 。默认值为 100m

openshift_logging_eventrouter_memory_limit

eventrouter pod 的内存限值。默认值为 128Mi

openshift_logging_eventrouter_namespace

部署 source 的项目。默认设置为 默认值

重要

不要将项目设置为 defaultopenshift-* 以外的任何其他对象。如果指定了不同的项目,则其他项目中的事件信息可能会泄漏到不仅限于操作用户的索引中。要使用非默认项目,请照常使用 oc new-project 创建项目。

openshift_logging_image_pull_secret

指定用于从经过身份验证的 registry 中拉取组件镜像的现有 pull secret 名称。

openshift_logging_curator_image

Curator 的镜像版本。例如: registry.redhat.io/openshift3/ose-logging-curator5:v3.11

openshift_logging_curator_default_days

Curator 用于删除日志记录的默认最短期限(以天为单位)。

openshift_logging_curator_run_hour

Curator 将运行的时间(天中的小时)。

openshift_logging_curator_run_minute

Curator 将运行的时间(小时中的的分钟数)。

openshift_logging_curator_run_timezone

Curator 使用判断运行时间的时区。以 tzselect(8)或 timedatectl(1)"Region/Locality" 格式提供时区,如 America/New_YorkUTC

openshift_logging_curator_script_log_level

Curator 的脚本日志级别。

openshift_logging_curator_log_level

Curator 进程的日志级别。

openshift_logging_curator_cpu_limit

要分配给 Curator 的 CPU 数量。

openshift_logging_curator_memory_limit

要分配给 Curator 的内存量。

openshift_logging_curator_nodeselector

节点选择器,指定哪些节点是部署 Curator 实例的合格目标。

openshift_logging_curator_ops_cpu_limit

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_curator_cpu_limit

openshift_logging_curator_ops_memory_limit

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_curator_memory_limit

openshift_logging_curator_replace_configmap

设置为 no 以防止升级替换 logging-curator ConfigMap。设置为 yes,以允许 ConfigMap 被覆盖。

openshift_logging_kibana_image

Kibana 的镜像版本。例如: registry.redhat.io/openshift3/ose-logging-kibana5:v3.11

openshift_logging_kibana_hostname

Web 客户端的外部主机名,用于访问 Kibana。

openshift_logging_kibana_cpu_limit

要分配给 Kibana 的 CPU 数量。

openshift_logging_kibana_memory_limit

要分配给 Kibana 的内存量。

openshift_logging_kibana_proxy_image

Kibana 代理的镜像版本。例如: registry.redhat.io/openshift3/oauth-proxy:v3.11

openshift_logging_kibana_proxy_debug

true 时,将 Kibana Proxy 日志级别设置为 DEBUG

openshift_logging_kibana_proxy_cpu_limit

要分配给 Kibana 代理的 CPU 数量。

openshift_logging_kibana_proxy_memory_limit

要分配给 Kibana 代理的内存量。

openshift_logging_kibana_replica_count

Kibana 应扩展的节点数量。

openshift_logging_kibana_nodeselector

节点选择器,指定哪些节点有资格部署 Kibana 实例。

openshift_logging_kibana_env_vars

要添加到 Kibana 部署配置的环境变量映射。例如,{"ELASTICSEARCH_REQUESTTIMEOUT":"30000"}。

openshift_logging_kibana_key

创建 Kibana 路由时使用的面向公钥的公钥。

openshift_logging_kibana_cert

在创建 Kibana 路由时与该密钥匹配的证书。

openshift_logging_kibana_ca

可选。要用于创建 Kibana 路由时使用的密钥和证书。

openshift_logging_kibana_ops_hostname

openshift_logging_use_ops 设为 true 时,Daation cluster 等同于 openshift_logging_kibana_hostname

openshift_logging_kibana_ops_cpu_limit

openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_kibana_cpu_limit 等同于 openshift_logging_kibana_limit。

openshift_logging_kibana_ops_memory_limit

openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_kibana_memory_limit 等同于 openshift_logging_kibana_limit。

openshift_logging_kibana_ops_proxy_debug

openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_kibana_proxy_debug 等同于 openshift_logging_kibana_debug。

openshift_logging_kibana_ops_proxy_cpu_limit

openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_kibana_proxy_cpu_limit 等同于 openshift_logging_kibana_cpu_limit。

openshift_logging_kibana_ops_proxy_memory_limit

当将 openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_kibana_proxy_memory_limit 等同于 openshift_logging_kibana_memory_limit。

openshift_logging_kibana_ops_replica_count

openshift_logging_use_ops 设置为 true 时,Opeross cluster 的运营集群等同于 openshift_logging_kibana_replica_count

openshift_logging_es_allow_external

设置为 true,以将 Elasticsearch 公开为重新加密路由。默认设置为 false

openshift_logging_es_hostname

用于路由和 TLS 服务器证书的面向外部主机名。默认值为 es

例如,如果 openshift_master_default_subdomain 设为 =example.test,则 openshift_logging_es_hostname 的默认值将是 es.example.test

openshift_logging_es_cert

Elasticsearch 用于外部 TLS 服务器证书的证书位置。默认为生成的证书。

openshift_logging_es_key

Elasticsearch 用于外部 TLS 服务器证书的密钥位置。默认为生成的密钥。

openshift_logging_es_ca_ext

用于外部 TLS 服务器证书的 CA 证书 Elasticsearch 的位置。默认为内部 CA。

openshift_logging_es_ops_allow_external

设置为 true,以将 Elasticsearch 公开为重新加密路由。默认设置为 false

openshift_logging_es_ops_hostname

用于路由和 TLS 服务器证书的面向外部主机名。默认值为 es-ops

例如,如果 openshift_master_default_subdomain 设为 =example.test,则 openshift_logging_es_ops_hostname 的默认值为 es-ops.example.test

openshift_logging_es_ops_cert

Elasticsearch 用于外部 TLS 服务器证书的证书位置。默认为生成的证书。

openshift_logging_es_ops_key

Elasticsearch 用于外部 TLS 服务器证书的密钥位置。默认为生成的密钥。

openshift_logging_es_ops_ca_ext

用于外部 TLS 服务器证书的 CA 证书 Elasticsearch 的位置。默认为内部 CA。

openshift_logging_fluentd_image

Fluentd 的镜像版本。例如: registry.redhat.io/openshift3/ose-logging-fluentd:v3.11

openshift_logging_fluentd_nodeselector

一个节点选择器,用于指定部署 Fluentd 实例的具有哪些节点。任何 Fluentd 应该运行(通常情况下,所有)的节点都必须具有此标签,然后才能运行和收集日志。

在安装后扩展 Aggregated Logging 集群时,openshift_logging _ fluentd_hosts 提供的 openshift_logging 角色标签节点使用此节点选择器。

作为安装的一部分,建议您将 Fluentd 节点选择器标签添加到持久的节点标签列表中。

openshift_logging_fluentd_cpu_limit

Fluentd Pod 的 CPU 限值。

openshift_logging_fluentd_memory_limit

Fluentd Pod 的内存限值。

openshift_logging_fluentd_journal_read_from_head

如果 Fluentd 首次启动时从 Journal 的 head 中读取,则设置为 true,则使用此操作可能会在 Elasticsearch 收到当前日志记录时造成延迟。

openshift_logging_fluentd_hosts

应该为要部署的 Fluentd 标记的节点列表。默认为使用 ['--all'] 标记所有节点。null 值是 openshift_logging_fluentd_hosts={}。启动 Fluentd pod 将 daemonset 的 nodeSelector 更新为有效的标签。例如,['host1.example.com', 'host2.example.com']。

openshift_logging_fluentd_audit_container_engine

openshift_logging_fluentd_audit_container_engine 设置为 true 时,容器引擎的审计日志会被收集并存储在 ES 中。启用此变量允许 EFK 监视指定的审计日志文件或默认的 /var/log/audit.log 文件,为平台收集容器引擎的审计信息,然后将其放入 Kibana。

openshift_logging_fluentd_audit_file

审计日志文件的位置。默认为 /var/log/audit/audit.log。启用此变量允许 EFK 监视指定的审计日志文件或默认的 /var/log/audit.log 文件,为平台收集容器引擎的审计信息,然后将其放入 Kibana。

openshift_logging_fluentd_audit_pos_file

审计日志文件的 Fluentd in_tail 位置文件的位置。默认为 /var/log/audit/audit.log.pos。启用此变量允许 EFK 监视指定的审计日志文件或默认的 /var/log/audit.log 文件,为平台收集容器引擎的审计信息,然后将其放入 Kibana。

openshift_logging_fluentd_merge_json_log

设置为 true 以启用在记录的 logMESSAGE 字段中处理 JSON 日志的处理。默认值是 true

openshift_logging_fluentd_extra_keep_fields

指定在处理使用 openshift_logging_fluentd_merge_json_log 时生成的额外字段时不想更改的字段列表。否则,Fluentd 根据下面的其他未定义字段设置处理字段。默认值为空。

openshift_logging_fluentd_keep_empty_fields

使用 openshift_logging_fluentd_merge_json_log 时指定以逗号分隔的字段列表,以保留为空白字段。默认情况下,除了 message 字段外,Fluentd 从记录中删除带有空值的字段。

openshift_logging_fluentd_replace_configmap

设置为 no 以防止升级替换 logging-fluentd ConfigMap。设置为 yes,以允许 ConfigMap 被覆盖。

openshift_logging_fluentd_use_undefined

设置为 true,将 openshift_logging_fluentd_merge_json_log 生成的字段移到由 openshift_logging_fluentd_undefined_name 参数命名的子字段。默认情况下,Fluentd 会保留这些记录的最顶层,这会导致 Elasticsearch 冲突和模式错误。

openshift_logging_fluentd_undefined_name

指定在使用 openshift_logging_fluentd_use_undefined 时将未定义字段的名称移到 中。默认值为 undefined

openshift_logging_fluentd_undefined_to_string

设置为 true,在使用 openshift_logging_fluentd_merge_json_log 时,将所有未定义字段值转换为其 JSON 字符串表示形式。默认值为 false

openshift_logging_fluentd_undefined_dot_replace_char

使用 openshift_logging_fluentd_merge_json _ log 指定一个字符来替换字段名称中的任何 . 字符,如 _。名称中带有 . 字符的 未定义字段会导致 Elasticsearch 出现问题。默认为 UNUSED 即在 字段名称中保留。

openshift_logging_fluentd_undefined_max_num_fields

使用 openshift_logging_fluentd_merge_json_log 时,指定到未定义字段数量的限制。日志可以包含数百个未定义字段,这会导致 Elasticsearch 出现问题。如果有多个字段,这些字段将转换为 JSON 散列字符串,并存储在 openshift_logging_fluentd_undefined_name 字段中。默认值为 -1,表示无限数量的字段。

openshift_logging_fluentd_use_multiline_json

设置为 true,强制 Fluentd 在使用 openshift_logging_fluentd_merge_json_log 时,将任何分割日志行重新创建为一行。使用 json-file 驱动程序,Docker 会分割日志行大小为 16k 字节。默认值为 false

openshift_logging_fluentd_use_multiline_journal

设置为 true,在使用 openshift_logging_fluentd_merge_json_log 时,强制 Fluentd 将分割行重新创建为一行。使用 journald 驱动程序时,Docker 会分割日志行大小为 16k 字节。默认值为 false

openshift_logging_es_host

Fluentd 应该发送日志的 Elasticsearch 服务的名称。

openshift_logging_es_port

Fluentd 应该发送日志的 Elasticsearch 服务的端口。

openshift_logging_es_ca

CA Fluentd 用来与 openshift_logging_es_host 通信的位置。

openshift_logging_es_client_cert

客户端证书 Fluentd 用于 openshift_logging_es_host 的位置。

openshift_logging_es_client_key

客户端密钥 Fluentd 用于 openshift_logging_es_host 的位置。

openshift_logging_es_cluster_size

要部署的 Elasticsearch 节点。高可用性需要三个或更多.

openshift_logging_es_cpu_limit

Elasticsearch 集群的 CPU 限值量。

openshift_logging_es_memory_limit

每个 Elasticsearch 实例保留的 RAM 量。它必须至少 512M。可能的后缀为 G,g,M,m。

openshift_logging_es_number_of_replicas

每个新索引的每个主分片的副本数。默认值为 '0'。在生产环境中,推荐最少使用 1。对于高可用性环境,请将此值设置为 1 个或更多,并且至少有三个 Elasticsearch 节点,各自在不同的主机上。如果更改副本数,则新值只会应用到新索引。新号不适用于现有的索引。有关如何更改现有索引的副本数量的信息,请参阅更改 Elasticsearch 副本的数量

openshift_logging_es_number_of_shards

在 ES 中创建的每个新索引的主分片数量。默认为 1

openshift_logging_es_pv_selector

添加到 PVC 的键/值映射,以选择特定的 PV。

openshift_logging_es_pvc_dynamic

要动态置备后备存储,将参数值设置为 true。当设置为 true 时,PVC 定义中会忽略 storageClass 规格。当设置为 false 时,必须为 openshift_logging_es_pvc_size 参数指定一个值。

如果您为 openshift_logging_es_pvc_storage_class_name 参数设置一个值,其值会覆盖 openshift_logging_es_pvc_dynamic 参数的值。

openshift_logging_es_pvc_storage_class_name

要使用非默认存储类,请指定存储类名称,如 glusterprovisionercephrbdprovisioner。指定存储类名称后,无论 openshift_logging_es_pvc_dynamic 值是什么,动态卷置备都会活跃。

openshift_logging_es_pvc_size

为每个 Elasticsearch 实例创建的持久性卷声明的大小。例如:100G。如果省略,则不会创建 PVC,并且会改为使用临时卷。如果设置此参数,日志记录安装程序将 openshift_logging_elasticsearch_storage_type 设置为 pvc

如果 openshift_logging_es_pvc_dynamic 参数设置为 false,则必须为此参数设置一个值。有关详细信息,请阅读 openshift_logging_es_pvc_prefix 的描述。

openshift_logging_elasticsearch_image

Elasticsearch 的镜像版本。例如: registry.redhat.io/openshift3/ose-logging-elasticsearch5:v3.11

openshift_logging_elasticsearch_storage_type

设置 Elasticsearch 存储类型。如果使用 Persistent Elasticsearch Storage,日志记录安装程序把它设置为 pvc

openshift_logging_es_pvc_prefix

用作 Elasticsearch 节点的存储声明名称的前缀。每个节点附加一个数字,如 logging-es-1。如果不存在,则使用大小为 es-pvc-size 创建它们。

当设置了 openshift_logging_es_pvc_prefix 时,并:

  • openshift_logging_es_pvc_dynamic=trueopenshift_logging_es_pvc_size 的值是可选的。
  • openshift_logging_es_pvc_dynamic=false,必须设置 openshift_logging_es_pvc_size 的值。

openshift_logging_es_recover_after_time

Elasticsearch 在尝试恢复前等待的时间。支持的时间单位为秒(s)或分钟(m)。

openshift_logging_es_storage_group

用于访问 Elasticsearch 存储卷的补充组 ID 数量。后端卷应允许此组 ID 访问。

openshift_logging_es_nodeselector

节点选择器作为映射指定,决定哪些节点是部署 Elasticsearch 节点的合格目标。使用此映射将这些实例放在为运行它们保留或优化的节点上。例如,选择器可以是 {"node-role.kubernetes.io/infra":"true"}。至少一个活跃的节点必须具有此标签才能部署 Elasticsearch。在安装日志记录时,此参数是必须的。

openshift_logging_es_ops_host

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_host

openshift_logging_es_ops_port

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_port

openshift_logging_es_ops_ca

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_ca

openshift_logging_es_ops_client_cert

openshift_logging_use_ops 设置为 true 时,等同于 openshift_logging_es_client_cert for Ops 集群。

openshift_logging_es_ops_client_key

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_client_key

openshift_logging_es_ops_cluster_size

openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_es_size

openshift_logging_es_ops_cpu_limit

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_cpu_limit

openshift_logging_es_ops_memory_limit

openshift_logging_use_ops 设为 true 时,Daation cluster 等同于 openshift_logging_es_memory_limit

openshift_logging_es_ops_pv_selector

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_pv_selector

openshift_logging_es_ops_pvc_dynamic

openshift_logging_use_ops 设置为 true 时相当于 Ops 集群的 openshift_logging_es_pvc_dynamic

openshift_logging_es_ops_pvc_size

openshift_logging_use_ops 设置为 true 时,适用于 Ops 集群的 openshift_logging_es_pvc_size 等同于 openshift_logging_use_size。

openshift_logging_es_ops_pvc_prefix

openshift_logging_use_ops 设为 true 时,操作集群等同于 openshift_logging_es_pvc_prefix

openshift_logging_es_ops_storage_group

openshift_logging_use_ops 设置为 true 时,相当于 Ops 集群的 openshift_logging_es_storage_group

openshift_logging_es_ops_nodeselector

节点选择器,指定哪些节点有资格部署 Elasticsearch 节点。这可用于将这些实例放在保留或优化的节点上以便运行它们。例如,选择器可以是 node-type=infrastructure。至少一个活跃的节点必须具有此标签才能部署 Elasticsearch。当 openshift_logging_use_ops 设置为 true 时,此参数是必需的。

openshift_logging_elasticsearch_kibana_index_mode

默认值( 唯一 )允许用户各自拥有自己的 Kibana 索引。在这个模式中,它们保存的查询、视觉化和仪表板不会被共享。

您也可以设置值 shared_ops。在这个模式中,所有操作用户共享 Kibana 索引,允许每个操作用户查看相同的查询、视觉化和仪表板。要确定您是操作用户:

#oc auth can-i view pod/logs -n default
yes

如果您没有适当的访问权限,请联络您的集群管理员。

openshift_logging_elasticsearch_poll_timeout_minutes

调整 Ansible playbook 在升级给定 Elasticsearch 节点后等待 Elasticsearch 集群进入绿色状态的时间。大型分片(50 GB 或更多)可以花费超过 60 分钟的时间来初始化,从而导致 Ansible playbook 中止升级过程。默认值为 60

openshift_logging_kibana_ops_nodeselector

节点选择器,指定哪些节点有资格部署 Kibana 实例。

openshift_logging_curator_ops_nodeselector

节点选择器,指定哪些节点是部署 Curator 实例的合格目标。

openshift_logging_elasticsearch_replace_configmap

设置为 true,将 logging-elasticsearch ConfigMap 替换为当前默认值。您当前的 ConfigMap 保存到 logging-elasticsearch.old 中,您可以使用它们将自定义复制到新 ConfigMap。在某些情况下,使用旧的 ConfigMap 可能会导致升级失败。默认值为 false

自定义证书

您可以使用以下清单变量来指定自定义证书,而不依赖于部署过程中生成的证书。这些证书用于加密和保护用户浏览器和 Kibana 之间的通信。如果没有提供与安全相关的文件,则会生成它们。

文件名描述

openshift_logging_kibana_cert

Kibana 服务器的面向浏览器的证书。

openshift_logging_kibana_key

与面向浏览器的 Kibana 证书一起使用的密钥。

openshift_logging_kibana_ca

控制节点上的绝对路径到 CA 文件,用于将浏览器用于 Kibana 证书。

openshift_logging_kibana_ops_cert

Ops Kibana 服务器的面向浏览器的证书。

openshift_logging_kibana_ops_key

要与面向浏览器的 Ops Kibana 证书一起使用的密钥。

openshift_logging_kibana_ops_ca

控制节点上到 CA 文件的绝对路径,用于面向 ops Kibana certs 的浏览器。

如果需要重新部署这些证书,请参阅重新部署 EFK 证书