V tomto článku prozkoumáme, jak nasadit Elasticsearch a Kibana používat Docker Compose. Toto jsou dvě klíčové součásti ELK Stack( Elasticsearch, Logstash, Kibana), které vám pomáhají efektivně vyhledávat, analyzovat a vizualizovat data. Níže jsou uvedeny podrobné konfigurace a jak jednotlivé komponenty fungují.
1. Elasticsearch
A. Základní konfigurace
Elasticsearch je nakonfigurován pro spuštění v kontejneru Docker s následujícími parametry:
Obrázek: Používá se oficiální Elasticsearch obrázek, verze .
8.17.2Režim jednoho uzlu: Povoleno prostřednictvím proměnné prostředí
discovery.type=single-node.Zabezpečení: Zabezpečení X-Pack je povoleno(
xpack.security.enabled=true) a heslo proelasticuživatele je nastaveno naYVG6PKplG6ugGOw.Síť: Elasticsearch naslouchá na všech síťových rozhraních(
network.host=0.0.0.0).Paměť JVM: Nakonfigurováno s
-Xms1g(počáteční paměť) a-Xmx1g(maximální paměť).
b. Ports a Volumes
Ports: Port
9200(HTTP) a9300(interní komunikace) jsou mapovány z kontejneru na hostitele.Volumes: Data Elasticsearch jsou uložena ve
elasticsearch-datasvazku.
C. Healthcheck
Kontrola stavu je nastavena tak, aby monitorovala Elasticsearch stav pomocí volání rozhraní /_cluster/health API s elastic uživatelem. Pokud rozhraní API neodpoví, kontejner se restartuje.
2. Kibana
A. Základní konfigurace
Kibana je nakonfigurován pro připojení Elasticsearch a spuštění v kontejneru Docker s následujícími parametry:
Obrázek: Používá se oficiální Kibana obrázek, verze .
8.17.2Elasticsearch Připojení: Adresa Elasticsearch je nastavena na
http://elasticsearch:9200.Autentizace: Kibana používá heslo
kibana_users heslemYVG6PKplG6ugGOwpro připojení k Elasticsearch.
b. Ports a sítě
Ports: Port
5601je mapován z kontejneru na hostitele pro přístup k Kibana rozhraní.Sítě: Kibana je připojena k
elk-network.
C. Závislost na Elasticsearch
Kibana spustí se až poté, co Elasticsearch je připraveno, což zajišťuje úspěšné spojení mezi dvěma službami.
3. Hlasitost a síť
A. Objem
elasticsearch-data: Tento svazek se používá k ukládání Elasticsearch dat, což zajišťuje stálost dat, i když je kontejner smazán.
b. Síť
elk-network:
bridgeVytvoří se síť pro připojení a Elasticsearch služby Kibana.
4. Jak používat
A. Spuštění Služeb
Chcete-li spustit Elasticsearch a Kibana, spusťte následující příkaz:
docker-compose up -d
b. Vytvoření Kibana uživatele(v případě potřeby)
Pokud chcete použít vyhrazeného uživatele pro Kibana, můžete jej vytvořit pomocí následujícího příkazu:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Chcete-li místo hesla použít token a, můžete je vytvořit pomocí následujícího příkazu:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Odstraňování problémů
Pokud narazíte na chyby, můžete zkontrolovat protokoly kontejneru pomocí:
docker logs elasticsearch docker logs kibanaChcete-li restartovat Kibana:
Úplný obsah Docker Compose souboru
Níže je celý obsah souboru docker-compose-els.yml :
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.2
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=true
- ELASTIC_PASSWORD=you_password
- network.host=0.0.0.0
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ports:
- '9200:9200'
- '9300:9300'
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elk-network
healthcheck:
test: ["CMD-SHELL", "curl -u elastic:YVG6PKplG6ugGOw --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 10s
retries: 5
start_period: 30s
timeout: 5s
kibana:
image: docker.elastic.co/kibana/kibana:8.17.2
container_name: kibana
ports:
- '5601:5601'
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_user
- ELASTICSEARCH_PASSWORD=you_password
networks:
- elk-network
depends_on:
elasticsearch:
condition: service_healthy
volumes:
elasticsearch-data:
driver: local
networks:
elk-network:
driver: bridge
Závěr
S touto Docker Compose konfigurací můžete snadno nasadit Elasticsearch a Kibana sloužit vašim potřebám vyhledávání, analýzy a vizualizace dat. Přizpůsobte a rozšiřte tuto konfiguraci tak, aby vyhovovala specifickým požadavkům vašeho projektu!

