Distribuzione del cluster Agent di registrazione v1.6.x per OpenShift

È possibile utilizzare un diagramma Helm per distribuire l'istanza Agent di registrazione v1.6.x per raccogliere e instradare i log dell'infrastruttura e delle applicazioni da un cluster OpenShift a un'istanza IBM Cloud Logs.

È inoltre possibile utilizzare Terraform IBM Modules (TIM) per Agent di registrazione per distribuire e configurare l'agente dei registri sui cluster OpenShift supportati. Questo modulo automatizza la distribuzione basata su Helm e le impostazioni di configurazione chiave utilizzando l'automazione di Infrastructure as Code ( IaC ).

Completare i seguenti passaggi per distribuire un agente su un cluster di OpenShift:

Prima di iniziare

  • Assicurati di avere accesso a un cluster Red Hat OpenShift on IBM Cloud ( OpenShift ) con i permessi per creare spazi dei nomi e distribuire l'agente.

  • Installa le seguenti CLI:

    • IBM Cloud CLI per accedere a IBM Cloud e gestire servizi IBM Cloud come la creazione di una chiave API.

    • L'Openshift CLI per gestire il cluster dalla riga di comando. Ulteriori informazioni.

    • L'ultima versione della versione 3 Helm CLI

  • Leggi l' Agent di registrazione.

  • Controlla le versioni dell'agente disponibili. Per ulteriori informazioni, vedere Controllo delle versioni disponibili dell'agente. Si noti che la versione del grafico dell' Helm e corrisponderà alla versione dell'agente. Ad esempio, se si utilizza la versione dell'agente 1.3.0, il grafico dell' Helm e con la versione dell' 1.3.0 e accompagna tale versione.

Passo 1. Definire il metodo di autenticazione per l'agente

Scegliere il tipo di identità e il metodo di autenticazione per l'agente. Quindi, creare un profilo di fiducia o una chiave API. Il ruolo necessario per inviare i log a IBM Cloud Logs è Sender.

È possibile utilizzare un ID di servizio o un profilo attendibile come identità utilizzata dall'agente per autenticarsi con il servizio IBM® Cloud Logs. Per ulteriori informazioni, vedere Concessione delle autorizzazioni IAM per l'assimilazione.

Scegli una delle seguenti opzioni:

Opzione 1: autenticazione tramite un profilo attendibile

Creare un profilo di fiducia. Per ulteriori informazioni, vedere Generazione di un profilo attendibile per l'assimilazione.

Opzione 2: autenticazione tramite chiave API ID servizio

Genera una chiave API per l'autenticazione dell'ID servizio. Per ulteriori informazioni, vedere Generazione di una chiave API per l'assimilazione.

Passo 2. Configurazione del file dei valori della tabella dell' Helm e per il Agent di registrazione

Completa i seguenti passi:

  1. Creare un file denominato logs-values.yaml con il seguente contenuto:

    Questo file contiene le configurazioni specifiche dell'installazione.

    metadata:
      name: "logs-agent"
    image:
      version: "1.6.1"  # required
    
    clusterName: "ENTER_CLUSTER_NAME"     # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering.
    
    env:
      # ingestionHost is a required field. For example:
      # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com"
      ingestionHost: "" # required
    
      # If you are using private CSE proxy, then use port number "3443"
      # If you are using private VPE Gateway, then use port number "443"
      # If you are using the public endpoint, then use port number "443"
      ingestionPort: "" # required
    
      iamMode: "TrustedProfile"
      # trustedProfileID - trusted profile id - required for iam trusted profile mode
      trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile
    
    scc:
      # true here enables creation of Security Context Constraints in Openshift
      create: true
    
  2. Aggiornare i campi nel file yaml con valori specifici per il proprio ambiente.

    Helm grafico parametri richiesti
    Nome campo Descrizione
    image.version La versione dell'agente da distribuire vedi Fase 1
    clusterName Il nome del cluster: questo introdurrà il tag kubernetes.cluster_name in tutte le righe di log
    env.ingestionHost L'endpoint di ingresso pubblico o privato per l'istanza dell' IBM Cloud Logs, per ricevere i registri
    env.ingestionPort Porta di ingresso dell'endpoint pubblico
    . Ingresso endpoint pubblico = 443
    . Ingresso endpoint privato (VPE) = 443
    . Ingresso endpoint privato (CSE) = 3443
    env.iamMode TrustedProfile oppure IAMAPIKey in base al metodo di autenticazione scelto al punto 1
    env.trustedProfileID Se iamMode è TrustedProfile, fornire l'ID profilo attendibile, altrimenti non è necessario (ad esempio: Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ).
    env.iamEnvironment Determina il punto finale di autenticazione IAM corretto. I valori validi sono Production, PrivateProduction o Custom. Se omesso, il valore predefinito è " Production".
    env.iamHost Se iamEnvironment è Custom, fornire l'host IAM (ad esempio: private.eu-de.iam.cloud.ibm.com), altrimenti non è necessario.
    scc.create Impostare su true per creare i vincoli di sicurezza in Openshift

