4.2. 使用 OpenTelemetry 快速开始
OpenTelemetry 协议(OTLP)输出日志转发器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
要配置 OTLP ingestion 并启用 OpenTelemetry 数据模型,请按照以下步骤执行:
先决条件
- 集群管理员权限
流程
- 从 OperatorHub 安装 Red Hat OpenShift Logging Operator、Loki Operator 和 Cluster Observability Operator (COO)。
在
openshift-logging命名空间中创建LokiStack自定义资源(CR):apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: managementState: Managed size: 1x.extra-small storage: schemas: - effectiveDate: '2024-10-01' version: v13 secret: name: logging-loki-s3 type: s3 storageClassName: gp3-csi tenants: mode: openshift-logging注意确保事先创建
logging-loki-s3secret。此 secret 的内容因使用的对象存储而异。如需更多信息,请参阅"Secrets 和 TLS 配置"。为收集器创建服务帐户:
$ oc create sa collector -n openshift-logging允许收集器的服务帐户将数据写入
LokiStackCR:$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector注意ClusterRole资源是在 Cluster Logging Operator 安装过程中自动创建的,不需要手动创建。允许收集器的服务帐户收集日志:
$ oc project openshift-logging$ oc adm policy add-cluster-role-to-user collect-application-logs -z collector$ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector注意示例将收集器绑定到所有三个角色(应用程序、基础架构和审计)。默认情况下,只收集应用程序和基础架构日志。要收集审计日志,请更新
ClusterLogForwarder配置使其包含它们。根据您的环境所需的特定日志类型,分配角色。创建一个
UIPluginCR,以启用 Observe 选项卡中的 Log 部分:apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: logging spec: type: Logging logging: lokiStack: name: logging-loki创建一个
ClusterLogForwarderCR 来配置日志转发:apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging annotations: observability.openshift.io/tech-preview-otlp-output: "enabled"1 spec: serviceAccount: name: collector outputs: - name: loki-otlp type: lokiStack2 lokiStack: target: name: logging-loki namespace: openshift-logging dataModel: Otel3 authentication: token: from: serviceAccount tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: my-pipeline inputRefs: - application - infrastructure outputRefs: - loki-otlp注意当
dataModel为Otel时,您无法使用lokiStack.labelKeys。要在dataModel为Otel时实现类似的功能,请参阅"为 OTLP 数据生成"配置 LokiStack。
验证
-
进入 OpenShift web 控制台中的 Observe
OpenShift Logging LokiStack Writes 来验证 OTLP 是否正常工作,并检查 Distributor - Structured Metadata。