Dalam artikel ini, kami akan meneroka cara menggunakan Elasticsearch dan Kibana menggunakan Docker Compose. Ini ialah dua komponen utama ELK Stack( Elasticsearch, Logstash, Kibana), membantu anda mencari, menganalisis dan menggambarkan data dengan berkesan. Di bawah ialah konfigurasi terperinci dan cara setiap komponen berfungsi.
1. Elasticsearch
a. Konfigurasi Asas
Elasticsearch dikonfigurasikan untuk dijalankan dalam bekas Docker dengan parameter berikut:
Imej: Imej rasmi Elasticsearch, versi
8.17.2, digunakan.Mod nod tunggal: Didayakan melalui pembolehubah persekitaran
discovery.type=single-node.Keselamatan: Keselamatan X-Pack didayakan(
xpack.security.enabled=true), dan kata laluan untukelasticpengguna ditetapkan kepadaYVG6PKplG6ugGOw.Rangkaian: Elasticsearch mendengar pada semua antara muka rangkaian(
network.host=0.0.0.0).Memori JVM: Dikonfigurasikan dengan
-Xms1g(memori awal) dan-Xmx1g(memori maksimum).
b. Ports dan Volumes
Ports: Port
9200(HTTP) dan9300(komunikasi dalaman) dipetakan daripada bekas ke hos.Volumes: Data carian elastik disimpan dalam
elasticsearch-datavolum.
c. Pemeriksaan kesihatan
Pemeriksaan kesihatan disediakan untuk memantau Elasticsearch status dengan menghubungi /_cluster/health API dengan elastic pengguna. Jika API gagal bertindak balas, bekas akan dimulakan semula.
2. Kibana
a. Konfigurasi Asas
Kibana dikonfigurasikan untuk menyambung ke Elasticsearch dan dijalankan dalam bekas Docker dengan parameter berikut:
Imej: Imej rasmi Kibana, versi
8.17.2, digunakan.Elasticsearch Sambungan: Alamat Elasticsearch ditetapkan kepada
http://elasticsearch:9200.Pengesahan: Kibana menggunakan
kibana_userdengan kata laluanYVG6PKplG6ugGOwuntuk menyambung ke Elasticsearch.
b. Ports dan Rangkaian
Ports: Port
5601dipetakan dari bekas ke hos untuk mengakses Kibana antara muka.Rangkaian: Kibana disambungkan ke
elk-network.
c. Kebergantungan pada Elasticsearch
Kibana hanya bermula selepas Elasticsearch siap, memastikan sambungan berjaya antara kedua-dua perkhidmatan.
3. Kelantangan dan Rangkaian
a. Kelantangan
elasticsearch-data: Kelantangan ini digunakan untuk menyimpan Elasticsearch data, memastikan data kekal walaupun bekas dipadamkan.
b. Rangkaian
elk-network: Rangkaian
bridgedicipta untuk menyambung Elasticsearch dan Kibana perkhidmatan.
4. Cara Penggunaan
a. Memulakan Perkhidmatan
Untuk memulakan Elasticsearch dan Kibana, jalankan arahan berikut:
docker-compose up -d
b. Mencipta Kibana Pengguna(Jika Perlu)
Jika anda ingin menggunakan pengguna khusus untuk Kibana, anda boleh membuat satu dengan arahan berikut:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Untuk menggunakan token bukan kata laluan, anda boleh menciptanya dengan arahan berikut:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Menyelesaikan masalah
Jika anda menghadapi ralat, anda boleh menyemak log bekas menggunakan:
docker logs elasticsearch docker logs kibanaUntuk memulakan semula Kibana:
Kandungan Penuh Docker Compose Fail
Di bawah ialah kandungan penuh docker-compose-els.yml fail:
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
Kesimpulan
Dengan Docker Compose konfigurasi ini, anda boleh menggunakan Elasticsearch dan Kibana menyediakan keperluan carian, analisis dan visualisasi data anda dengan mudah. Sesuaikan dan lanjutkan konfigurasi ini agar sesuai dengan keperluan khusus projek anda!