Passo 3. Installare il grafico Helm

Se si utilizza iamMode come IAMAPIKey, l'apikey deve essere presente in un segreto Kubernetes chiamato logs-agent con il nome della chiave IAM_API_KEY. Il segreto può essere creato utilizzando il diagramma Helm, includendo l'opzione --set secret.iamAPIKey=<your iamAPIKey> quando si esegue l'installazione del timone. Se il segreto è stato creato manualmente o se si utilizza un iamMode=TrustedProfile, non includere questa opzione.

Completa i seguenti passi:

  1. Accedi al cluster.

    Red Hat OpenShift on IBM Cloud è integrato con l' IBM Cloud Identity and Access Management, o IAM (Gestione delle informazioni sui veicoli). Con IAM, puoi autenticare gli utenti e i servizi utilizzando le loro identità IAM e autorizzare azioni con ruoli e politiche di accesso. Quando ci si autentica come utente attraverso la console Red Hat OpenShift, l'identità IAM viene utilizzata per generare un token di accesso Red Hat OpenShift che può essere utilizzato per accedere alla riga di comando. Puoi automatizzare l'accesso al tuo cluster creando una chiave API o un ID servizio IAM da utilizzare per il comando oc login. Per ulteriori informazioni, vedere Accesso ai cluster dell' Red Hat OpenShift.

    Ad esempio, completare i passaggi descritti in Utilizzo di un ID servizio per accedere ai cluster per accedere al cluster.

  2. Esegui un test di funzionamento ( Helm ) per vedere le risorse che verranno create dal grafico dell' Helm.

    Se si utilizza l' iamMode = TrustedProfile, il comando completo è:

    helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace
    

    Se si utilizza l' iamMode = IAMAPIKey, il comando completo è:

    helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value> --hide-secret
    

    dove:

    • <install-name> è il nome dell'installazione dell' Helm. (logs-agent)
    • <chart-version> è la versione della carta del timone. La versione del grafico dell' Helm e deve corrispondere alla versione dell'immagine dell'agente. Per ulteriori informazioni, consultare Helm versioni grafiche.
    • <PATH> è il percorso della directory in cui si trova il file logs-values.yaml.
    • <APIKey-value> è l'apikey IAM associata alla configurazione ServiceID nel passaggio 1
    • Aggiungere --hide-secret per nascondere la chiave API dai dati di output dopo l'esecuzione del comando.

    Se desideri ispezionare il contenuto della carta del timone in locale, puoi scaricarla sul tuo computer utilizzando il comando: helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. Il file tgz scaricato contiene i contenuti della carta.

    Ad esempio, è possibile eseguire il seguente comando dalla directory in cui è disponibile il file logs-values.yaml:

    helm install logs-agent --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version 1.6.0 --values ./logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<secret> --hide-secret
    
  3. Una volta verificate le risorse da creare, eseguire l'installazione di Helm senza l'opzione --dry-run

    Se si utilizza l' iamMode = TrustedProfile, il comando completo è:

    helm install <install-name>  oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace
    

    Se si utilizza l' iamMode = IAMAPIKey, il comando completo è:

    helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>
    

    dove:

    • <install-name> è il nome dell'installazione dell' Helm. (logs-agent)
    • <chart-version> è la versione della carta del timone. La versione del grafico dell' Helm e deve corrispondere alla versione dell'immagine dell'agente. Per ulteriori informazioni, consultare Helm versioni grafiche.
    • <PATH> è il percorso della directory in cui si trova il file logs-values.yaml.
    • <APIKey-value> è l'apikey IAM associata alla configurazione ServiceID nel passaggio 1

