View a markdown version of this page

Intégrez Amazon MSK - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Intégrez Amazon MSK

Avec un collecteur Prometheus CloudWatch géré par Amazon, vous pouvez automatiquement découvrir et collecter des Prometheus métriques à partir de vos clusters Amazon MSK. Lorsque vous activez Open Monitoring sur votre cluster Amazon MSK, les Prometheus métriques sont exposées via l'exportateur Java Management Extensions (JMX) et l'exportateur de nœuds. Le collecteur géré se connecte à votre VPC et extrait ces métriques auprès de tous les courtiers à l'aide de la découverte des DNS-based services et les transmet directement à. CloudWatch Grâce à cette intégration, vous pouvez surveiller les métriques au niveau de l'hôte, JVM-level les métriques et les métriques du courtier Kafka CloudWatch sans déployer d'agent.

Note

Lorsqu'un collecteur Prometheus CloudWatch géré par Amazon transmet vos métriques Amazon MSK à CloudWatch, il enrichit automatiquement chaque métrique avec des attributs qui identifient son origine. Chaque métrique comporte l'étendue de l'instrumentation du collecteur, des attributs de cloud qui enregistrent le AWS compte et la région, et une unité que le collecteur déduit à partir du nom de la métrique. Vous pouvez filtrer et regrouper ces attributs lorsque vous interrogez vos métriques avec ProMQL.

Conditions préalables

Cette procédure suppose une familiarité avec l'administration du cluster Amazon MSK et les concepts de mise en réseau Amazon VPC.

  • Cluster Amazon MSK en mode provisionné, avec des courtiers standard ou express. Les collecteurs gérés ne prennent pas en charge Amazon MSK Serverless.

  • La surveillance ouverte est activée sur le cluster. Pour plus d'informations, consultez Open Monitoring with Prometheus dans le guide du développeur Amazon MSK.

  • Au moins deux sous-réseaux dans des zones de disponibilité différentes

  • Groupe de sécurité permettant au collecteur d'accéder aux ports de courtage 11001 et 11002

Étape 1 : activer la surveillance ouverte

Activez la surveillance ouverte sur votre cluster Amazon MSK pour exposer Prometheus les métriques. Pour obtenir des instructions sur l'activation de la surveillance ouverte, consultez la section Surveillance ouverte avec Prometheus dans le guide du développeur Amazon MSK.

aws kafka update-monitoring \ --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456" \ --current-version "K1A2B3C4D5" \ --open-monitoring '{ "Prometheus": { "JmxExporter": {"EnabledInBroker": true}, "NodeExporter": {"EnabledInBroker": true} } }'
Note

Le --open-monitoring paramètre à lui seul expose les Prometheus points de terminaison sur les ports 11001 et 11002. Les niveaux de surveillance améliorés, tels que PER_TOPIC_PER_PARTITION ceux qui sont distincts de l'Open Monitoring, peuvent entraîner des frais supplémentaires. Ne les définissez donc que si vous avez besoin de ce niveau de métriques Amazon MSK.

Étape 2 : obtenir le nom DNS de votre cluster

Amazon MSK fournit un nom DNS au niveau du cluster qui renvoie à toutes les adresses IP des courtiers. Son utilisation pour la découverte des services rend votre surveillance résiliente aux remplacements de courtiers et à la mise à l'échelle des clusters.

Obtenez le nom DNS de votre cluster (supprimez le préfixe spécifique au courtier, comme ou) : b-1. b-2.

aws kafka get-bootstrap-brokers --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456"

Par exemple, si le broker Bootstrap revientb-1.my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com, utilisez-le my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com comme nom DNS de cluster.

Étape 3 : Configuration de la configuration de scrape

Voici un exemple de configuration de scrape pour Amazon MSK. Vous ferez référence à cette configuration lorsque vous créerez le scraper à l'étape suivante. Pour plus d'informations sur les options de configuration, consultezConfiguration du scraper.

global: scrape_interval: 60s external_labels: cluster_name: my-msk-cluster scrape_configs: - job_name: 'msk-jmx' dns_sd_configs: - names: - my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com type: A port: 11001 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk' - job_name: 'msk-node' dns_sd_configs: - names: - my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com type: A port: 11002 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk'

Étape 4 : Création du grattoir

