你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将导出程序和管道添加到遥测路由器部署中
注意
- 遥测路由器为公共预览版,应仅出于测试目的对其进行部署。
- 虽然遥测路由器为公共预览版,但请注意,未来的预览版本可能包括对 CRD 规范、CLI 命令和/或遥测路由器消息的更改。
- 当前的预览版不支持在启用 Arc 遥测路由器的情况下就地升级部署的数据控制器。 为了在将来的版本中安装或升级数据控制器,需要卸载数据控制器,然后重新安装。
导出程序和管道是什么?
导出程序和管道是遥测路由器的两个主要组件。 导出程序描述如何将数据发送到目标系统(例如 Kafka)。 创建导出程序时,可以将其与管道关联,以便将该类型的遥测数据路由到该目标。 每个管道可以有多个导出程序。
本文提供的示例介绍了如何设置你自己的导出程序和管道,以将监视遥测数据路由到你自己的受支持的导出程序。
支持的导出程序
出口商 | 支持的管道类型 |
---|---|
Kafka | 日志、指标 |
Elasticsearch | 日志 |
配置
所有配置都是通过遥测路由器的自定义资源规范指定的,都支持导出程序和管道的配置。
导出工具
在公共预览版中,导出程序是部分可配置的,支持以下解决方案:
出口商 | 支持的遥测类型 |
---|---|
Kafka | 日志、指标 |
Elasticsearch | 日志 |
以下属性当前可在公共预览版期间进行配置:
常规导出程序设置
设置 | 说明 |
---|---|
certificateName | 用于向监视解决方案导出内容的客户端证书 |
caCertificateName | 群集的证书颁发机构,或客户为导出程序提供的证书 |
Kafka 导出程序设置
设置 | 说明 |
---|---|
主题 | 要导出的主题的名称 |
代理 | 要连接到的中转站列表 |
encoding | 遥测编码:otlp_json 或 otlp_proto |
Elasticsearch 导出程序设置
设置 | 说明 |
---|---|
索引 | 此设置可以是发布事件所需的索引名称或数据流名称 |
endpoint | 要导出到的 Elasticsearch 的终结点 |
管道
遥测路由器支持日志和指标管道。 这些管道在 Arc 遥测路由器的自定义资源规范中公开,并可供修改。
无法从遥测路由器中删除最后一个管道。 如果应用一个会删除最后一个管道的 yaml 文件,服务会拒绝此更新。
管道设置
设置 | 说明 |
---|---|
日志 | 只能声明新的日志管道 |
指标 | 只能声明新的指标管道 |
导出程序 | 导出程序列表。 可以是同一类型的多个 |
凭据
凭据设置
设置 | 说明 |
---|---|
certificateName | 证书名称必须与导出程序声明中指定的证书名称相对应 |
secretName | 通过 Kubernetes 提供的机密的名称 |
secretNamespace | 具有通过 Kubernetes 提供的机密的命名空间 |
TelemetryRouter 规范示例
apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
name: arc-telemetry-router
namespace: <namespace>
spec:
credentials:
certificates:
- certificateName: arcdata-elasticsearch-exporter
- certificateName: cluster-ca-certificate
exporters:
elasticsearch:
- caCertificateName: cluster-ca-certificate
certificateName: arcdata-elasticsearch-exporter
endpoint: https://logsdb-svc:9200
index: logstash-otel
name: arcdata
pipelines:
logs:
exporters:
- elasticsearch/arcdata
示例 1:为指标管道添加 Kafka 导出程序
可以测试一下如何为指标管道创建 Kafka 导出程序,该导出程序可以将指标数据发送到你自己的 Kafka 实例。 需要在指标管道的名称前添加 kafka/
前缀。 每种遥测类型都可以有一个未命名实例。 例如,“kafka”是指标管道的有效名称。
- 通过 Kubernetes 机密在
credentials
节提供客户端和 CA 证书 - 在
exporters
节中使用所需的设置(名称、证书、中转站和索引)声明新的导出程序。 请务必在适用的类型下列出新的导出程序(“kafka:”) - 在规范的
pipelines
节中将导出程序列为指标管道。 导出程序名称需要以导出程序类型为前缀。 例如:kafka/myMetrics
在此示例中,我们添加了一个名为“metrics”的指标管道,其中包含路由到你的 Kafka 实例的单个导出程序 (kafka/myMetrics
)。
arc-telemetry-router.yaml
apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
name: arc-telemetry-router
namespace: <namespace>
spec:
credentials:
certificates:
# Step 1. Provide your client and ca certificates through Kubernetes secrets
# where the name of the secret and its namespace are specified.
- certificateName: <kafka-client-certificate-name>
secretName: <name_of_secret>
secretNamespace: <namespace_with_secret>
- certificateName: <ca-certificate-name>
secretName: <name_of_secret>
secretNamespace: <namespace_with_secret>
exporters:
kafka:
# Step 2. Declare your Kafka exporter with the needed settings
# (name, certificates, endpoint, and index to export to)
- name: myMetrics
# Provide your client and CA certificate names
# for the exporter as well as any additional settings needed
caCertificateName: <ca-certificate-name>
certificateName: <kafka-client-certificate-name>
broker: <kafka_broker>
# Index can be the name of an index or datastream name to publish events to
index: <kafka_index>
pipelines:
metrics:
exporters:
# Step 3. Assign your kafka exporter to the list
# of exporters for the metrics pipeline.
- kafka/myMetrics
kubectl apply -f arc-telemetry-router.yaml -n <namespace>
你已经添加了一个导出到 Kafka 实例的指标管道。 将更改应用到 yaml 文件后,TelemetryRouter 自定义资源会进入更新状态,收集器服务会重启。
示例 2:为日志管道添加 Elasticsearch 导出程序
遥测路由器部署可以通过配置更多导出程序导出到多个目标。 给定遥测路由器部署支持多种类型的导出程序。 此示例演示如何添加 Elasticsearch 导出程序作为第二个导出程序。 我们通过将第二个导出程序添加到日志管道来激活它。
- 通过 Kubernetes 机密在
credentials
节提供客户端和 CA 证书 - 在
exporters
节下使用所需的设置(名称、证书、终结点和索引)声明新的导出程序。 请务必在适用的类型下列出新的导出程序(“Elasticsearch:”)。 - 在规范的
pipelines
节中将导出程序列为日志管道。 导出程序名称需要以导出程序类型为前缀。 例如:elasticsearch/myLogs
此示例基于上一个示例构建,构建方法是为 Elasticsearch 导出程序 (elasticsearch/myLogs
) 添加日志管道。 在示例的最后,我们有两个导出程序,每个导出程序都添加到不同的管道中。
arc-telemetry-router.yaml
apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
name: arc-telemetry-router
namespace: <namespace>
spec:
credentials:
certificates:
# Step 1. Provide your client and ca certificates through Kubernetes secrets
# where the name of the secret and its namespace are specified.
- certificateName: <elasticsearch-client-certificate-name>
secretName: <name_of_secret>
secretNamespace: <namespace_with_secret>
- certificateName: <kafka-client-certificate-name>
secretName: <name_of_secret>
secretNamespace: <namespace_with_secret>
- certificateName: <ca-certificate-name>
secretName: <name_of_secret>
secretNamespace: <namespace_with_secret>
exporters:
Elasticsearch:
# Step 2. Declare your Elasticsearch exporter with the needed settings
# (certificates, endpoint, and index to export to)
- name: myLogs
# Provide your client and CA certificate names
# for the exporter as well as any additional settings needed
caCertificateName: <ca-certificate-name>
certificateName: <elasticsearch-client-certificate-name>
endpoint: <elasticsearch_endpoint>
# Index can be the name of an index or datastream name to publish events to
index: <elasticsearch_index>
kafka:
- name: myMetrics
caCertificateName: <ca-certificate-name>
certificateName: <kafka-client-certificate-name>
broker: <kafka_broker>
index: <kafka_index>
pipelines:
logs:
exporters:
# Step 3. Add your Elasticsearch exporter to
# the exporters list of a logs pipeline.
- elasticsearch/myLogs
metrics:
exporters:
- kafka/myMetrics
kubectl apply -f arc-telemetry-router.yaml -n <namespace>
现在,你已将 Kafka 和 Elasticsearch 导出程序添加到指标和日志管道中。 将更改应用到 yaml 文件后,TelemetryRouter 自定义资源会进入更新状态,收集器服务会重启。