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:
Affinché le modifiche diventino effettive, devi riavviare l'Ops Agent:
Linux
- Per riavviare l'agente, esegui il seguente comando sull'istanza:
sudo systemctl restart google-cloud-ops-agent
- 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
- Connettiti all'istanza utilizzando RDP o uno strumento simile e accedi a Windows.
- Apri un terminale PowerShell con privilegi amministrativi facendo clic con il tasto destro del mouse sull'icona di PowerShell e selezionando Esegui come amministratore.
- Per riavviare l'agente, esegui il seguente comando PowerShell:
Restart-Service google-cloud-ops-agent -Force
- 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 ( |