Elasticsearch 8.0+ e 9.0+

Elasticsearch è un server di ricerca open source basato sulla libreria di ricerca Lucene. Viene eseguito in una macchina virtuale Java su diversi sistemi operativi. Il ricevitore elasticsearch raccoglie la telemetria a livello di nodo e cluster dalle istanze Elasticsearch.

Per ulteriori informazioni su Elasticsearch, consulta la documentazione di Elasticsearch 8.0+ e 9.0+.

Prerequisiti

Per raccogliere la telemetria di Elasticsearch, devi installare Ops Agent:

  • Per le metriche, installa la versione 2.60.0 o successive.
  • Per i log, installa la versione 2.60.0 o successive.

Questa integrazione supporta Elasticsearch 8.0+ e 9.0+.

Configura l'istanza Elasticsearch

Se abiliti le funzionalità di sicurezza di Elasticsearch, devi configurare un utente con il privilegio cluster monitor o manage.

Configura Ops Agent per Elasticsearch

Segui la guida per configurare Ops Agent, aggiungi gli elementi richiesti per raccogliere i dati di telemetria dalle istanze Elasticsearch e riavvia l'agente.

Configurazione di esempio

I seguenti comandi creano la configurazione per raccogliere e importare la telemetria per Elasticsearch:

# Configures Ops Agent to collect telemetry from the app. You must restart the agent for the configuration to take effect.

set -e

# Check if the file exists
if [ ! -f /etc/google-cloud-ops-agent/config.yaml ]; then
  # Create the file if it doesn't exist.
  sudo mkdir -p /etc/google-cloud-ops-agent
  sudo touch /etc/google-cloud-ops-agent/config.yaml
fi

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    elasticsearch:
      type: elasticsearch
      endpoint: https://localhost:9200
      username: elastic
      password: elastic_test_password_123
      insecure_skip_verify: true
      insecure: false
  service:
    pipelines:
      elasticsearch:
        receivers:
          - elasticsearch

logging:
  receivers:
    elasticsearch_gc:
      type: elasticsearch_gc
    elasticsearch_json:
      type: elasticsearch_json
  service:
    pipelines:
      elasticsearch:
        receivers:
          - elasticsearch_gc
          - elasticsearch_json
EOF

Affinché le modifiche diventino effettive, devi riavviare l'Ops Agent:

Linux

  1. Per riavviare l'agente, esegui il seguente comando sull'istanza:
    sudo systemctl restart google-cloud-ops-agent
    
  2. Per verificare che l'agente sia stato riavviato, esegui il seguente comando e verifica che i componenti "Agente Metriche" e "Agente Logging" siano stati avviati:
    sudo systemctl status "google-cloud-ops-agent*"
    

Windows

  1. Connettiti all'istanza utilizzando RDP o uno strumento simile e accedi a Windows.
  2. Apri un terminale PowerShell con privilegi amministrativi facendo clic con il tasto destro del mouse sull'icona di PowerShell e selezionando Esegui come amministratore.
  3. Per riavviare l'agente, esegui il seguente comando PowerShell:
    Restart-Service google-cloud-ops-agent -Force
    
  4. Per verificare che l'agente sia stato riavviato, esegui il seguente comando e verifica che i componenti "Agente Metriche" e "Agente Logging" siano stati avviati:
    Get-Service google-cloud-ops-agent*
    

Configura la raccolta dei log

Per importare i log da Elasticsearch, devi creare un ricevitore per i log prodotti da Elasticsearch e poi creare una pipeline per il nuovo ricevitore.

Per configurare un ricevitore per i log elasticsearch_json, specifica i seguenti campi:

Campo Predefinito Descrizione
exclude_paths Un elenco di pattern di percorso del file system da escludere dal set corrispondente a include_paths.
include_paths [/var/log/elasticsearch/*_server.json, /var/log/elasticsearch/*_deprecation.json, /var/log/elasticsearch/*_index_search_slowlog.json, /var/log/elasticsearch/*_index_indexing_slowlog.json, /var/log/elasticsearch/*_audit.json] Un elenco di percorsi del file system da leggere seguendo ogni file. Nei percorsi è possibile utilizzare un carattere jolly (*).
record_log_file_path false Se impostato su true, il percorso del file specifico da cui è stato ottenuto il record di log viene visualizzato nella voce di log di output come valore dell'etichetta agent.googleapis.com/log_file_path. Quando utilizzi un carattere jolly, viene registrato solo il percorso del file da cui è stato ottenuto il record.
type Questo valore deve essere elasticsearch_json.
wildcard_refresh_interval 60s L'intervallo con cui vengono aggiornati i percorsi dei file con caratteri jolly in include_paths. Indicato come durata di tempo, ad esempio 30s o 2m. Questa proprietà potrebbe essere utile in caso di velocità effettiva di logging elevata, quando i file di log vengono ruotati più velocemente dell'intervallo predefinito.

Per configurare un ricevitore per i log elasticsearch_gc, specifica i seguenti campi:

Campo Predefinito Descrizione
exclude_paths Un elenco di pattern di percorso del file system da escludere dal set corrispondente a include_paths.
include_paths [/var/log/elasticsearch/gc.log] Un elenco di percorsi del file system da leggere seguendo ogni file. Nei percorsi è possibile utilizzare un carattere jolly (*).
record_log_file_path false Se impostato su true, il percorso del file specifico da cui è stato ottenuto il record di log viene visualizzato nella voce di log di output come valore dell'etichetta agent.googleapis.com/log_file_path. Quando utilizzi un carattere jolly, viene registrato solo il percorso del file da cui è stato ottenuto il record.
type Questo valore deve essere elasticsearch_gc.
wildcard_refresh_interval 60s L'intervallo con cui vengono aggiornati i percorsi dei file con caratteri jolly in include_paths. Indicato come durata di tempo, ad esempio 30s o 2m. Questa proprietà potrebbe essere utile in caso di velocità effettiva di logging elevata, quando i file di log vengono ruotati più velocemente dell'intervallo predefinito.

Informazioni registrate nei log

logName deriva dagli ID destinatario specificati nella configurazione. I campi dettagliati all'interno di LogEntry sono i seguenti.

I log elasticsearch_json contengono i seguenti campi in LogEntry:

Campo Tipo Descrizione
jsonPayload.ecs.version string Versione ECS
jsonPayload.elasticsearch.cluster.name string Il nome del cluster che emette il record di log in formato ECS
jsonPayload.elasticsearch.cluster.uuid string L'UUID del cluster che emette il record di log in formato ECS
jsonPayload.elasticsearch.node.name string Il nome del nodo che emette il record di log in formato ECS
jsonPayload.event string Informazioni sull'evento in formato ECS
jsonPayload.log string Dettagli del log in formato ECS
jsonPayload.log.level string Livello della voce di log nel formato ECS
jsonPayload.log.logger string Il componente logger che ha emesso il log in formato ECS
jsonPayload.message string Messaggio di log
jsonPayload.process.thread.name string Il nome del thread che ha emesso il log in formato ECS
jsonPayload.service.name string Il nome del servizio che emette il log in formato ECS
severity stringa (