Passo 4. Verificare che l'agente sia stato distribuito correttamente

Quando l'agente viene distribuito, controlla che vengano create le seguenti risorse:

  • Lo spazio dei nomi ibm-observe.

    Per elencare gli spazi dei nomi nel cluster, eseguire il seguente comando:

    oc get namespace
    

    Puoi anche eseguire il seguente comando per cercare il namespace ibm-observe:

    oc get namespace | grep ibm-observe
    
  • Una mappa di configurazione logs-agent nello spazio dei nomi ibm-observe.

    Esegui il seguente comando per visualizzare i dettagli di configurazione dell'agente.

    oc get configmap logs-agent -n ibm-observe
    

    È possibile utilizzare anche il seguente comando:

    oc describe configmaps logs-agent -n ibm-observe
    
  • Un set di demoni logs-agent nello spazio dei nomi ibm-observe.

    Eseguite il seguente comando per visualizzare il daemonset:

    oc get ds -n ibm-observe
    
  • Recuperare l'elenco dei pod agente utilizzando il seguente comando:

    oc get pods -n ibm-observe -o wide
    
    NAME                  READY   STATUS    RESTARTS   AGE    IP              NODE           NOMINATED NODE   READINESS GATES
    logs-agent-4lwvt      1/1     Running   0          2d5h   172.17.61.181   192.168.16.4   <none>           <none>
    logs-agent-g7z87      1/1     Running   0          2d5h   172.17.0.48     192.168.32.4   <none>           <none>
    logs-agent-nw56s      1/1     Running   0          2d5h   172.17.32.232   192.168.0.10   <none>           <none>
    

    La colonna " READY " mostra " 1/1 " per tutti i pod, con un " STATUS " di " Running ". Verifica che un pod agente sia pronto per ogni nodo nel tuo cluster.

    Per verificare quanti lavoratori sono disponibili nel tuo cluster, puoi eseguire il seguente comando:

    oc get nodes
    
    NAME           STATUS   ROLES           AGE   VERSION
    192.168.0.10   Ready    master,worker   8d    v1.20.0+558d959
    192.168.32.4   Ready    master,worker   8d    v1.20.0+558d959
    192.168.16.4   Ready    master,worker   8d    v1.20.0+558d959
    

    Il numero di elementi in ciascuno di questi due elenchi deve essere lo stesso ed è possibile abbinare gli indirizzi IP nei nomi dei nodi con i valori nella colonna " NODE " dell'elenco dei pod.

    Se i nodi non sono denominati in base al loro IP, è possibile aggiungere l'opzione -o wide e confrontare invece i valori nella colonna INTERNAL-IP.

    Per visualizzare i registri di un pod, eseguire oc logs <POD_NAME>> -n ibm-observe

Passo 5. Verifica che i tronchi vengano consegnati alla destinazione prevista

Completa i seguenti passi:

  1. Vai all'interfaccia utente web per la tua istanza di IBM Cloud Logs.

  2. Quando l'agente è configurato correttamente, è possibile visualizzare i registri attraverso la vista predefinita del cruscotto. Agent di registrazione e tag registra i record con un oggetto kubernetes che include il nome del cluster.

    kubernetes.cluster_name:<CLUSTER_NAME>
    

    Puoi eseguire la query kubernetes.cluster_name:<YOUR_CLUSTER_NAME> nella tua istanza di IBM Cloud Logs per cercare i log generati dal tuo cluster.