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:

  • Crea un'istanza Event Streams..

  • 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:

  1. 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.

  2. Fare clic sull'icona Menu Icona Menu > Elenco risorse.

  3. Cerca l'istanza Event Streams che intendi utilizzare e selezionarla.

  4. Nella console dell'istanza Event Streams, fai clic su Manage > Launch Dashboard.

  5. Fare clic su Crea un argomento.

    Creare un argomento
    Creare un argomento

  6. Immettere un nome argomento e fare clic su Avanti.

    Creare un argomento parte 2.
    Immettere il nome argomento

  7. 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.

    Creare un argomento parte 3.
    Immettere il numero di partizioni

  8. 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:

  1. In IBM Cloud, fai clic sull'icona Menu icona Menu > Elenco risorse.

  2. Cerca l'istanza Event Streams che intendi utilizzare e selezionarla.

  3. Nella console Event Streams, fai clic su Credenziali del servizio.

  4. Selezionare Nuova credenziale.

  5. Immettere un nome e selezionare il ruolo writer.

    Crea una credenziale
    Crea una credenziale

  6. Fai clic su Aggiungi.

Per limitare l'accesso a 1 argomento, completare la seguente procedura:

  1. Dalla barra dei menu, fai clic su Gestisci > Accesso (IAM) e seleziona ID servizio.

    ID servizio
    Seleziona ID servizio

  2. Seleziona l'ID servizio.

  3. Selezionare Politiche di accesso.

  4. Selezionare la politica e modificarla per specificare l'argomento.

    Modifica politica
    Modifica politica

    Modifica politica
    Modifica politica

  5. 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:

  1. Avviare l'IU Web come utente con autorità di amministratore. Per ulteriori informazioni su come avviare ilWeb UI, Vedere Navigando versoWeb UI.

  2. Fare clic sull'icona dell'utente. Questa è l'icona con le iniziali dell'utente collegato. Quindi, fare clic su Impostazioni.

  3. Selezionare Metric Data Streaming.

  4. Fai clic su Add Integration. Viene visualizzato il pannello Nuova integrazione del flusso di metriche.

    Pannello Metric Streaming Integration
    Pannello di integrazione Metriche Streaming

  5. 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
    Opzioni credenziali

    Compressione
    Scegliere il tipo di compressione. Le opzioni valide: LZ4, Snappy, Gzip e Zstandard. Per ulteriori informazioni, vedi Compressione dei messaggi in Apache Kafka.
  6. 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.

  7. 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.

  8. 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:

  1. Avviare l'IU Web come utente con autorità di amministratore. Per ulteriori informazioni su come avviare ilWeb UI, Vedere Navigando versoWeb UI.

  2. Fare clic sull'icona dell'utente. Questa è l'icona con le iniziali dell'utente collegato. Quindi, fare clic su Impostazioni.

  3. Selezionare Metric Data Streaming. Viene visualizzato l'elenco di configurazioni di flusso.

    Elenco di configurazioni di flusso
    Configurazioni di flusso

  4. 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 includere Bearer con 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 includere Bearer con 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 includere Bearer con 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 includere Bearer con 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 includere Bearer con 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.

  1. 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.

  2. Avvia l'IU Monitoring.

  3. Nella sezione Dashboard, andare a Dashboard templates e selezionare il template IBM Event Streams (Enterprise).

  4. 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.

  5. (Facoltativo) Modificare il pannello Byte argomento al secondo.

    Pannello Modifica
    Pannello Modifica

    Personalizzare quindi la metrica per visualizzare i dati per argomento.

    Personalizza metrica
    Personalizza metrica

    Verificare che la soluzione sia impostata su 10M.