3.3. 配置和部署分布式追踪数据收集
Red Hat OpenShift distributed tracing 数据收集 Operator 使用一个自定义资源定义(CRD)文件来定义创建和部署 Red Hat OpenShift distributed tracing 数据收集资源时要使用的架构和配置设置。您可以安装默认配置或修改该文件以更好地满足您的业务要求。
3.3.1. OpenTelemetry Collector 配置选项
Red Hat OpenShift distributed tracing 数据收集 Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
OpenTelemetry Collector 由访问遥测数据的三个组件组成:
- Receivers - 用于控制数据如何进入收集器的接收器,它基于推送或拉取。通常,接收器接受指定格式的数据,将其转换为内部格式,并将其传递给适用管道中定义的处理器和导出器。默认情况下,不会配置接收器。必须配置一个或多个接收器。接收器可以支持一个或多个数据源。
- Processors -(可选)处理器在收到和导出的数据中运行。默认情况下,不启用处理器。每个数据源都必须启用处理器。不是所有处理器都支持所有数据源。根据数据源,建议启用多个处理器。此外,请务必注意处理器的顺序,这很重要。
- Exporters - 用于控制数据如何发送到一个或多个后端/目的地的导出器,它基于推送或拉取。默认情况下,不会配置导出器。必须配置一个或多个导出器。导出器可能支持一个或多个数据源。导出器可能会附带默认设置,但一般还需要指定目标和安全设置。
您可以在自定义资源 YAML 文件中定义多个组件实例。配置后,必须通过 YAML 文件的 spec.config.service
部分中定义的管道启用这些组件。作为最佳实践,您应该只启用您需要的组件。
OpenTelemetry 收集器自定义资源文件示例
apiVersion: opentelemetry.io/v1alpha1 kind: OpenTelemetryCollector metadata: name: cluster-collector namespace: tracing-system spec: mode: deployment config: | receivers: otlp: protocols: grpc: http: processors: exporters: jaeger: endpoint: jaeger-production-collector-headless.tracing-system.svc:14250 tls: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" service: pipelines: traces: receivers: [otlp] processors: [] exporters: [jaeger]
如果一个组件已配置,但没有在 service
部分中定义,则不会启用它。
参数 | 描述 | 值 | default |
---|---|---|---|
receivers: | 接收器用于控制数据如何进入 Collector。默认情况下,不会配置接收器。必须至少有一个启用的接收器才能使配置被视为有效。接收器通过添加到管道中来启用。 |
| 无 |
receivers: otlp: |
| ||
processors: | 处理器在被接收和导出的数据上运行。默认情况下,不启用处理器。 | 无 | |
exporters: | 导出器将数据发送到一个或多个后端/目标。默认情况下,不会配置导出器。必须至少启用了一个 exporter 时,配置才被视为有效。将导出器添加到管道中即可启用。导出器可能会附带默认设置,但一般还需要指定目标和安全设置。 |
| 无 |
exporters: jaeger: endpoint: |
| ||
exporters: jaeger: tls: ca_file: | CA 证书的路径。对于客户端,这将验证服务器证书。对于服务器,这会验证客户端证书。如果为空使用系统 root CA。 | ||
service: pipelines: |
组件通过将组件添加到 | ||
service: pipelines: traces: receivers: |
您可以通过在 | 无 | |
service: pipelines: traces: processors: |
您可以通过在 | 无 | |
service: pipelines: traces: exporters: |
您可以通过在 | 无 |
3.3.2. 验证部署
3.3.3. 访问 Jaeger 控制台
要访问 Jaeger 控制台,您必须安装 Red Hat OpenShift Service Mesh 或 Red Hat OpenShift distributed tracing,并且安装、配置和部署了 Red Hat OpenShift distributed tracing 平台。
安装过程会创建路由来访问 Jaeger 控制台。
如果您知道 Jaeger 控制台的 URL,您可以直接访问它。如果您不知道 URL,请使用以下指示:
从 OpenShift 控制台的步骤
-
以具有 cluster-admin 权限的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有
dedicated-admin
角色的帐户。 -
进入 Networking
Routes。 在 Routes 页面中,从 Namespace 菜单中选择 control plane 项目,如
tracing-system
。Location 列显示每个路由的链接地址。
-
如有必要,使用过滤器来查找
jaeger
路由。单击路由 位置 以启动控制台。 - 单击 Log In With OpenShift。
通过 CLI 操作的步骤
以具有
cluster-admin
角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有dedicated-admin
角色的帐户。$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
要使用命令行查询路由详情,请输入以下命令。在本例中,
trace-system
是 control plane 命名空间。$ export JAEGER_URL=$(oc get route -n tracing-system jaeger -o jsonpath='{.spec.host}')
-
启动浏览器并进入
https://<JAEGER_URL>
,其中<JAEGER_URL>
是您在上一步中发现的路由。 - 使用您用于访问 OpenShift Container Platform 控制台的相同用户名和密码登录。
如果您已将服务添加到服务网格中并生成了 trace,您可以使用过滤器和 Find Traces 按钮搜索 trace 数据。
如果您要验证控制台安装,则不会显示 trace 数据。