Risolvere i problemi comuni del forwarding Linux

Questa pagina ti aiuta a riconoscere e risolvere i problemi comuni che potresti riscontrare durante l'utilizzo del forwarding di Chronicle Linux.

L'inoltro non si avvia

Il forwarding non si avvia e si trova in un loop di riavvio continuo con il seguente errore nei log:

F0510 06:17:39.013603 202 main_linux.go:153] open /opt/chronicle/external/*.conf: no such file or directory

Possibile causa 1: mappatura non corretta nel file di configurazione

Per risolvere questo problema, assicurati di trasmettere il percorso corretto al file di configurazione e di mapparlo a una cartella esterna.

Possibile causa 2: SELinux è abilitato

  1. Controlla il file di configurazione accedendo al container senza avviare il forwarding ed esegui questo comando:

    docker run --name cfps --log-opt max-size=100m --log-opt   max-file=10 --net=host -v ~/configuration:/opt/chronicle/external --entrypoint=/bin/bash \
    -it gcr.io/chronicle-container/cf_production_
    

    Questo comando ti collocherà in una shell dall'interno del container.

  2. Esegui questo comando:

    ls -lrt /opt.chronicle/external/
    

    Se viene visualizzato un errore di autorizzazione negata, significa che l'utente che ha eseguito l'inoltro non è in grado di aprire il file di configurazione e, pertanto, non può avviarlo.

Per risolvere il problema:

  1. Controlla lo stato di SELinux eseguendo questo comando:

      sestatus
    
  2. Se lo stato di SELinux è abilitato nell'output, esegui il comando seguente per disabilitarlo:

      setenforce 0
    

I log non raggiungono il tenant di Chronicle

Possibile causa 1: risoluzione DNS

Controlla se l'host non è in grado di risolvere gli indirizzi o di raggiungere Chronicle eseguendo questo comando:

  nslookup malachiteingestion-pa.googleapis.com

Se il comando non riesce, contatta il team di networking per risolvere il problema.

Possibile causa 2: firewall

Controlla se il firewall locale blocca la comunicazione tra Chronicle e il forwarding eseguendo questo comando:

  firewall-cmd --state

Se il firewall è abilitato, disabilitalo eseguendo questo comando:

  systemctl stop firewalld

Possibile causa 3: dimensione del buffer

Verifica se si tratta di un problema relativo alle dimensioni del buffer cercando il seguente errore nei log:

Memory ceiling (1073741824) reached, freeing a batch from the backlog

Per risolvere il problema:

  1. Attiva la compressione nel file di configurazione del forwarding.

  2. Aumenta la dimensione del buffer aggiornando i parametri max_memory_buffer_bytes e max_file_buffer_bytes nel file di configurazione. Questi parametri indicano il buffer dei batch di backlog archiviati nella memoria o sul disco.

Il forwarding e l'host non ricevono log

Se l'host e il forwarding non ricevono log, controlla lo stato della porta eseguendo per ciascuna porta il comando seguente:

  netstat -a | grep PORT

Sostituisci PORT con l'ID porta che vuoi controllare.

Se il comando non restituisce alcun output, significa che l'host non è in ascolto su quella porta e devi consultare l'amministratore di rete.

Se l'output del comando indica che l'host è in ascolto su una porta e il forwarding ancora non riceve i log, procedi nel seguente modo:

  1. Arresta Docker eseguendo questo comando:

    ​​docker stop cfps
    
    
  2. Esegui uno dei seguenti comandi in base alla configurazione della rete.

    Per TCP:

    nc -l PORT
    

    Per UDP:

    nc -l -u PORT
    

    Sostituisci PORT con l'ID porta di cui vuoi risolvere i problemi.

  3. Riavvia il servizio esterno e controlla se il problema è stato risolto. Se il problema persiste, [contatta l'assistenza di Chronicle.

Il forwarding non riceve i log, ma l'host li riceve

Se l'host riceve i log, ma non il forwarding, significa che il forwarding non è in ascolto sulla porta specificata nel file di configurazione.

Per risolvere il problema:

  1. Apri due finestre del terminale sul sistema, una per configurare il forwarding e una per inviare un messaggio di prova all'host.

    1. Sul primo terminale (forwarder), avvia Docker senza avviare il forwarding eseguendo questo comando:

      docker run \
      --name cfps \
      --log-opt max-size=100m \
      --log-opt max-file=10 \
      --net=host \
      -v ~/config:/opt/chronicle/external \
      --entrypoint=/bin/bash \
      -it gcr.io/chronicle-container/cf_production_stable
      
    2. Specifica la porta su cui il forwarding deve rimanere in ascolto:

      nc -l PORT
      

      Sostituisci PORT con l'ID porta di cui vuoi risolvere i problemi.

  2. Sul secondo terminale (host), invia il messaggio di prova sulla porta eseguendo questo comando:

    echo "test message" | nc localhost PORT
    

    Sostituisci PORT con l'ID porta di cui vuoi risolvere i problemi.

  3. Esegui nuovamente il comando docker. Specifica il flag -p con le porte sulle quali il forwarding deve rimanere in ascolto eseguendo questo comando:

    docker run \
    --detach \
    –name cfps \
    --restart=always \
    --log-opt max-size=100m \
    --log-opt max-file=10 --net=host \
    —v /root/config:/opt/chronicle/external \
    -p 11500:11800 \
    gcr.io/chronicle-container/cf_production_stable
    

Errori comuni nel file di log dell'inoltro

Puoi visualizzare i log del forwarding eseguendo il comando seguente:

  sudo docker logs cfps

La richiesta contiene un argomento non valido

Il file di log dell'inoltro mostra il seguente messaggio di errore:

  I0912 18:04:15.187321 333 uploader.go:181] Sent batch error: rpc error: code = InvalidArgument desc = Request contains an invalid argument.
  E0912 18:04:15.410572 333 batcher.go:345] [2_syslog_CISCO_FIREWALL-tid-0] Error exporting batch: rpc error: code = InvalidArgument desc = Request contains an invalid argument.
  I0912 18:04:15.964923 333 uploader.go:181] Sent batch error: rpc error: code = InvalidArgument desc = Request contains an invalid argument.

Risoluzione:

Questo errore può verificarsi quando viene aggiunto un tipo di log non valido. Assicurati che vengano aggiunti solo tipi di log validi. Nel messaggio di errore di esempio, CISCO\_FIREWALL non è un tipo di log valido. Per un elenco dei tipi di log validi, consulta la pagina Tipi di log supportati e parser predefiniti.

Impossibile trovare il server

Il file di log dell'inoltro mostra il seguente messaggio di errore:

{"log":"Failure: Unable to find the server at accounts.google.com.\n","stream":"stderr","time":"2019-06-12T18:26:53.858804303Z"}`

{"log":"+ [[ 1 -ne 0 ]]\n","stream":"stderr","time":"2019-06-12T18:26:53.919837669Z"}

{"log":"+ err 'ERROR: Problem accessing the Chronicle bundle.'\n","stream":"stderr","time":"2019-06-12T18:26:53.919877852Z"}

Risoluzione:

Contatta il team di networking per verificare che la rete funzioni.

Firma JWT non valida

Il file di log dell'inoltro mostra il seguente messaggio di errore:

    E0330 17:05:28.728021 162 stats_manager.go:85] send(): rpc error: code = Unauthenticated desc = transport: OAuth 2.0: cannot fetch token: 400 Bad Request Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
    E0404 17:05:28.729012 474 memory.go:483] [1_syslog_FORTINET_FIREWAL-tid-0] Error exporting batch: rpc error: code = Unauthenticated desc = transport: OAuth 2.0: cannot fetch token: 400 Bad Request Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}

Risoluzione:

Questo errore può verificarsi quando i dettagli della chiave segreta di un file di configurazione dell'inoltro sono errati. Contatta l'assistenza Chronicle per risolvere il problema.

Il token deve essere un token di breve durata

Il file di log dell'inoltro mostra il seguente messaggio di errore:

      token: 400 Bad Request Response:
      {"error":"invalid_grant","error_description":"Invalid JWT: Token must be a
      short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values in the JWT claim."} I0412 05:14:16.539060 480
      malachite.go:212] Sent batch error: rpc error: code = Unauthenticated desc =
      transport: OAuth 2.0: cannot fetch token: 400 Bad Request Response:
      {"error":"invalid_grant","error_description":"Invalid JWT: Token must be a
      short-lived token (60 minutes)

Risoluzione:

Questo errore può verificarsi quando gli orologi di sistema dell'host e del server non sono sincronizzati. Regola l'ora sull'host o prova a utilizzare NTP per sincronizzare gli orologi.

Il file o la directory non esiste

Il file di log dell'inoltro mostra il seguente messaggio di errore:

    ++ cat '/opt/chronicle/external/*.conf'
    cat: '/opt/chronicle/external/*.conf': No such file or directory

Risoluzione:

Questo errore può verificarsi quando il forwarding viene avviato con la mappatura di unità errata. Utilizza il percorso completo della directory nel file di configurazione (puoi recuperarlo eseguendo il comando pwd).

Impossibile recuperare l'ID cliente dal file di configurazione

Il file di log dell'inoltro mostra il seguente messaggio di errore:

    + err 'ERROR: Failed to retrieve customer ID from configuration file.'
    ++ date +%Y-%m-%dT%H:%M:%S%z
    + echo '[2023-06-28T09:53:21+0000]: ERROR: Failed to retrieve customer ID from configuration file.'
    [2023-06-28T09:53:21+0000]: ERROR: Failed to retrieve customer ID from configuration file.
    + err '==> Please contact the Chronicle support team.'

Risoluzione:

Questo errore è causato da una mappatura errata o se il file di configurazione non è presente nella directory. Utilizza il percorso completo della directory nel file di configurazione (puoi recuperarlo eseguendo il comando pwd). Assicurati che venga eseguito il comando docker run corretto e che il file di configurazione esista nella posizione seguente:

    gcr.io/chronicle-container/cf_production_stable

Il seguente esempio di codice mostra il comando docker run:

    ​​docker run \
    --detach \
    --name cfps \
    --restart=always \
    --log-opt max-size=100m \
    --log-opt max-file=10 \
    --net=host \
    -v /opt/chronicle/config:/opt/chronicle/external \
    gcr.io/chronicle-container/cf_production_stable