Dalam artikel ini, kita akan membahas cara menggunakan Elasticsearch dan Kibana menyebarkan Docker Compose. Ini adalah dua komponen utama dari ELK Stack( Elasticsearch, Logstash, Kibana), yang membantu Anda mencari, menganalisis, dan memvisualisasikan data secara efektif. Berikut adalah konfigurasi terperinci dan cara kerja setiap komponen.
1. Elasticsearch
a. Konfigurasi Dasar
Elasticsearch dikonfigurasi untuk berjalan dalam kontainer Docker dengan parameter berikut:
Gambar: Gambar resmi Elasticsearch, versi
8.17.2, digunakan.Mode simpul tunggal: Diaktifkan melalui variabel lingkungan
discovery.type=single-node.Keamanan: Keamanan X-Pack diaktifkan(
xpack.security.enabled=true), dan kata sandi untukelasticpengguna ditetapkan keYVG6PKplG6ugGOw.Jaringan: Elasticsearch mendengarkan semua antarmuka jaringan(
network.host=0.0.0.0).Memori JVM: Dikonfigurasi dengan
-Xms1g(memori awal) dan-Xmx1g(memori maksimum).
b. Ports dan Volumes
Ports: Port
9200(HTTP) dan9300(komunikasi internal) dipetakan dari kontainer ke host.Volumes: Data Elasticsearch disimpan dalam
elasticsearch-datavolume.
c. Pemeriksaan kesehatan
Pemeriksaan kesehatan disiapkan untuk memantau Elasticsearch status dengan memanggil /_cluster/health API bersama elastic pengguna. Jika API gagal merespons, kontainer akan dimulai ulang.
2. Kibana
a. Konfigurasi Dasar
Kibana dikonfigurasi untuk terhubung Elasticsearch dan berjalan dalam kontainer Docker dengan parameter berikut:
Gambar: Gambar resmi Kibana, versi
8.17.2, digunakan.Elasticsearch Koneksi: Alamat Elasticsearch diatur ke
http://elasticsearch:9200.Otentikasi: Kibana menggunakan
kibana_userkata sandiYVG6PKplG6ugGOwuntuk terhubung Elasticsearch.
b. Ports dan Jaringan
Ports: Port
5601dipetakan dari kontainer ke host untuk mengakses Kibana antarmuka.Jaringan: Kibana terhubung ke
elk-network.
c. Ketergantungan pada Elasticsearch
Kibana hanya dimulai setelah Elasticsearch siap, memastikan koneksi yang sukses antara kedua layanan.
3. Volume dan Jaringan
a. Volume
elasticsearch-data: Volume ini digunakan untuk menyimpan Elasticsearch data, memastikan persistensi data bahkan jika wadahnya dihapus.
b. Jaringan
elk-network: Jaringan
bridgedibuat untuk menghubungkan Elasticsearch dan Kibana layanan.
4. Cara Penggunaan
a. Memulai Layanan
Untuk memulai Elasticsearch dan Kibana, jalankan perintah berikut:
docker-compose up -d
b. Membuat Kibana Pengguna(Jika Diperlukan)
Jika Anda ingin menggunakan pengguna khusus untuk Kibana, Anda dapat membuatnya dengan perintah berikut:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Untuk menggunakan a token sebagai ganti kata sandi, Anda dapat membuatnya dengan perintah berikut:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Pemecahan Masalah
Jika Anda mengalami kesalahan, Anda dapat memeriksa log kontainer menggunakan:
docker logs elasticsearch docker logs kibanaUntuk memulai ulang Kibana:
Isi Lengkap Docker Compose File
Berikut ini adalah isi lengkap berkasnya 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
Kesimpulan
Dengan Docker Compose konfigurasi ini, Anda dapat dengan mudah menerapkan Elasticsearch dan Kibana memenuhi kebutuhan pencarian, analisis, dan visualisasi data Anda. Sesuaikan dan perluas konfigurasi ini agar sesuai dengan persyaratan khusus proyek Anda!