Créez le scraper avec une CloudWatch destination, en utilisant la configuration de scrape pour vos courtiers Amazon MSK de l'étape précédente.

AWS API

Utilisez l'opération CreateScraper API pour créer un scraper avec une CloudWatch destination. Remplacez les informations relatives au sous-réseau, au groupe de sécurité et à l'ensemble de données par vos propres valeurs.

POST /scrapers HTTP/1.1 { "alias": "msk-metrics-scraper", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }, "scrapeConfiguration": { "configurationBlob": "base64-encoded-blob" } }
AWS CLI

Utilisez la create-scraper commande pour créer un scraper avec une CloudWatch destination. Remplacez les informations relatives au sous-réseau, au groupe de sécurité et à l'ensemble de données par vos propres valeurs.

aws amp create-scraper \ --alias "msk-metrics-scraper" \ --source '{ "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }' \ --scrape-configuration configurationBlob=$(cat msk-config.yaml | base64 -w 0) \ --destination '{ "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }'

Métriques disponibles

  • Exportateur JMX (port 11001)  : composants internes du courtier Kafka, y compris les métriques thématiques, les métriques de partition, les taux de requêtes, les délais de consommation et les partitions sous-répliquées.

  • Exportateur de nœuds (port 11002)  : Host-level mesures telles que le débit du processeur, de la mémoire I/O, du disque et du réseau.

Pour obtenir la liste complète des métriques disponibles, consultez les métriques MSK collectées par les collecteurs gérés dans le guide de l'utilisateur d'Amazon Managed Service for Prometheus.

Valider la collecte de métriques

Pour vérifier que le collecteur fournit à la fois les métriques JMX et Node Exporter, exécutez les requêtes suivantes dans CloudWatch Query Studio. Si chaque requête renvoie des points de données, le collecteur extrait correctement l'exportateur correspondant.

La requête suivante renvoie une métrique Kafka de niveau courtier provenant de l'exportateur JMX (port 11001). Il indique le taux moyen d'activité des courtiers sur des sujets, tels que les messages et les octets qui transitent par les courtiers. Les points de données confirment que le collecteur extrait les métriques du courtier Kafka.

kafka_server_BrokerTopicMetrics_MeanRate

La requête suivante renvoie l'utilisation du processeur au niveau de l'hôte à partir de l'exportateur de nœuds (port 11002). Il soustrait de 100 le taux de processeur inactif moyen sur une fenêtre de cinq minutes pour obtenir le pourcentage de processeur utilisé par les courtiers. Les points de données confirment que le collecteur extrait les métriques au niveau de l'hôte.

100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Afficher le tableau de bord automatique

Une fois que le collecteur commence à transmettre vos métriques Amazon MSK à CloudWatch, la CloudWatch console fournit un tableau de bord automatique nommé MSK OTel. Pour l'ouvrir, consultez MSK OTel, ou connectez-vous à la console de AWS gestion, ouvrez la CloudWatch console, choisissez Tableaux de bord dans le volet de navigation, choisissez Tableaux de bord automatiques, puis choisissez MSK OTel. Vous pouvez commencer à surveiller vos clusters sans créer vous-même de widgets ou de tableaux de bord.

Si le tableau de bord automatique répond à vos besoins, vous pouvez l'utiliser tel quel. Pour créer une expérience de surveillance personnalisée, vous pouvez ajouter n'importe lequel de ses widgets à un tableau de bord personnalisé. Pour plus d'informations sur les tableaux de bord personnalisés, consultez la section Utilisation des CloudWatch tableaux de bord.

Cross-account observabilité

Pour la surveillance multicompte d'Amazon MSK, nous vous recommandons d'utiliser la centralisation des CloudWatch métriques Amazon. Pour plus d'informations, consultez la section Centralisation CloudWatch des métriques.

Pour d'autres configurations de scraper inter-comptes utilisant le chaînage de rôles, consultez l'intégration d'Cross-accountAmazon MSK dans le guide de l'utilisateur d'Amazon Managed Service for Prometheus.

Limitations actuelles

  • Les collecteurs gérés ne prennent pas en charge les clusters Amazon MSK Serverless.

  • Les collecteurs gérés ne prennent pas en charge l'accès public combiné au mode de métadonnées Kraft.

  • Chaque combinaison de clusters et de jeux de CloudWatch données Amazon MSK nécessite un collecteur.