In dit artikel gaan we onderzoeken hoe u kunt implementeren Elasticsearch en Kibana gebruiken Docker Compose. Dit zijn twee belangrijke componenten van de ELK Stack( Elasticsearch, Logstash, Kibana), die u helpen om effectief data te zoeken, analyseren en visualiseren. Hieronder vindt u de gedetailleerde configuraties en hoe elk component werkt.
1. Elasticsearch
a. Basisconfiguratie
Elasticsearch is geconfigureerd om te worden uitgevoerd in een Docker-container met de volgende parameters:
Afbeelding: De officiële Elasticsearch afbeelding, versie
8.17.2
, wordt gebruikt.Enkelvoudige knooppuntmodus: ingeschakeld via de omgevingsvariabele
discovery.type=single-node
.Beveiliging: X-Pack-beveiliging is ingeschakeld(
xpack.security.enabled=true
) en het wachtwoord voor deelastic
gebruiker is ingesteld opYVG6PKplG6ugGOw
.Netwerk: Elasticsearch luistert op alle netwerkinterfaces(
network.host=0.0.0.0
).JVM-geheugen: Geconfigureerd met
-Xms1g
(initieel geheugen) en-Xmx1g
(maximaal geheugen).
b. Ports en Volumes
Ports: Poort
9200
(HTTP) en9300
(interne communicatie) worden vanuit de container aan de host toegewezen.Volumes: Elasticsearch-gegevens worden in het
elasticsearch-data
volume opgeslagen.
c. Gezondheidscontrole
Een healthcheck wordt ingesteld om Elasticsearch de status van te monitoren door de /_cluster/health
API met de elastic
gebruiker aan te roepen. Als de API niet reageert, start de container opnieuw op.
2. Kibana
a. Basisconfiguratie
Kibana is geconfigureerd om verbinding te maken met Elasticsearch en te draaien in een Docker-container met de volgende parameters:
Afbeelding: De officiële Kibana afbeelding, versie
8.17.2
, wordt gebruikt.Elasticsearch Verbinding: Het Elasticsearch adres is ingesteld op
http://elasticsearch:9200
.Authenticatie: Kibana gebruikt het
kibana_user
wachtwoordYVG6PKplG6ugGOw
om verbinding te maken met Elasticsearch.
b. Ports en netwerken
Ports: De poort
5601
wordt vanuit de container aan de host toegewezen om toegang te krijgen tot de Kibana interface.Netwerken: Kibana is verbonden met de
elk-network
.
c. Afhankelijkheid van Elasticsearch
Kibana start pas als deze Elasticsearch gereed is, waardoor een succesvolle verbinding tussen de twee services wordt gegarandeerd.
3. Volume en netwerk
a. Volume
elasticsearch-data: Dit volume wordt gebruikt om Elasticsearch gegevens op te slaan, zodat de gegevens behouden blijven, zelfs als de container wordt verwijderd.
b. Netwerk
elk-network: Er wordt een
bridge
netwerk gemaakt om verbinding te maken Elasticsearch en Kibana diensten te verlenen.
4. Hoe te gebruiken
a. De diensten starten
Om een te starten Elasticsearch, Kibana voert u de volgende opdracht uit:
b. Een Kibana gebruiker aanmaken(indien nodig)
Als u een speciale gebruiker voor wilt gebruiken Kibana, kunt u er een aanmaken met de volgende opdracht:
Om een wachtwoord te gebruiken token in plaats van een wachtwoord, kunt u er een maken met de volgende opdracht:
5. Problemen oplossen
Als u fouten tegenkomt, kunt u de containerlogboeken als volgt controleren:
Opnieuw starten Kibana:
Volledige inhoud van het Docker Compose bestand
Hieronder vindt u de volledige inhoud van het docker-compose-els.yml
bestand:
Conclusie
Met deze Docker Compose configuratie kunt u eenvoudig implementeren Elasticsearch en Kibana voldoen aan uw datazoek-, analyse- en visualisatiebehoeften. Pas deze configuratie aan en breid deze uit om te voldoen aan de specifieke vereisten van uw project!