In questo articolo, esploreremo come distribuire Elasticsearch e Kibana utilizzare Docker Compose. Questi sono due componenti chiave di ELK Stack( Elasticsearch, Logstash, Kibana), che ti aiutano a cercare, analizzare e visualizzare i dati in modo efficace. Di seguito sono riportate le configurazioni dettagliate e il funzionamento di ciascun componente.
1. Elasticsearch
a. Configurazione di base
Elasticsearch è configurato per essere eseguito in un contenitore Docker con i seguenti parametri:
Immagine: Elasticsearch viene utilizzata l' immagine ufficiale, versione
8.17.2
.Modalità a nodo singolo: abilitata tramite la variabile di ambiente
discovery.type=single-node
.Sicurezza: la sicurezza X-Pack è abilitata(
xpack.security.enabled=true
) e la password per l'elastic
utente è impostata suYVG6PKplG6ugGOw
.Rete: Elasticsearch ascolta su tutte le interfacce di rete(
network.host=0.0.0.0
).Memoria JVM: configurata con
-Xms1g
(memoria iniziale) e-Xmx1g
(memoria massima).
b. Ports e Volumes
Ports: La porta
9200
(HTTP) e9300
(comunicazione interna) vengono mappate dal contenitore all'host.Volumes: I dati Elasticsearch sono archiviati nel
elasticsearch-data
volume.
c. Controllo sanitario
Un healthcheck è impostato per monitorare Elasticsearch lo stato di chiamando l' /_cluster/health
API con l' elastic
utente. Se l'API non risponde, il contenitore verrà riavviato.
2. Kibana
a. Configurazione di base
Kibana è configurato per connettersi Elasticsearch ed essere eseguito in un contenitore Docker con i seguenti parametri:
Immagine: Kibana viene utilizzata l' immagine ufficiale, versione
8.17.2
.Elasticsearch Connessione: l' Elasticsearch indirizzo è impostato su
http://elasticsearch:9200
.Autenticazione: Kibana utilizza
kibana_user
la passwordYVG6PKplG6ugGOw
per connettersi a Elasticsearch.
b. Ports e reti
Ports: La porta
5601
viene mappata dal contenitore all'host per accedere Kibana all'interfaccia.Reti: Kibana è connesso a
elk-network
.
c. Dipendenza da Elasticsearch
Kibana si avvia solo quando Elasticsearch è pronto, assicurando una connessione riuscita tra i due servizi.
3. Volume e rete
a. Volume
elasticsearch-data: Questo volume viene utilizzato per archiviare Elasticsearch i dati, garantendone la persistenza anche se il contenitore viene eliminato.
b. Rete
elk-network: Una
bridge
rete è creata per connettere Elasticsearch e Kibana fornire servizi.
4. Come utilizzare
a. Avvio dei servizi
Per avviare Elasticsearch e Kibana, eseguire il seguente comando:
b. Creazione di un Kibana utente(se necessario)
Se vuoi utilizzare un utente dedicato per Kibana, puoi crearne uno con il seguente comando:
Per utilizzare un token al posto di una password, puoi crearne uno con il seguente comando:
5. Risoluzione dei problemi
Se si verificano errori, è possibile controllare i log del contenitore utilizzando:
Per riavviare Kibana:
Contenuto completo del Docker Compose file
Di seguito il contenuto completo del docker-compose-els.yml
file:
Conclusione
Con questa Docker Compose configurazione, puoi facilmente distribuire Elasticsearch e Kibana soddisfare le tue esigenze di ricerca, analisi e visualizzazione dei dati. Personalizza ed estendi questa configurazione per adattarla ai requisiti specifici del tuo progetto!