Metriken per Streaming an einen Kafka-Service übertragen
Sie können IBM Cloud® Monitoring verwenden, um eine Gruppe ausgewählter Metriken mit Push-Operation an einen Kafka-Service wie z. B. Event Streams zu übertragen.
Dazu müssen Sie Folgendes konfigurieren:
-
Die Metriken innerhalb eines definierten Bereichs, die exportiert werden sollen.
Die Angabe von Metriknamen und Geltungsbereich erfolgt in PromQL-Format.
-
Die Granularität der Daten.
Beispiel: 10 Sekunden (10s) oder 1 Minute (1m). Die empfohlene Aggregation ist 1m.
-
Das Kafka-Topic, das von IBM Cloud Monitoring zum Exportieren der Daten verwendet werden soll.
Voraussetzungen
Prüfen Sie die folgenden Voraussetzungen, bevor Sie das Streaming verwalten:
-
Überprüfen Sie die Einschränkungen der Servicepläne. Weitere Informationen finden Sie unter Grenzwerte und Kontingente.
-
Stellen Sie sicher, dass Sie über die entsprechenden Berechtigungen verfügen.
-
Sie müssen über die Rolle manager verfügen, um das Streaming zu konfigurieren.
-
Wenn Sie das Streaming konfigurieren, müssen die IBM Cloud Monitoring -Instanz und die Event Streams -Instanz in demselben Konto eingerichtet werden.
-
Um die IBM Cloud Monitoring -Instanz mit der Event Streams -Instanz zu verbinden, benötigen Sie die folgenden Informationen:
-
Sie müssen über die Rolle Manager verfügen, um Streaming in der IBM Cloud Monitoring-Instanz konfigurieren zu können. Diese Rolle beinhaltet die sysdig-monitor.launch.admin IAM-Aktionsrolle, mit der ein Benutzer Verwaltungsaufgaben wie die Konfiguration von Streaming durchführen kann.
-
Wenn Sie das Streaming konfigurieren, müssen die Monitoring -Instanz und die Event Streams -Instanz in demselben Konto eingerichtet werden.
-
Um die Monitoring -Instanz mit der Event Streams -Instanz zu verbinden, benötigen Sie die folgenden Informationen:
-
Endpunkt-URLs zum Aufrufen der APIs
-
Berechtigungsnachweise für die Authentifizierung
-
-
-
Um ein Topic in Event Streams erstellen zu können, müssen Sie über die Rolle Manager verfügen. Diese Rolle umfasst die IAM-Aktionsrolle messagehub.topic.manage, die es einer App oder einem Benutzer ermöglicht, ein Thema zu erstellen oder zu löschen.
-
Der Berechtigungsnachweis, den Monitoring für die Veröffentlichung von Daten in Event Streams verwendet, muss über die Rolle Schreibberechtigter verfügen. Diese Rolle umfasst die IAM-Aktionsrolle messagehub.topic.write, die es einer App oder einem Service ermöglicht, Daten in mindestens ein Thema zu schreiben.
-
-
Wenn Sie das Konto so konfigurieren, dass der Zugriff auf konfigurierte IP-Adressen über IAM-Einstellungen eingeschränkt wird, oder wenn das Konto die Netzadressen begrenzt, von denen Verbindungen über kontextbasierte Einschränkungsregeln (CBR) für den Service Event Streams akzeptiert werden, müssen Sie die Monitoring-IPs im Konto auf die Zulassungsliste setzen. Weitere Informationen finden Sie unter Monitoring-Endpunkte und Event Streams-Netzzugriff einschränken.
Die Anweisungen zu diesem Thema basieren auf der Verwendung eines Unternehmensplans.
Streaming über die Benutzerschnittstelle verwalten
Streaming konfigurieren
Gehen Sie wie folgt vor, um das Streaming über die Benutzerschnittstelle zu konfigurieren:
Schritt 1. Thema in Event Streamserstellen
Führen Sie die folgenden Schritte aus, um ein Thema für Ereignisströme zu erstellen:
-
Melden Sie sich bei Ihrem IBM Cloud-Konto an.
Nach der Anmeldung mit Ihrer Benutzer-ID und Ihrem Kennwort wird das IBM Cloud-Dashboard geöffnet.
-
Klicken Sie auf das Symbol Menü
> Ressourcenliste.
-
Suchen Sie nach der Event Streams-Instanz, die Sie verwenden möchten, und wählen Sie sie aus.
-
Klicken Sie in der Konsole der Event Streams-Instanz auf Verwalten > Dashboard starten.
-
Klicken Sie auf Thema erstellen.
Thema erstellen -
Geben Sie einen Themennamen ein und klicken Sie auf Weiter.
Themennamen eingeben -
Geben Sie die Anzahl der Partitionen ein und klicken Sie auf Weiter.
Ein Topic besteht aus mindestens einer Partition. Eine Partition ist eine sortierte Liste aus Nachrichten. Partitionen werden über Broker verteilt, um die Skalierbarkeit des Topics zu vergrößern. Sie können sie auch für das Verteilen von Nachrichten an die Mitglieder einer Consumergruppe verwenden.
Geben Sie die Anzahl der Partitionen ein -
Wählen Sie eine Nachrichtenaufbewahrung aus und klicken Sie auf Thema erstellen.
Nachrichtenaufbewahrung definiert, wie lange Nachrichten aufbewahrt werden, bevor sie gelöscht werden. Wenn die Nachrichten in diesem Zeitraum nicht von einem Consumer gelesen werden, werden sie übersehen.
Schritt 2. Berechtigungsnachweise für die Authentifizierung der Überwachungsinstanz mit Event Streams erstellen
Sie benötigen die folgenden Informationen, um die Monitoring-Instanz mit der Event Streams-Instanz zu verbinden:
- Endpunkt-URLs zum Aufrufen der APIs
- Berechtigungsnachweise für die Authentifizierung
Führen Sie die folgenden Schritte aus, um Serviceberechtigungsnachweise zu erstellen, die die Monitoring-Instanz für die Kommunikation mit der Event Streams-Instanz benötigt:
-
Klicken Sie in IBM Cloud auf das Symbol Menü
> Ressourcenliste.
-
Suchen Sie nach der Event Streams-Instanz, die Sie verwenden möchten, und wählen Sie sie aus.
-
Klicken Sie in der Event Streams Konsole auf Serviceberechtigungsnachweise.
-
Wählen Sie Neuer Berechtigungsnachweisaus.
-
Geben Sie einen Namen ein und wählen Sie die Rolle writer aus.
Berechtigungsnachweis erstellen -
Klicken Sie auf Hinzufügen.
Führen Sie die folgenden Schritte aus, um den Zugriff auf ein Thema zu beschränken:
-
Klicken Sie in der Menüleiste auf Verwalten > Zugriff (IAM) und wählen Sie Service-IDs aus.
Service-IDs auswählen -
Wählen Sie die Service-ID aus.
-
Wählen Sie Zugriffsrichtlinien aus.
-
Wählen Sie die Richtlinie aus, und ändern Sie sie, um das Thema anzugeben.
Richtlinie bearbeiten
Richtlinie ändern -
Abrufen von Berechtigungsnachweisen mithilfe der IBM Cloud-CLI und notieren Sie die URL-Werte des api-Schlüssels und des Brokers.
Schritt 3. Konfigurieren Sie die Verbindung in Monitoring zu Event Streams.
Gehen Sie wie folgt vor, um Streaming für IBM Cloud Monitoring-Metrikdatenstreaming zu konfigurieren:
-
Starten Sie die Webbenutzerschnittstelle als Benutzer mit Administratorberechtigung. Weitere Informationen zum Starten der Webbenutzerschnittstelle finden Sie im Abschnitt Zur Webbenutzerschnittstelle navigieren.
-
Klicken Sie auf das Bearbeitungssymbol. Dies ist das Symbol mit den Initialen des angemeldeten Benutzers. Klicken Sie anschließend auf Einstellungen.
-
Wählen Sie Metrikdatenstreaming aus.
-
Klicken Sie auf Integration hinzufügen. Die Anzeige Neue Integration für Metrikstreaming wird geöffnet.
Anzeige 'Metrics Streaming-Integration' -
Geben Sie die folgenden Informationen an:
- Integrationsname
- Der Name der Streaming-Konfiguration.
- Thema
- Der Name des Kafka-Topics zum Empfangen der Metriken.
- Broker
- Eine durch Kommas getrennte Liste von Kafka-Brokern, z. B.
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. Beachten Sie, dass die URLs nicht in"eingeschlossen werden dürfen. - TLS
- Die TLS-Methode (TLS-Transport Layer Security). Aktivieren Sie TLS, um die Übertragung von Daten zu verschlüsseln und zu schützen.
- Berechtigungsnachweise
- Die Berechtigungsnachweise, die von Monitoring zum Exportieren der Daten aus der Monitoring-Instanz zum Kafka-Server verwendet werden. Sie können 'Benutzer und Kennwort' oder (ein base64-codiertes) 'Zertifikat' auswählen.
Optionen für Berechtigungsnachweis - Komprimierung
- Wählen Sie den Typ von Komprimierung aus. Gültige Optionen:
LZ4,Snappy,GzipundZstandard. Weitere Informationen finden Sie unter Nachrichtenkomprimierung in Apache Kafka.
-
Klicken Sie auf Verbindung testen, um zu überprüfen, ob die Verbindung zwischen IBM Cloud Monitoring und Kafka erfolgreich konfiguriert wurde.
Sie müssen die Verbindung testen, bevor Sie die Konfiguration speichern und aktivieren.
-
Wählen Sie den Geltungsbereich aus und definieren Sie die zu exportierenden Metriken.
Wählen Sie bei Geltungsbereich mindestens eine Bezeichnung zum Filtern der definierten Metriken aus.
Metriken müssen den vollständigen Metriknamen unter PromQL angeben.
-
Klicken Sie auf Speichern.
Nachdem Sie die Konfuguration gespeichert haben, müssen Sie mindestens 30 Minuten warten, bevor die Streamingfunktion aktiv wird.
Streaming über die Benutzerschnittstelle aktivieren oder stoppen
Sie können die Übertragung von Metriken per Streaming über die Seite Streaming von Metrikdaten starten und stoppen:
-
Starten Sie die Webbenutzerschnittstelle als Benutzer mit Administratorberechtigung. Weitere Informationen zum Starten der Webbenutzerschnittstelle finden Sie im Abschnitt Zur Webbenutzerschnittstelle navigieren.
-
Klicken Sie auf das Bearbeitungssymbol. Dies ist das Symbol mit den Initialen des angemeldeten Benutzers. Klicken Sie anschließend auf Einstellungen.
-
Wählen Sie Metrikdatenstreaming aus. Die Liste der Streaming-Konfigurationen wird angezeigt.
Streaming-Konfigurationen -
Aktivieren oder inaktivieren Sie eine Streaming-Konfiguration über die Umschaltfläche.
Streaming über die API verwalten
Gehen Sie wie folgt vor, um das Streaming über die Benutzerschnittstelle zu konfigurieren:
Streaming-Konfigurationen auflisten
Verwenden Sie diese Methode, um die Details für alle vorhandenen Streaming-Konfigurationen abzurufen.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Wo
<ENDPOINT>gibt den Endpunkt an, den der REST-API-Aufruf zum Ziel hat. Weitere Informationen finden Sie unter Monitoring-REST-API-Endpunkte. Der öffentliche Endpunkt für eine Instanz, die in der Region 'us-south' verfügbar ist, ist beispielsweise folgender:https://us-south.monitoring.cloud.ibm.com/api<TOKEN>ist das API-Token, das Sie für die Authentifizierung beim Monitoring-Service verwenden. Sie müssenBearerin das Token einbeziehen. Weitere Informationen finden Sie unter Mit Monitoring-API-Tokens arbeiten.
Die Antwort wird ähnlich wie die folgenden sein:
{"dataStreamConfigs":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"name":"Streaming metrics - demo","type":"kafka"}]}
Details zu einer Streaming-Konfiguration abrufen
Verwenden Sie diese Methode, um die Details für eine vorhandene Streaming-Konfiguration abzurufen.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Wo
<ENDPOINT>steht für den Endpunkt, den der REST-API-Aufruf zum Ziel hat. Weitere Informationen finden Sie unter Monitoring-REST-API-Endpunkte. Der öffentliche Endpunkt für eine Instanz, die in der Region 'us-south' verfügbar ist, ist beispielsweise folgender:https://us-south.monitoring.cloud.ibm.com/api<TOKEN>ist das API-Token, das Sie für die Authentifizierung beim Monitoring-Service verwenden. Sie müssenBearerin das Token einbeziehen. Weitere Informationen finden Sie unter Mit Monitoring-API-Tokens arbeiten.<STREAMING_CONFIG_ID>steht für die UUID der Streaming-Konfiguration, für die Sie Details abrufen möchten.
Die Antwort wird ähnlich wie die folgenden sein:
{
"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"
}
]
}
Streaming-Konfiguration erstellen
Verwenden Sie diese Methode, um eine Streaming-Konfiguration zu konfigurieren, die eine Gruppe von Metriken an Event Streams weiterleitet.
curl --request POST https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
Wo
<ENDPOINT>steht für den Endpunkt, den der REST-API-Aufruf zum Ziel hat. Weitere Informationen finden Sie unter Monitoring-REST-API-Endpunkte. Der öffentliche Endpunkt für eine Instanz, die in der Region 'us-south' verfügbar ist, ist beispielsweise folgender:https://us-south.monitoring.cloud.ibm.com/api<TOKEN>ist das API-Token, das Sie für die Authentifizierung beim Monitoring-Service verwenden. Sie müssenBearerin das Token einbeziehen. Weitere Informationen finden Sie unter Mit Monitoring-API-Tokens arbeiten.
Eine streaming-config.json-Beispieldatei sieht wie folgt aus:
{
"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\""
}
]
}
Streaming-Konfiguration aktualisieren
In jedem der folgenden Fälle muss die Streaming-Konfiguration aktualisiert werden:
- Der API-Schlüssel für die Authentifizierung bei Event Streams wurde turnusmäßig gewechselt (Rotation), seine Sicherheit ist beeinträchtigt oder er muss geändert werden.
- Sie möchten Änderungen an den Metriken, die Sie per Streaming übertragen, entweder durch Hinzufügen neuer Metriken oder durch Entfernen vorhandener Metriken vornehmen.
- Sie müssen den Geltungsbereich ändern.
- Sie möchten das Daten-Streaming für die Konfiguration aktivieren oder inaktivieren.
Verwenden Sie diese Methode, um eine Streaming-Konfiguration zu konfigurieren, die eine Gruppe von Metriken an Event Streams weiterleitet.
curl --request PUT https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
Wo
<ENDPOINT>steht für den Endpunkt, den der REST-API-Aufruf zum Ziel hat. Weitere Informationen finden Sie unter Monitoring-REST-API-Endpunkte. Der öffentliche Endpunkt für eine Instanz, die in der Region 'us-south' verfügbar ist, ist beispielsweise folgender:https://us-south.monitoring.cloud.ibm.com/api<TOKEN>ist das API-Token, das Sie für die Authentifizierung beim Monitoring-Service verwenden. Sie müssenBearerin das Token einbeziehen. Weitere Informationen finden Sie unter Mit Monitoring-API-Tokens arbeiten.<STREAMING_CONFIG_ID>steht für die UUID der Streaming-Konfiguration.
Eine streaming-config.json-Beispieldatei sieht wie folgt aus:
{
"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"
}
]
}
Streaming-Konfiguration löschen
Verwenden Sie diese Methode, um eine Streaming-Konfiguration zu konfigurieren, die eine Gruppe von Metriken an Event Streams weiterleitet.
curl --request DELETE https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Wo
<ENDPOINT>steht für den Endpunkt, den der REST-API-Aufruf zum Ziel hat. Weitere Informationen finden Sie unter Monitoring-REST-API-Endpunkte. Der öffentliche Endpunkt für eine Instanz, die in der Region 'us-south' verfügbar ist, ist beispielsweise folgender:https://us-south.monitoring.cloud.ibm.com/api<TOKEN>ist das API-Token, das Sie für die Authentifizierung beim Monitoring-Service verwenden. Sie müssenBearerin das Token einbeziehen. Weitere Informationen finden Sie unter Mit Monitoring-API-Tokens arbeiten.<STREAMING_CONFIG_ID>steht für die UUID der Streaming-Konfiguration.
Streaming mithilfe von IBM Cloud Monitoring überwachen
Event Streams ist in den Monitoring-Service integriert. Monitoring stellt eine Standardvorlage bereit, die Sie anpassen können, um die Event Streams-Instanz zu überwachen, und um festzulegen, wie Daten aus Monitoring gestreamt und von einer beliebigen Anwendung oder einem beliebigen Service, die bzw. der Event Streams abonniert hat, konsumiert werden.
Führen Sie die folgenden Schritte aus, um die Event Streams -Instanz zu überwachen:
-
Stellen Sie sicher, dass Sie über eine Instanz des Monitoring in derselben Region wie Ihre Event Streams -Instanz verfügen. Diese Instanz muss so konfiguriert sein, dass Plattformmetriken erfasst werden. Weitere Informationen hierzu finden Sie unter Plattformmetriken aktivieren.
-
Wechseln Sie im Abschnitt Dashboards zu Dashboard-Vorlagen und wählen Sie die Schablone **IBM Event Streams (Enterprise)**aus.
-
Erstellen Sie eine Kopie der temnplate, indem Sie auf Create custom dashboard(Angepasste Dashboard erstellen) klicken.
Sie können die Metrik Themenbyte in pro Sekunde verwenden, um zu sehen, wie die Daten von Monitoring an Event Streamsgesendet werden.
Sie können die Metrik Topic-Byte pro Sekunde verwenden, um zu sehen, wie Daten von einer Anwendung oder einem Service, die für Event Streamssubskribiert ist, verbraucht werden.
-
(Optional) Bearbeiten Sie die Anzeige Themenbyte in pro Sekunde.
Anzeige bearbeiten Passen Sie anschließend die Metrik an, um Daten pro Thema anzuzeigen.
Metrik anpassen Überprüfen Sie, ob die Auflösung auf 10Mgesetzt ist.