Flux de mesures vers un service Kafka
Vous pouvez utiliser IBM Cloud® Monitoring pour insérer un ensemble de mesures sélectionnées sur un service Kafka tel que Event Streams.
Vous devrez configurer :
-
Les mesures à exporter dans une portée définie.
Les noms et la portée des indicateurs sont spécifiés dans le format PromQL.
-
La granularité des données.
Par exemple, 10 secondes (10s) ou 1 minute (1m). L'agrégation recommandée est 1m.
-
La rubrique Kafka à utiliser par IBM Cloud Monitoring pour exporter les données.
Configuration requise
Vérifiez les pré-requis suivants avant de gérer la diffusion en continu :
-
Vérifiez les limitations des plans de service. Pour plus d'informations, voir Limites et quotas.
-
Vérifiez que vous disposez des droits appropriés.
-
Vous devez disposer du rôle manager pour configurer la diffusion en continu.
-
Lorsque vous configurez la diffusion en continu, l'instance IBM Cloud Monitoring et l'instance Event Streams doivent être mises à disposition dans le même compte.
-
Pour connecter l'instance IBM Cloud Monitoring à l'instance Event Streams, vous avez besoin des informations suivantes :
-
Vous devez avoir le rôle Gestionnaire pour configurer le flot de données dans l'instance IBM Cloud Monitoring. Ce rôle comprend le rôle d'action sysdig-monitor.launch.admin IAM qui permet à un utilisateur d'effectuer des tâches administratives telles que la configuration de la diffusion en continu.
-
Lorsque vous configurez la diffusion en continu, l'instance Monitoring et l'instance Event Streams doivent être mises à disposition dans le même compte.
-
Pour connecter l'instance Monitoring à l'instance Event Streams, vous avez besoin des informations suivantes :
-
URL des noeuds finaux pour appeler les API
-
Données d'identification pour l'authentification
-
-
-
Pour créer une rubrique dans Event Streams, vous devez avoir le rôle de gestionnaire. Celui-ci inclut le rôle d'action IAM messagehub.topic.manage, qui autorise une application ou un utilisateur à créer ou à supprimer une rubrique.
-
Les données d'identification utilisées par Monitoring pour publier des données dans Event Streams doivent avoir le rôle d'éditeur. Celui-ci inclut le rôle d'action IAM messagehub.topic.write, qui autorise une application ou un service à écrire des données dans une ou plusieurs rubriques.
-
-
Si vous configurez le compte pour restreindre l'accès aux adresses IP configurées via les paramètres IAM, ou si le compte limite les emplacements réseau à partir lesquels les connexions sont acceptées via les règles de restrictions contextuelles (CBR) pour le service Event Streams, vous devez autoriser les adresses IP Monitoring dans le compte. Pour plus d'informations, voir Noeuds finauxMonitoring et Event Streams-Restriction de l'accès réseau.
Les instructions de cette rubrique sont basées sur l'utilisation d'un plan Enterprise.
Gérer la diffusion en continu via l'interface utilisateur
Configuration de la diffusion en continu
Pour configurer la diffusion en continu via l'interface utilisateur, procédez comme suit :
Étape 1. Créez une rubrique dans Event Streams
Pour créer une rubrique Event Streams, procédez comme suit :
-
Connectez-vous à votre compte IBM Cloud.
Une fois connecté avec votre ID utilisateur et votre mot de passe, le tableau de bord IBM Cloud s'ouvre.
-
Cliquez sur l'icône Menu
> Liste de ressources.
-
Recherchez l'instance Event Streams que vous prévoyez d'utiliser, puis sélectionnez-la.
-
Dans la console d'instance Event Streams, cliquez sur Gérer > Lancer tableau de bord.
-
Cliquez sur Créer une rubrique.
Créer une rubrique -
Entrez un nom de rubrique et cliquez sur Suivant.
Entrez le nom de la rubrique -
Entrez le nombre de partitions et cliquez sur Suivant.
Une rubrique est constituée d'une ou de plusieurs partitions. Une partition est une liste ordonnée de messages. Les partitions sont réparties entre les courtiers afin d'améliorer l'évolutivité de votre rubrique. Vous pouvez également les utiliser pour distribuer des messages aux membres d'un groupe d'usagers.
Entrez le nombre de partitions -
Sélectionnez la conservation de message et cliquez sur Créer une rubrique.
La Conservation des messages définit la durée de conservation des messages avant leur suppression. Si vos messages ne sont pas lus par un utilisateur pendant cette période, ils ne seront pas pris en compte.
Étape 2. Créer des données d'identification pour authentifier l'instance de surveillance avec Event Streams
Vous avez besoin des informations suivantes pour connecter l'instance Monitoring à l'instance Event Streams :
- URL des noeuds finaux pour appeler les API
- Données d'identification pour l'authentification
Procédez comme suit pour créer les données d'identification du service dont l'instance Monitoring a besoin pour communiquer avec l'instance Event Streams :
-
Dans IBM Cloud, cliquez sur l'icône Menu
> Liste de ressources.
-
Recherchez l'instance Event Streams que vous prévoyez d'utiliser, puis sélectionnez-la.
-
Dans la console Event Streams, cliquez sur Données d'identification pour le service.
-
Sélectionnez Nouvelles données d'identification.
-
Entrez un nom et sélectionnez le rôle Auteur.
Créer des données d'identification -
Cliquez sur Ajouter.
Pour restreindre l'accès à une rubrique, procédez comme suit :
-
Dans la barre de menus, cliquez sur Gérer > Accès (IAM) puis sélectionnez ID de service.
Sélectionner des ID de service -
Sélectionnez l'ID de service.
-
Sélectionnez Règles d'accès.
-
Sélectionnez la règle et modifiez-la pour spécifier la rubrique.
Editer la règle
Modifier la règle -
Obtenez des données d'identification à l'aide de l'interface de ligne de commande IBM Cloud, puis prenez note des valeurs de la clé API et de l'URL du courtier.
Étape 3. Configurez la connexion dans Monitoring à Event Streams
Pour configurer le flot de données de mesure IBM Cloud Monitoring , procédez comme suit :
-
Lancez l'interface utilisateur Web en tant qu'utilisateur disposant des droits d'accès administrateur. Pour plus d'informations sur le lancement de l'interface utilisateur Web, voir Accès à l'interface utilisateur Web.
-
Cliquez sur l'icône utilisateur. Elle porte les initiales de l'utilisateur connecté. Cliquez ensuite sur Paramètres.
-
Sélectionnez Flux de données de mesures.
-
Cliquez sur Add Integration. Le panneau Nouvelle intégration de flux de mesures s'affiche.
Panneau Metrics Streaming Integration -
Spécifiez les informations suivantes :
- Nom d'intégration
- Nom de la configuration de flot de données.
- Topic
- Nom de la rubrique Kafka pour la réception des mesures.
- Courtiers
- Une liste de courtiers Kafka séparés par des virgules, par exemple
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. Notez que vous ne devez pas enfermer dans"les URL. - TLS
- La méthode du protocole TLS Activez TLS pour chiffrer et protéger le transfert de données.
- Données d'identification
- Données d'identification utilisées par Monitoring pour exporter les données de l'instance Monitoring vers le serveur Kafka. Vous pouvez choisir un utilisateur et un mot de passe, ou un certificat codé base64.
Options de données d'identification - Compression
- Choisissez le type de compression. Les options valides sont :
LZ4,Snappy,GzipetZstandard. Pour plus d'informations, voir Compression de message dans Apache Kafka.
-
Cliquez sur Tester la connexion pour vérifier que la connexion entre IBM Cloud Monitoring et Kafka a été correctement configurée.
Vous devez tester la connexion avant de sauvegarder et activer la configuration.
-
Sélectionnez le Portée et définissez les mesures à exporter.
Pour la portée, sélectionnez un ou plusieurs libellés pour filtrer les mesures définies.
Les métriques doivent spécifier le nom complet de la métrique en utilisant PromQL.
-
Cliquez sur Sauvegarder.
Une fois que vous avez sauvegardé la configuration, vous devez attendre au moins 30 minutes avant que le flot de données ne soit actif.
Activer ou arrêter la diffusion en continu via l'interface utilisateur
Vous pouvez démarrer et arrêter le flux de mesures à partir de la page Flux de données de mesures :
-
Lancez l'interface utilisateur Web en tant qu'utilisateur disposant des droits d'accès administrateur. Pour plus d'informations sur le lancement de l'interface utilisateur Web, voir Accès à l'interface utilisateur Web.
-
Cliquez sur l'icône utilisateur. Elle porte les initiales de l'utilisateur connecté. Cliquez ensuite sur Paramètres.
-
Sélectionnez Flux de données de mesures. La liste des configurations de diffusion en continu s'affiche.
Configurations de diffusion en flux -
Activez ou désactivez une configuration de flux à travers la bascule.
Gérer la diffusion en continu à l'aide de l'API
Procédez comme suit pour gérer la diffusion en continu via l'interface utilisateur :
Liste des configurations de diffusion en continu
Utilisez cette méthode pour obtenir les détails de toutes les configurations de flot de données existantes.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Où
<ENDPOINT>indique le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant :https://us-south.monitoring.cloud.ibm.com/api- Jeton API
<TOKEN>que vous utilisez pour vous authentifier auprès du service Monitoring. Vous devez inclureBeareravec le jeton. Pour plus d'informations, voir Utilisation des jetons d'API Monitoring.
La réponse se présente comme suit :
{"dataStreamConfigs":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"name":"Streaming metrics - demo","type":"kafka"}]}
Obtenir les détails d'une configuration de flot de données
Utilisez cette méthode pour obtenir les détails de la configuration 1 de flot de données.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Où
<ENDPOINT>représente le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant :https://us-south.monitoring.cloud.ibm.com/api- Jeton API
<TOKEN>que vous utilisez pour vous authentifier auprès du service Monitoring. Vous devez inclureBeareravec le jeton. Pour plus d'informations, voir Utilisation des jetons d'API Monitoring. <STREAMING_CONFIG_ID>représente l'UUID de la configuration de flot de données pour laquelle vous souhaitez obtenir des détails.
La réponse se présente comme suit :
{
"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"
}
]
}
Création d'une configuration de flot de données
Utilisez cette méthode pour configurer 1 configuration de flot de données qui transmet un ensemble de mesures à Event Streams.
curl --request POST https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
Où
<ENDPOINT>représente le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant :https://us-south.monitoring.cloud.ibm.com/api- Jeton API
<TOKEN>que vous utilisez pour vous authentifier auprès du service Monitoring. Vous devez inclureBeareravec le jeton. Pour plus d'informations, voir Utilisation des jetons d'API Monitoring.
Un exemple de fichier streaming-config.json se présente comme suit :
{
"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\""
}
]
}
Mise à jour d'une configuration de flot de données
Mettez à jour une configuration de flot de données dans l'une des zones suivantes :
- La clé de l'API pour l'authentification auprès de Event Streams est tournée, compromise ou à besoin d’être changée.
- Lorsque vous souhaitez modifier les mesures que vous diffusez, en ajoutant de nouvelles mesures ou en supprimant des mesures.
- Lorsque vous devez modifier la portée.
- Pour activer ou désactiver le flot de données en continu pour la configuration.
Utilisez cette méthode pour mettre à jour 1 configuration de flot de données qui transmet un ensemble de mesures à 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
Où
<ENDPOINT>représente le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant :https://us-south.monitoring.cloud.ibm.com/api- Jeton API
<TOKEN>que vous utilisez pour vous authentifier auprès du service Monitoring. Vous devez inclureBeareravec le jeton. Pour plus d'informations, voir Utilisation des jetons d'API Monitoring. <STREAMING_CONFIG_ID>représente l'UUID de la configuration de flot de données.
Un exemple de fichier streaming-config.json se présente comme suit :
{
"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"
}
]
}
Supprimer une configuration de flot de données
Utilisez cette méthode pour supprimer 1 configuration de flot de données qui transmet un ensemble de mesures à Event Streams.
curl --request DELETE https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Où
<ENDPOINT>représente le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant :https://us-south.monitoring.cloud.ibm.com/api- Jeton API
<TOKEN>que vous utilisez pour vous authentifier auprès du service Monitoring. Vous devez inclureBeareravec le jeton. Pour plus d'informations, voir Utilisation des jetons d'API Monitoring. <STREAMING_CONFIG_ID>représente l'UUID de la configuration de flot de données.
Surveillance de la diffusion en flux à l'aide d'IBM Cloud Monitoring
Event Streams est intégré au service Monitoring. Monitoring fournit un modèle par défaut que vous pouvez personnaliser pour surveiller l'instance Event Streams, comment les données sont rayonnées de Monitoring et consommées par toute application ou service qui est abonné à Event Streams.
Procédez comme suit pour surveiller l'instance Event Streams :
-
Vérifiez que vous disposez d'une instance Monitoring dans la même région que votre instance Event Streams. Celle-ci doit être configurée pour collecter les métriques de la plateforme. Pour plus d'informations, voir Activation des métriques de plateforme.
-
Dans la section Tableaux de bord, accédez à Modèles de tableau de bord et sélectionnez le modèle IBM Event Streams (Enterprise).
-
Créez une copie du modèle en cliquant sur Créer un tableau de bord personnalisé.
Vous pouvez utiliser la métrique Topic bytes in per second pour voir comment les données sont envoyées par Monitoring à Event Streams.
Vous pouvez utiliser la métrique Topic bytes in per second pour voir comment les données sont consommées par toute application ou tout service abonné à Event Streams.
-
(Facultatif) Modifiez le panneau Topic bytes in per second.
Panneau d'édition Ensuite, personnalisez la métrique pour afficher les données par rubrique.
Personnaliser l'indicateur Vérifiez que la résolution est définie sur 10M.