Adición de exportadores y canalizaciones a la implementación del enrutador de telemetría
Nota:
- El enrutador de telemetría está actualmente en versión preliminar pública y se debe implementar únicamente con fines de prueba.
- Mientras el enrutador de telemetría esté en versión preliminar pública, tenga en cuenta que futuras versiones preliminares podrían incluir cambios en las especificaciones de CRD, los comandos de la CLI o los mensajes del enrutador de telemetría.
- La versión preliminar actual no admite actualizaciones locales de un controlador de datos implementado con el enrutador de telemetría de Arc habilitado. Para instalar o actualizar un controlador de datos en una versión futura, deberá desinstalar el controlador de datos y, a continuación, volver a instalarlo.
¿Qué son los exportadores y las canalizaciones?
Los exportadores y las canalizaciones son dos de los componentes principales del enrutador de telemetría. Los exportadores describen cómo enviar datos a un sistema de destino, por ejemplo, Kafka. Al crear un exportador, se asocia a una canalización para enrutar ese tipo de datos de telemetría a ese destino. Puede tener varios exportadores para cada canalización.
En este artículo, se proporcionan ejemplos de cómo configurar sus propios exportadores y canalizaciones para enrutar los datos de telemetría de supervisión a su propio exportador compatible.
Exportadores admitidos
Exportador | Tipos de canalización admitidos |
---|---|
Kafka | Registros y métricas |
Elasticsearch | logs |
Configuraciones
Todas las configuraciones se especifican mediante la especificación de los recursos personalizados del enrutador de telemetría y admiten la configuración de exportadores y canalizaciones.
Exportadores
Para la versión preliminar pública, los exportadores son parcialmente configurables y admiten las siguientes soluciones:
Exportador | Tipos de telemetría admitidos |
---|---|
Kafka | Registros y métricas |
Elasticsearch | logs |
Las siguientes propiedades se pueden configurar actualmente durante la versión preliminar pública:
Configuración general del exportador
Configuración | Descripción |
---|---|
certificateName | Certificado de cliente para exportar a la solución de supervisión |
caCertificateName | Certificado de entidad de certificación del clúster o certificado proporcionado por el cliente para el exportador |
Configuración del exportador de Kafka
Configuración | Descripción |
---|---|
topic | Nombre del tema que se va a exportar |
agentes | Lista de agentes a los que conectarse |
encoding | Codificación para la telemetría: otlp_json o otlp_proto |
Configuración del exportador de Elasticsearch
Configuración | Descripción |
---|---|
índice | Este valor puede ser el nombre de un índice o un nombre de flujo de datos para publicar eventos |
endpoint | Punto de conexión de Elasticsearch al que se va a exportar |
Pipelines
El enrutador de telemetría admite canalizaciones de registros y métricas. Estas canalizaciones se exponen en la especificación de recursos personalizados del enrutador de telemetría de Arc y están disponibles para su modificación.
No se puede quitar la última canalización del enrutador de telemetría. Si aplica un archivo YAML que quita la última canalización, el servicio rechaza la actualización.
Configuración de la canalización
Configuración | Descripción |
---|---|
logs | Solo se pueden declarar nuevas canalizaciones de registros. |
Métricas | Solo se pueden declarar nuevas canalizaciones de métricas. |
exportadores | Lista de exportadores. Pueden ser múltiples del mismo tipo. |
Credenciales
Configuración de credenciales
Configuración | Descripción |
---|---|
certificateName | El nombre del certificado debe corresponder al nombre del certificado especificado en la declaración del exportador |
secretName | Nombre del secreto proporcionado a través de Kubernetes |
secretNamespace | Espacio de nombres con secreto proporcionado a través de Kubernetes |
Especificación de enrutador de telemetría de ejemplo
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
Ejemplo 1: Adición de un exportador de Kafka para una canalización de métricas
Puede probar la creación de un exportador de Kafka para una canalización de métricas que pueda enviar datos de métricas a su propia instancia de Kafka. Debe utilizar kafka/
como prefijo del nombre de la canalización de métricas. Puede tener una instancia sin nombre para cada tipo de telemetría. Por ejemplo, "kafka" es un nombre válido para una canalización de métricas.
- Proporcione los certificados de cliente y CA en la sección
credentials
mediante secretos de Kubernetes. - Declare el nuevo exportador en la sección
exporters
con la configuración necesaria: nombre, certificados, agente e índice. Asegúrese de enumerar el nuevo exportador bajo el tipo aplicable ("kakfa:"). - Enumere el exportador en la sección
pipelines
de la especificación como una canalización de métricas. El nombre del exportador debe tener como prefijo el tipo de exportador. Por ejemplo:kafka/myMetrics
En este ejemplo, hemos agregado una canalización de métricas llamada "metrics" con un único exportador (kafka/myMetrics
) que enruta a la instancia de Kafka.
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>
Ha agregado una canalización de métricas que exporta a la instancia de Kafka. Después de aplicar los cambios en el archivo YAML, el recurso personalizado TelemetryRouter pasará a un estado de actualización y el servicio recopilador se reiniciará.
Ejemplo 2: Adición de un exportador de Elasticsearch para una canalización de registros
La implementación del enrutador de telemetría puede exportar a varios destinos configurando más exportadores. Se admiten varios tipos de exportadores en una implementación de enrutador de telemetría determinada. En este ejemplo, se muestra cómo agregar un exportador de Elasticsearch como segundo exportador. Para activar este segundo exportador, lo agregamos a una canalización de registros.
- Proporcione los certificados de cliente y CA en la sección
credentials
mediante secretos de Kubernetes. - Declare el nuevo exportador bajo la sección
exporters
con la configuración necesaria: nombre, certificados, punto de conexión e índice. Asegúrese de enumerar el nuevo exportador bajo el tipo aplicable ("Elasticsearch:"). - Enumere el exportador en la sección
pipelines
de la especificación como una canalización de registros. El nombre del exportador debe tener como prefijo el tipo de exportador. Por ejemplo:elasticsearch/myLogs
Este ejemplo se basa en el ejemplo anterior y agrega una canalización de registros para un exportador de Elasticsearch (elasticsearch/myLogs
). Al final del ejemplo, tendremos dos exportadores y cada exportador se habrá agregado a una canalización diferente.
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>
Ahora tiene exportadores de Kafka y Elasticsearch agregados a las canalizaciones de métricas y registros. Después de aplicar los cambios en el archivo YAML, el recurso personalizado TelemetryRouter pasará a un estado de actualización y el servicio recopilador se reiniciará.