5.2. 使用 CLI 安装 Elasticsearch 的日志记录
Elasticsearch 是内存密集型应用程序。默认情况下,OpenShift Dedicated 安装三个 Elasticsearch 节点,内存请求和限值为 16 GB。初始设置的三个 OpenShift Dedicated 节点可能没有足够的内存在集群中运行 Elasticsearch。如果遇到与 Elasticsearch 相关的内存问题,在集群中添加更多 Elasticsearch 节点,而不是增加现有节点上的内存。
先决条件
确保具有 Elasticsearch 所需的持久性存储。注意每个 Elasticsearch 节点都需要自己的存储卷。
注意如果将本地卷用于持久性存储,请不要使用原始块卷,这在
LocalVolume
对象中的volumeMode: block
描述。Elasticsearch 无法使用原始块卷。
步骤
为 OpenShift Elasticsearch Operator 创建
Namespace
对象:Namespace
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
Namespace
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Red Hat OpenShift Logging Operator 创建一个
Namespace
对象:Namespace
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须将
openshift-logging
指定为日志记录版本 5.7 及更早版本的命名空间。对于日志记录 5.8 及更新的版本,您可以使用任何命名空间。
运行以下命令来应用
Namespace
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 OpenShift Elasticsearch Operator 创建
OperatorGroup
对象:OperatorGroup
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须指定
openshift-operators-redhat
命名空间。
运行以下命令来应用
OperatorGroup
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
Subscription
对象来订阅 OpenShift Elasticsearch Operator 的命名空间:注意stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-x.y,其中
x.y
代表您安装的日志记录的主版本和次版本。例如,stable-5.7。Subscription
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须指定
openshift-operators-redhat
命名空间。 - 2
- 指定
stable
, 或stable-x.y
作为频道。 - 3
Automatic
允许 Operator Lifecycle Manager (OLM) 在有新版本可用时自动更新 Operator。Manual
要求具有适当凭证的用户批准 Operator 更新。- 4
- 指定
redhat-operators
。如果 OpenShift Dedicated 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM)时创建的CatalogSource
对象的名称。
运行以下命令来应用订阅:
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 Operator 已被删除:
oc get csv --all-namespaces
$ oc get csv --all-namespaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Red Hat OpenShift Logging Operator 创建
OperatorGroup
对象:OperatorGroup
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
OperatorGroup
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
Subscription
对象来订阅 Red Hat OpenShift Logging Operator 的命名空间:Subscription
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
Subscription
对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
ClusterLogging
对象创建为 YAML 文件:ClusterLogging
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 名称必须是
instance
。 - 2
- OpenShift Logging 管理状态。在一些数情况下,如果更改了 OpenShift Logging 的默认值,则必须将其设置为
Unmanaged
。但是,非受管部署不接收更新,直到 OpenShift Logging 重新变为受管状态为止。 - 3
- 用于配置 Elasticsearch 的设置。通过使用 CR,您可以配置分片复制策略和持久性存储。
- 4
- 指定 Elasticsearch 应该保留每个日志源的时间长度。输入一个整数和时间单位: 周(w)、小时(h/H)、分钟(m)和秒。例如,
7d
代表 7 天。时间超过maxAge
的旧日志会被删除。您必须为每个日志源指定一个保留策略,否则不会为该源创建 Elasticsearch 索引。 - 5
- 指定 Elasticsearch 节点的数量。
- 6
- 为 Elasticsearch 存储输入现有存储类的名称。为获得最佳性能,请指定分配块存储的存储类。如果没有指定存储类,OpenShift Logging 将使用临时存储。
- 7
- 根据需要指定 Elasticsearch 的 CPU 和内存请求。如果这些值留白,则 OpenShift Elasticsearch Operator 会设置默认值,它们应足以满足大多数部署的需要。内存请求的默认值为
16Gi
,CPU 请求为1
。 - 8
- 根据需要指定 Elasticsearch 代理的 CPU 和内存请求。如果这些值留白,则 OpenShift Elasticsearch Operator 会设置默认值,它们应足以满足大多数部署的需要。内存请求的默认值为
256Mi
,CPU 请求的默认值为100m
。 - 9
- 用于配置 Kibana 的设置。通过使用 CR,您可以扩展 Kibana 来实现冗余性,并为 Kibana 节点配置 CPU 和内存。
- 10
- 用于配置 Fluentd 的设置。通过使用 CR,您可以配置 Fluentd CPU 和内存限值。
注意master 节点的最大数量为三个。如果您将
nodeCount
指定为大于3
,OpenShift Dedicated 只会创建三个符合 Master 节点条件的 Elasticsearch 节点(具有 master、client 和 data 角色)。其余 Elasticsearch 节点创建为“仅数据”节点,使用 client 和 data 角色。Master 节点执行集群范围的操作,如创建或删除索引、分配分片和跟踪节点等。数据节点保管分片,并执行与数据相关的操作,如 CRUD、搜索和聚合等。与数据相关的操作会占用大量 I/O、内存和 CPU。务必要监控这些资源,并在当前节点过载时添加更多数据节点。例如,如果
nodeCount = 4
,则创建以下节点:oc get deployment
$ oc get deployment
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
cluster-logging-operator-66f77ffccb-ppzbg 1/1 Running 0 7m elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp 2/2 Running 0 2m40s elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc 2/2 Running 0 2m36s elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2 2/2 Running 0 2m4s
cluster-logging-operator-66f77ffccb-ppzbg 1/1 Running 0 7m elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp 2/2 Running 0 2m40s elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc 2/2 Running 0 2m36s elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2 2/2 Running 0 2m4s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
ClusterLogging
CR:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来验证安装。
oc get pods -n openshift-logging
$ oc get pods -n openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果没有在 s3 存储桶或 LokiStack 自定义资源(CR)中定义保留周期,则不会修剪日志,它们会永久保留在 s3 存储桶中,这可能会填满 s3 存储。