Transmisión de métricas a un servicio de Kafka
Puede utilizar IBM Cloud® Monitoring para enviar un conjunto de métricas seleccionadas a un servicio de Kafka como Event Streams.
Deberá configurar:
-
Las métricas que se van a exportar en un ámbito definido.
Los nombres de métrica y el ámbito se especifican en formato PromQL.
-
La granularidad de los datos.
Por ejemplo, 10 segundos (10s) o 1 minuto (1m). La agregación recomendada es 1m.
-
El tema de Kafka que IBM Cloud Monitoring utilizará para exportar los datos.
Requisitos previos
Compruebe los siguientes requisitos previos antes de gestionar la transmisión:
-
Compruebe las limitaciones de los planes de servicio. Para obtener más información, consulte Límites y cuotas.
-
Asegúrese de que tiene los permisos adecuados.
-
Debe tener el rol de gestor para configurar la modalidad continua.
-
Cuando configura la modalidad continua, se deben suministrar la instancia de IBM Cloud Monitoring y la instancia de Event Streams en la misma cuenta.
-
Para conectar la instancia de IBM Cloud Monitoring con la instancia de Event Streams, necesita la información siguiente:
-
Debe tener el rol de gestor para poder configurar la transmisión en la instancia de IBM Cloud Monitoring. Este rol incluye el sysdig-monitor.launch.admin Rol de acción de IAM que permite a un usuario realizar tareas de administración, como configurar la transmisión.
-
Cuando configura la modalidad continua, se deben suministrar la instancia de Monitoring y la instancia de Event Streams en la misma cuenta.
-
Para conectar la instancia de Monitoring con la instancia de Event Streams, necesita la información siguiente:
-
URL de punto final para llamar a las API
-
Credenciales para la autenticación
-
-
-
Para poder crear un tema en Event Streams, debe tener el rol de gestor. Este rol incluye el rol de acción messagehub.topic.manage de IAM, que permite a una aplicación o usuario crear o suprimir temas.
-
La credencial que Monitoring utiliza para publicar datos en Event Streams debe tener el rol de escritor. Este rol incluye el rol de acción de IAM messagehub.topic.write, que permite a una aplicación o servicio grabar datos en 1 o más temas.
-
-
Si configura la cuenta para restringir el acceso a las direcciones IP configuradas a través de los valores de IAM, o si la cuenta limita las ubicaciones de red desde las que se aceptan las conexiones a través de las reglas de restricciones basadas en contexto (CBR) para el servicio Event Streams, debe incluir en la lista de elementos permitidos las IP Monitoring de la cuenta. Para obtener más información, consulte Puntos finales deMonitoring y Event Streams-Restricción del acceso a la red.
Las instrucciones de este tema están basadas en el uso de un plan de empresa.
Gestionar la transmisión mediante la interfaz de usuario
Configurar modalidad continua
Siga estos pasos para configurar la transmisión mediante la interfaz de usuario:
Paso 1. Crear un tema en Event Streams
Complete los pasos siguientes para crear un tema de Event Streams:
-
Inicie sesión en su cuenta de IBM Cloud.
Después de iniciar sesión con su ID de usuario y su contraseña, se abre el panel de control de IBM Cloud.
-
Pulse el icono Menú
> Lista de recursos.
-
Busque la instancia de Event Streams que tiene previsto utilizar y selecciónela.
-
En la consola de instancia de Event Streams, pulse Gestionar > Iniciar panel de control.
-
Pulse Crear un tema.
Crear un tema -
Especifique un nombre de tema y pulse Siguiente.
Especifique el nombre de tema -
Especifique el número de particiones y pulse Siguiente.
Una o varias particiones componen un tema. Una partición es una lista ordenada de mensajes. Las particiones se distribuyen entre los intermediarios con el fin de aumentar la escalabilidad de su tema. También puede utilizarlas para distribuir mensajes entre los miembros de un grupo de consumidores.
Especifique el número de particiones -
Seleccione una Retención de mensajes y pulse Crear tema.
La retención de mensajes define durante cuánto tiempo se conservan los mensajes antes de que se supriman. Si un consumidor no lee sus mensajes durante este plazo de tiempo, se perderán.
Paso 2. Crear credenciales para autenticar la instancia de supervisión con Event Streams
Necesita la información siguiente para conectar la instancia de Monitoring con la instancia de Event Streams:
- URL de punto final para llamar a las API
- Credenciales para la autenticación
Complete los pasos siguientes para crear las credenciales de servicio que necesita la instancia de Monitoring para comunicarse con la instancia de Event Streams:
-
En IBM Cloud, pulse el icono Menú
> Lista de recursos.
-
Busque la instancia de Event Streams que tiene previsto utilizar y selecciónela.
-
En la consola Event Streams, pulse Credenciales de servicio.
-
Seleccione Nueva credencial.
-
Especifique un nombre y seleccione el rol de escritor.
Crear una credencial -
Pulse Añadir.
Para restringir el acceso a 1 tema, realice los pasos siguientes:
-
En la barra de menús, pulse Gestionar > Acceso (IAM) y seleccione ID de servicio.
Seleccionar ID de servicio -
Seleccione el ID de servicio.
-
Seleccione Políticas de acceso.
-
Seleccione la política y modifíquela para especificar el tema.
Editar política Modificar política -
Obtenga las credenciales utilizando la CLI de IBM Cloud y tome nota de la clave de api y de los valores de URL del intermediario.
Paso 3. Configurar la conexión en Monitoring a Event Streams
Para configurar la transmisión de datos de métrica de IBM Cloud Monitoring, haga lo siguiente:
-
Inicie la interfaz de usuario web como un usuario con autorización de administrador. Para obtener más información sobre cómo iniciar la interfaz de usuario web, consulte Navegación a la interfaz de usuario web.
-
Pulse el icono Usuario. Este es el icono con las iniciales del usuario conectado. A continuación, pulse Valores.
-
Seleccione Transmisión de datos de métricas.
-
Pulse Añadir integración. Se visualiza el panel Nueva integración de transmisión de métricas.
Panel Integración de modalidad continua de métrica -
Especifique la información siguiente:
- Nombre de la integración
- El nombre de la configuración de transmisión.
- Tema
- El nombre del tema de Kafka para recibir las métricas.
- Intermediarios
- Una lista de intermediarios de Kafka separados por comas, por ejemplo,
kafka-2.mh-svc.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc.eu-de.containers.appdomain.cloud:9093,kafka-0.mh-svc.eu-de.containers.appdomain.cloud:9093
. Observe que no debe escribir los URL entre"
. - TLS
- El método de Seguridad de la capa de transporte (TLS). Habilite TLS para cifrar y proteger la transferencia de datos.
- Credenciales
- Las credenciales utilizadas por Monitoring para exportar los datos de la instancia de Monitoring al servidor de Kafka. Puede elegir el usuario y la contraseña, o un certificado codificado en base64.
Opciones de credencial - Compresión
- Elija el tipo de compresión. Las opciones válidas son:
LZ4
,Snappy
,Gzip
yZstandard
. Para obtener más información, consulte Compresión de mensajes en Apache Kafka.
-
Pulse Conexión de prueba para verificar que la conexión entre IBM Cloud Monitoring y Kafka se ha configurado correctamente.
Debe probar la conexión antes de guardar y habilitar la configuración.
-
Seleccione el Ámbito y defina las Métricas que se van a exportar.
En Ámbito, seleccione una o más etiquetas para filtrar las métricas definidas.
Las métricas deben especificar el nombre completo de la métrica utilizando PromQL.
-
Pulse Guardar.
Después de guardar la configuración, debe esperar al menos 30 minutos antes de que se active la transmisión.
Habilitar o detener la transmisión mediante la interfaz de usuario
Puede iniciar y detener la transmisión de métricas desde la página Transmisión de datos de métricas:
-
Inicie la interfaz de usuario web como un usuario con autorización de administrador. Para obtener más información sobre cómo iniciar la interfaz de usuario web, consulte Navegación a la interfaz de usuario web.
-
Pulse el icono Usuario. Este es el icono con las iniciales del usuario conectado. A continuación, pulse Valores.
-
Seleccione Transmisión de datos de métricas. Se visualiza la lista de configuraciones de transmisión.
Configuraciones de modalidad continua -
Habilitar o inhabilitar una configuración de transmisión mediante el conmutador.
Gestionar la transmisión utilizando la API
Siga estos pasos para gestionar la transmisión mediante la interfaz de usuario:
Listar las configuraciones de transmisión
Utilice este método para obtener los detalles de todas las configuraciones de transmisión existentes.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Donde
<ENDPOINT>
indica el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte Puntos finales de API REST de supervisión. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente:https://us-south.monitoring.cloud.ibm.com/api
- Señal de API de
<TOKEN>
que se utiliza para autenticarse con el servicio Monitoring. Debe incluirBearer
con la señal. Para obtener más información, consulte Trabajar con señales de API de Monitoring.
La respuesta será similar a la siguiente:
{"dataStreamConfigs":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"name":"Streaming metrics - demo","type":"kafka"}]}
Obtener detalles para una configuración de transmisión
Utilice este método para obtener los detalles de una configuración de transmisión.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Donde
<ENDPOINT>
representa el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte Puntos finales de API REST de supervisión. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente:https://us-south.monitoring.cloud.ibm.com/api
- Señal de API de
<TOKEN>
que se utiliza para autenticarse con el servicio Monitoring. Debe incluirBearer
con la señal. Para obtener más información, consulte Trabajar con señales de API de Monitoring. <STREAMING_CONFIG_ID>
representa el UUID de la configuración de transmisión para la que desea obtener detalles.
La respuesta será similar a la siguiente:
{
"dataStreamConfig": {
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"enabled": true,
"name": "Streaming metrics - demo",
"emitterType": "kafka",
"emitterProperties": {
"bootstrap.servers": "kafka-0.mh-svc1.eu-de.containers.appdomain.cloud:9093, kafka-2.mh-svc2-0000.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc3.eu-de.containers.appdomain.cloud:9093",
"topic.name": "my-monitoring-topic",
"compression.type": "lz4",
"security.protocol": "SASL_SSL",
"sasl.mechanism": "PLAIN",
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"xxxxxxxxxxxxx\";","ssl.truststore.base64.content":""}},"dataStreamRules":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"metrics":["kube_daemonset_labels","kube_node_status_condition"],"aggregation":"avg","aggregationSec":10,"scope":"kubernetes.cluster.name = \"mycluster\"",
"dataStreamConfigUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
]
}
Crear una configuración de transmisión
Utilice este método para configurar una configuración de transmisión que reenvía un conjunto de métricas a Event Streams.
curl --request POST https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
Donde
<ENDPOINT>
representa el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte Puntos finales de API REST de supervisión. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente:https://us-south.monitoring.cloud.ibm.com/api
- Señal de API de
<TOKEN>
que se utiliza para autenticarse con el servicio Monitoring. Debe incluirBearer
con la señal. Para obtener más información, consulte Trabajar con señales de API de Monitoring.
Un archivo streaming-config.json
de ejemplo tiene el aspecto siguiente:
{
"dataStreamConfig": {
"enabled": true,
"name": "Streaming metrics config",
"emitterType": "kafka",
"emitterProperties": {
"bootstrap.servers": "kafka-0.mh-svc1.eu-de.containers.appdomain.cloud:9093,kafka-2.mh-svc2.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc3.eu-de.containers.appdomain.cloud:9093",
"topic.name": "my-monitoring-topic",
"compression.type": "lz4",
"security.protocol": "SASL_SSL",
"sasl.mechanism": "PLAIN",
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"xxxxxxxxxx\";",
"ssl.truststore.base64.content": ""
}
},
"dataStreamRules": [
{
"enabled": true,
"metrics": [
"kube_daemonset_labels",
"kube_node_status_condition"
],
"aggregation": "avg",
"aggregationSec": 10,
"scope": "kubernetes.cluster.name = \"mycluster\""
}
]
}
Actualizar una configuración de transmisión
Actualice una configuración de transmisión en cualquiera de las siguientes situaciones:
- La clave de API para autenticarse con Event Streams se gira, se comprime o necesita modificarse.
- Cuando desea cambiar las métricas que se transmiten, añadiendo métricas nuevas o eliminando métricas.
- Cuando debe cambiar el ámbito.
- Para habilitar o inhabilitar la transmisión de datos para la configuración.
Utilice este método para actualizar una configuración de transmisión que reenvía un conjunto de métricas a Event Streams.
curl --request PUT https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
Donde
<ENDPOINT>
representa el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte Puntos finales de API REST de supervisión. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente:https://us-south.monitoring.cloud.ibm.com/api
- Señal de API de
<TOKEN>
que se utiliza para autenticarse con el servicio Monitoring. Debe incluirBearer
con la señal. Para obtener más información, consulte Trabajar con señales de API de Monitoring. <STREAMING_CONFIG_ID>
representa el UUID de la configuración de transmisión.
Un archivo streaming-config.json
de ejemplo tiene el aspecto siguiente:
{
"dataStreamConfig": {
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"enabled": true,
"name": "Streaming metrics - demo",
"emitterType": "kafka",
"emitterProperties": {
"bootstrap.servers": "kafka-0.mh-svc1.eu-de.containers.appdomain.cloud:9093, kafka-2.mh-svc2-0000.eu-de.containers.appdomain.cloud:9093,kafka-1.mh-svc3.eu-de.containers.appdomain.cloud:9093",
"topic.name": "my-monitoring-topic",
"compression.type": "lz4",
"security.protocol": "SASL_SSL",
"sasl.mechanism": "PLAIN",
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"token\" password=\"xxxxxxxxxxxxx\";","ssl.truststore.base64.content":""}},"dataStreamRules":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"metrics":["kube_daemonset_labels","kube_node_status_condition"],"aggregation":"avg","aggregationSec":10,"scope":"kubernetes.cluster.name = \"mycluster\"",
"dataStreamConfigUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
]
}
Suprimir una configuración de transmisión
Utilice este método para suprimir una configuración de transmisión que reenvía un conjunto de métricas a Event Streams.
curl --request DELETE https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Donde
<ENDPOINT>
representa el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte Puntos finales de API REST de supervisión. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente:https://us-south.monitoring.cloud.ibm.com/api
- Señal de API de
<TOKEN>
que se utiliza para autenticarse con el servicio Monitoring. Debe incluirBearer
con la señal. Para obtener más información, consulte Trabajar con señales de API de Monitoring. <STREAMING_CONFIG_ID>
representa el UUID de la configuración de transmisión.
Supervisión de streaming utilizando IBM Cloud Monitoring
Event Streams está integrado con el servicio de Monitoring . Monitoring proporciona una plantilla predeterminada que puede personalizar para supervisar la instancia de Event Streams, cómo se transmiten los datos de Monitoring y cómo se consumen en cualquier aplicación o servicio que se haya suscrito a Event Streams.
Complete los pasos siguientes para supervisar la instancia de Event Streams:
-
Compruebe que tiene una instancia de Monitoring en la misma región que la instancia de Event Streams. Esta instancia debe estar configurada para recopilar métricas de la plataforma. Para obtener más información, consulte Habilitación de métricas de la plataforma.
-
En la sección Paneles de control, vaya a Plantillas del panel de control y seleccione la plantilla IBM Event Streams (Enterprise).
-
Cree una copia de la plantilla pulsando Crear panel de control personalizado.
Puede utilizar la métrica Bytes de entrada de tema por segundo para ver cómo se envían los datos mediante Monitoring a Event Streams.
Puede utilizar la métrica Bytes de salida de tema por segundo para ver cómo cualquier aplicación o servicio que esté suscrito a Event Streams consume los datos.
-
(Opcional) Edite el panel Bytes de entrada de tema por segundo.
Panel Editar A continuación, personalice la métrica para ver datos por tema.
Personalizar métrica Compruebe que la resolución se ha establecido en 10M.