Streaming delle metriche a un servizio Kafka
Puoi utilizzare IBM Cloud® Monitoring per eseguire il push di una serie di metriche selezionate in un servizio Kafka come Event Streams.
È necessario configurare:
-
Le metriche da esportare in un ambito definito.
I nomi e l'ambito della metrica sono specificati nel formato PromQL.
-
La granularità dei dati.
Ad esempio, 10 secondi (10s) o 1 minuto (1m). L'aggregazione consigliata è 1m.
-
L'argomento Kafka deve essere utilizzato da IBM Cloud Monitoring per esportare i dati.
Prerequisiti
Controllare i seguenti prerequisiti prima di gestire lo streaming:
-
Controllare le limitazioni dei piani di servizio. Per ulteriori informazioni, consultare Limiti e quote.
-
Assicuratevi di avere le autorizzazioni appropriate.
-
Devi disporre del ruolo di gestore per configurare lo streaming.
-
Quando configuri lo streaming, deve essere eseguito il provisioning dell'istanza IBM Cloud Monitoring e dell'istanza Event Streams nello stesso account.
-
Per connettere l'istanza IBM Cloud Monitoring all'istanza Event Streams hai bisogno delle seguenti informazioni:
-
Devi avere il ruolo di gestore per configurare lo streaming nell'istanza IBM Cloud Monitoring. Questo ruolo include il ruolo azione IAM sysdig-monitor.launch.admin che consente a un utente di eseguire attività di gestione come configurare lo streaming.
-
Quando configuri il flusso, il provisioning dell'istanza Monitoring e dell'istanza Event Streams deve essere eseguito nello stesso account.
-
Per collegare l'istanza Monitoring all'istanza Event Streams, hai bisogno delle seguenti informazioni:
-
URL endpoint per richiamare le API
-
Le credenziali per l'autenticazione
-
-
-
Per creare un argomento in Event Streams, devi avere il ruolo gestore. Questo ruolo include il ruolo dell'azione IAM messagehub.topic.manage che consente a un'app o a un utente di creare o eliminare un argomento.
-
La credenziale che Monitoring utilizza per pubblicare i dati in Event Streams deve disporre del ruolo di scrittore. Questo ruolo include il ruolo azione IAM messagehub.topic.write che consente a un'applicazione o a un servizio di scrivere dati in 1 o più argomenti.
-
-
Se configuri l'account per limitare l'accesso agli indirizzi IP configurati tramite le impostazioni IAM o se l'account limita le ubicazioni di rete da cui sono accettate le connessioni tramite le regole di limitazione basate sul contesto (CBR) per il servizio Event Streams, devi consentire l'elenco degli IP Monitoring nell'account. Per ulteriori informazioni, consultare Endpoint Monitoring e Event Streams- Limitazione dell'accesso alla rete.
Le istruzioni su questo argomento si basano sull'uso di un piano Enterprise.
Gestire lo streaming tramite l'interfaccia utente
Configura streaming
Completa la seguente procedura per configurare lo streaming tramite l'IU:
Passo 1. Crea un argomento in Event Streams
Completare la seguente procedura per creare un argomento Event Streams:
-
Accedi al tuo account IBM Cloud.
Dopo che hai eseguito l'accesso con il tuo ID utente e la tua password, viene aperto il dashboard IBM Cloud.
-
Fare clic sull'icona Menu
> Elenco risorse.
-
Cerca l'istanza Event Streams che intendi utilizzare e selezionarla.
-
Nella console dell'istanza Event Streams, fai clic su Manage > Launch Dashboard.
-
Fare clic su Crea un argomento.
Creare un argomento -
Immettere un nome argomento e fare clic su Avanti.
Immettere il nome argomento -
Immettere il numero di partizioni e fare clic su Avanti.
Una o più partizioni costituiscono un argomento. Una partizione è un elenco ordinato di messaggi. Le partizioni sono distribuite tra i broker al fine di aumentare la scalabilità del tuo argomento. Possono essere usate anche per distribuire i messaggi tra i membri di un gruppo di consumer.
Immettere il numero di partizioni -
Selezionare una conservazione del messaggio e fare clic su Crea argomento.
La conservazione dei messaggi definisce per quanto tempo i messaggi vengono conservati prima di essere eliminati. Se i messaggi non vengono letti da un consumer entro questo tempo, saranno persi.
Passo 2. Creare le credenziali per autenticare l'istanza di monitoraggio con Event Streams
Hai bisogno delle seguenti informazioni per connettere l'istanza Monitoring all'istanza Event Streams:
- URL endpoint per richiamare le API
- Le credenziali per l'autenticazione
Completa la seguente procedura per creare le credenziali del servizio che l'istanza Monitoring deve comunicare con l'istanza Event Streams:
-
In IBM Cloud, fai clic sull'icona Menu
> Elenco risorse.
-
Cerca l'istanza Event Streams che intendi utilizzare e selezionarla.
-
Nella console Event Streams, fai clic su Credenziali del servizio.
-
Selezionare Nuova credenziale.
-
Immettere un nome e selezionare il ruolo writer.
Crea una credenziale -
Fai clic su Aggiungi.
Per limitare l'accesso a 1 argomento, completare la seguente procedura:
-
Dalla barra dei menu, fai clic su Gestisci > Accesso (IAM) e seleziona ID servizio.
Seleziona ID servizio -
Seleziona l'ID servizio.
-
Selezionare Politiche di accesso.
-
Selezionare la politica e modificarla per specificare l'argomento.
Modifica politica
Modifica politica -
Ottenere le credenziali utilizzando l'interfaccia della riga di comando(IBM Cloud) e prendere nota della chiave api e dei valori dell' URL e broker.
Passo 3. Configura la connessione in Monitoring a Event Streams
Per configurare lo streaming dei dati metrici IBM Cloud Monitoring, procedere come segue:
-
Avviare l'IU Web come utente con autorità di amministratore. Per ulteriori informazioni su come avviare ilWeb UI, Vedere Navigando versoWeb UI.
-
Fare clic sull'icona dell'utente. Questa è l'icona con le iniziali dell'utente collegato. Quindi, fare clic su Impostazioni.
-
Selezionare Metric Data Streaming.
-
Fai clic su Add Integration. Viene visualizzato il pannello Nuova integrazione del flusso di metriche.
Pannello di integrazione Metriche Streaming -
Specificare le informazioni seguenti:
- Nome integrazione
- Il nome della configurazione di streaming.
- Argomento
- Il nome dell'argomento Kafka per ricevere le metriche.
- Broker
- Un elenco di broker Kafka separati da virgole, ad esempio
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. Notare che non è necessario racchiudere"gli URL. - TLS
- Il metodo TLS (Transport Layer Security). Abilita TLS per codificare e proteggere il trasferimento dei dati.
- Credenziali
- Le credenziali utilizzate da Monitoring per esportare i dati dall'istanza Monitoring al server Kafka. È possibile scegliere l'utente e la password o un certificato codificato base64.
Opzioni credenziali - Compressione
- Scegliere il tipo di compressione. Le opzioni valide:
LZ4,Snappy,GzipeZstandard. Per ulteriori informazioni, vedi Compressione dei messaggi in Apache Kafka.
-
Fai clic su Verifica connessione per verificare la connessione tra IBM Cloud Monitoring e Kafka è stata configurata correttamente.
È necessario verificare la connessione prima di salvare e abilitare la configurazione.
-
Selezionare l'Ambito e definire le Metriche da esportare.
Per Ambito, selezionare una o più etichette per filtrare le metriche definite.
Metrica è necessario specificare il nome completo della metrica utilizzandoPromQL.
-
Fare clic su Salva.
Dopo aver salvato la confusione, devi attendere almeno 30 minuti prima che lo streaming sia attivo.
Abilita o arresta lo streaming tramite l'interfaccia utente
È possibile avviare e arrestare il flusso di metriche dalla pagina Metric Data Streaming:
-
Avviare l'IU Web come utente con autorità di amministratore. Per ulteriori informazioni su come avviare ilWeb UI, Vedere Navigando versoWeb UI.
-
Fare clic sull'icona dell'utente. Questa è l'icona con le iniziali dell'utente collegato. Quindi, fare clic su Impostazioni.
-
Selezionare Metric Data Streaming. Viene visualizzato l'elenco di configurazioni di flusso.
Configurazioni di flusso -
Abilitare o disabilitare una configurazione di streaming tramite l'attivazione / disattivazione.
Gestisci lo streaming utilizzando l'API
Completa la seguente procedura per gestire il flusso tramite la IU:
Elencare le configurazioni di streaming
Utilizzare questo metodo per ottenere i dettagli per tutte le configurazioni di streaming esistenti.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Dove
<ENDPOINT>indica l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api- Token API
<TOKEN>che utilizzi per autenticarti con il servizio Monitoring. È necessario includereBearercon il token. Per ulteriori informazioni, vedi Utilizzo dei token API Monitoring.
La risposta sarà simile alla seguente:
{"dataStreamConfigs":[{"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","enabled":true,"name":"Streaming metrics - demo","type":"kafka"}]}
Ottieni dettagli per una configurazione di streaming
Utilizzare questo metodo per ottenere i dettagli per 1 configurazione di streaming.
curl --request GET https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Dove
<ENDPOINT>rappresenta l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api- Token API
<TOKEN>che utilizzi per autenticarti con il servizio Monitoring. È necessario includereBearercon il token. Per ulteriori informazioni, vedi Utilizzo dei token API Monitoring. <STREAMING_CONFIG_ID>rappresenta l'UUID della configurazione del flusso per cui si desidera ottenere i dettagli.
La risposta sarà simile alla seguente:
{
"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"
}
]
}
Crea una configurazione di streaming
Utilizza questo metodo per configurare 1 configurazione di flusso che inoltra una serie di metriche a Event Streams.
curl --request POST https://<ENDPOINT>/api/v1/dataStream/configs
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
-d @streaming-config.json
Dove
<ENDPOINT>rappresenta l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api- Token API
<TOKEN>che utilizzi per autenticarti con il servizio Monitoring. È necessario includereBearercon il token. Per ulteriori informazioni, vedi Utilizzo dei token API Monitoring.
Un file streaming-config.json di esempio è simile al seguente:
{
"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\""
}
]
}
Aggiorna una configurazione di streaming
Aggiornare una configurazione di streaming in una delle seguenti siuazioni:
- La chiave API per l'autenticazione con Event Streams è ruotata, compromette o deve essere modificata.
- Quando si desidera modificare le metriche di cui si esegue lo stream, aggiungendo nuove metriche o rimuovendo le metriche.
- Quando è necessario modificare l'ambito.
- Per abilitare o disabilitare il flusso di dati per la configurazione.
Utilizza questo metodo per aggiornare 1 configurazione di streaming che inoltra una serie di metriche 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
Dove
<ENDPOINT>rappresenta l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api- Token API
<TOKEN>che utilizzi per autenticarti con il servizio Monitoring. È necessario includereBearercon il token. Per ulteriori informazioni, vedi Utilizzo dei token API Monitoring. <STREAMING_CONFIG_ID>rappresenta l'UUID della configurazione del flusso.
Un file streaming-config.json di esempio è simile al seguente:
{
"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"
}
]
}
Elimina una configurazione di streaming
Utilizza questo metodo per eliminare 1 configurazione di streaming che inoltra una serie di metriche a Event Streams.
curl --request DELETE https://<ENDPOINT>/api/v1/dataStream/configs/<STREAMING_CONFIG_ID>
-H "content-type: application/json"
-H "Authorization: <TOKEN>"
Dove
<ENDPOINT>rappresenta l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api- Token API
<TOKEN>che utilizzi per autenticarti con il servizio Monitoring. È necessario includereBearercon il token. Per ulteriori informazioni, vedi Utilizzo dei token API Monitoring. <STREAMING_CONFIG_ID>rappresenta l'UUID della configurazione del flusso.
Monitoraggio dello streaming utilizzando IBM Cloud Monitoring
Event Streams è integrato con il servizio Monitoring. Monitoring fornisce un modello predefinito che puoi personalizzare per monitorare l'istanza Event Streams, il modo in cui i dati vengono trasmessi fuori da Monitoring e utilizzati da qualsiasi applicazione o servizio sottoscritto a Event Streams.
Completa la seguente procedura per monitorare l'istanza Event Streams.
-
Controlla di disporre di un'istanza di Monitoring nella stessa regione della tua istanza Event Streams. Questa istanza deve essere configurata per raccogliere le metriche della piattaforma. Per ulteriori informazioni, vedi Abilitazione delle metriche della piattaforma.
-
Nella sezione Dashboard, andare a Dashboard templates e selezionare il template IBM Event Streams (Enterprise).
-
Crea una copia del template facendo clic su Crea dashboard personalizzato.
Puoi utilizzare la metrica Topic bytes in per second per vedere come vengono inviati i dati da Monitoring a Event Streams.
Puoi utilizzare la metrica Byte dell'argomento al secondo per vedere come i dati vengono utilizzati da qualsiasi applicazione o servizio sottoscritto a Event Streams.
-
(Facoltativo) Modificare il pannello Byte argomento al secondo.
Pannello Modifica Personalizzare quindi la metrica per visualizzare i dati per argomento.
Personalizza metrica Verificare che la soluzione sia impostata su 10M.