W tym artykule przyjrzymy się sposobowi wdrażania Elasticsearch i Kibana używania Docker Compose. Są to dwa kluczowe komponenty ELK Stack( Elasticsearch, Logstash, Kibana), pomagające w efektywnym wyszukiwaniu, analizowaniu i wizualizacji danych. Poniżej przedstawiono szczegółowe konfiguracje i sposób działania każdego komponentu.
1. Elasticsearch
a. Podstawowa konfiguracja
Elasticsearch jest skonfigurowany do działania w kontenerze Docker z następującymi parametrami:
Obraz: Użyto oficjalnego Elasticsearch obrazu w wersji .
8.17.2
Tryb pojedynczego węzła: włączany za pomocą zmiennej środowiskowej
discovery.type=single-node
.Bezpieczeństwo: zabezpieczenia X-Pack są włączone(
xpack.security.enabled=true
), a hasło użytkownikaelastic
jest ustawione naYVG6PKplG6ugGOw
.Sieć: Elasticsearch nasłuchuje na wszystkich interfejsach sieciowych(
network.host=0.0.0.0
).Pamięć JVM: skonfigurowana za pomocą
-Xms1g
(pamięci początkowej) i-Xmx1g
(pamięci maksymalnej).
zespół Ports Volumes
Ports: Port
9200
(HTTP) i9300
(komunikacja wewnętrzna) są mapowane z kontenera na hosta.Volumes: Dane Elasticsearch są przechowywane w
elasticsearch-data
woluminie.
c. Kontrola stanu zdrowia
Healthcheck jest skonfigurowany do monitorowania Elasticsearch statusu poprzez wywołanie /_cluster/health
API z elastic
użytkownikiem. Jeśli API nie odpowie, kontener zostanie uruchomiony ponownie.
2. Kibana
a. Podstawowa konfiguracja
Kibana jest skonfigurowany do łączenia się Elasticsearch i uruchamiania w kontenerze Docker z następującymi parametrami:
Obraz: Użyto oficjalnego Kibana obrazu w wersji .
8.17.2
Elasticsearch Połączenie: Adres Elasticsearch jest ustawiony na
http://elasticsearch:9200
.Uwierzytelnianie: Kibana używa
kibana_user
hasłaYVG6PKplG6ugGOw
do łączenia się z Elasticsearch.
b. Ports i sieci
Ports: Port
5601
jest mapowany z kontenera na hosta w celu uzyskania dostępu do Kibana interfejsu.Sieci: Kibana jest połączona z
elk-network
.
c. Zależność od Elasticsearch
Kibana rozpoczyna się dopiero po zakończeniu Elasticsearch gotowości, zapewniając prawidłowe połączenie między dwiema usługami.
3. Głośność i sieć
a. Objętość
elasticsearch-data: Ten wolumin służy do przechowywania Elasticsearch danych, co zapewnia trwałość danych nawet w przypadku usunięcia kontenera.
b. Sieć
elk-network: Sieć
bridge
stworzona w celu łączenia Elasticsearch usług Kibana.
4. Jak używać
a. Uruchomienie usług
Aby rozpocząć Elasticsearch, Kibana uruchom następujące polecenie:
b. Tworzenie Kibana użytkownika(jeśli to konieczne)
Jeśli chcesz użyć dedykowanego użytkownika Kibana, możesz go utworzyć za pomocą następującego polecenia:
Aby użyć token zamiast hasła, możesz je utworzyć za pomocą następującego polecenia:
5. Rozwiązywanie problemów
Jeśli napotkasz błędy, możesz sprawdzić logi kontenera za pomocą:
Aby ponownie uruchomić Kibana:
Pełna zawartość Docker Compose pliku
Poniżej znajduje się pełna zawartość pliku docker-compose-els.yml
:
Wniosek
Dzięki tej Docker Compose konfiguracji możesz łatwo wdrożyć Elasticsearch i Kibana obsługiwać swoje potrzeby wyszukiwania, analizy i wizualizacji danych. Dostosuj i rozszerz tę konfigurację, aby dopasować ją do konkretnych wymagań swojego projektu!