Docker Compose kanggo Elasticsearch & Kibana: Setup & Konfigurasi

Ing artikel iki, kita bakal njelajah cara nyebarake  Elasticsearch  lan  Kibana nggunakake Docker Compose. Iki minangka rong komponen utama ELK Stack( Elasticsearch, Logstash, Kibana), mbantu sampeyan nggoleki, nganalisa, lan nggambarake data kanthi efektif. Ing ngisor iki ana konfigurasi rinci lan cara kerja saben komponen.

1. Elasticsearch

a. Konfigurasi dhasar

Elasticsearch dikonfigurasi kanggo mbukak ing wadhah Docker kanthi paramèter ing ngisor iki:

  • Gambar: Gambar  resmi Elasticsearch, versi  8.17.2, digunakake.

  • Mode simpul tunggal:  Diaktifake liwat variabel lingkungan  discovery.type=single-node.

  • Keamanan:  Keamanan X-Pack diaktifake( xpack.security.enabled=true), lan sandhi pangguna  elastic  disetel menyang  YVG6PKplG6ugGOw.

  • Jaringan:  Elasticsearch ngrungokake kabeh antarmuka jaringan( network.host=0.0.0.0).

  • Memori JVM:  Dikonfigurasi karo  -Xms1g  (memori wiwitan) lan  -Xmx1g  (memori maksimal).

b. Ports lan Volumes

  • Ports:  Port  9200  (HTTP) lan  9300  (komunikasi internal) dipetakan saka wadhah menyang host.

  • Volumes:  Data Elasticsearch disimpen ing  elasticsearch-data  volume.

c. Priksa kesehatan

A healthcheck disetel kanggo ngawasi Elasticsearch status dening nelpon  /_cluster/health  API karo  elastic pangguna. Yen API gagal nanggapi, wadhah bakal diwiwiti maneh.

2. Kibana

a. Konfigurasi dhasar

Kibana dikonfigurasi kanggo nyambung Elasticsearch lan mbukak ing wadhah Docker kanthi paramèter ing ngisor iki:

  • Gambar: Gambar  resmi Kibana, versi  8.17.2, digunakake.

  • Elasticsearch Sambungan:  Alamat Elasticsearch disetel menyang  http://elasticsearch:9200.

  • Otentikasi:  Kibana nggunakake tembung  kibana_user  sandhi  YVG6PKplG6ugGOw  kanggo nyambung menyang Elasticsearch.

b. Ports lan Jaringan

  • Ports:  Port  5601  dipetakan saka wadhah menyang host kanggo ngakses Kibana antarmuka.

  • Jaringan:  Kibana disambungake menyang  elk-network.

c. Ketergantungan ing Elasticsearch

Kibana mung diwiwiti sawise Elasticsearch siap, njamin sambungan sukses antarane loro layanan.

3. Volume lan Jaringan

a. Volume

  • elasticsearch-data:  Volume iki digunakake kanggo nyimpen Elasticsearch data, mesthekake kegigihan data sanajan wadhah wis dibusak.

b. Jaringan

  • elk-network:  Jaringan  bridge  digawe kanggo nyambungake Elasticsearch lan Kibana layanan.


4. Carane Gunakake

a. Miwiti Layanan

Kanggo miwiti Elasticsearch lan Kibana, jalanake printah ing ngisor iki:

docker-compose up -d

b. Nggawe Kibana Panganggo(Yen Perlu)

Yen sampeyan pengin nggunakake pangguna darmabakti kanggo Kibana, sampeyan bisa nggawe karo printah ing ngisor iki:

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
c. Nggawe Token(Yen Nggunakake Token)

Kanggo nggunakake token tinimbang sandhi, sampeyan bisa nggawe siji nganggo printah ing ngisor iki:

docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token

5. Ngatasi masalah

  • Yen sampeyan nemoni kesalahan, sampeyan bisa mriksa log wadhah nggunakake:

    docker logs elasticsearch 
    docker logs kibana
  • Kanggo miwiti maneh Kibana:

    docker-compose down kibana && docker-compose up -d kibana

Isi Lengkap Docker Compose File

Ing ngisor iki isi lengkap  docker-compose-els.yml  file kasebut:

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

Kanthi Docker Compose konfigurasi iki, sampeyan bisa kanthi gampang nyebarake Elasticsearch lan Kibana nyedhiyakake kabutuhan telusuran, analisis, lan visualisasi data. Ngatur lan ngluwihi konfigurasi iki kanggo pas karo syarat tartamtu saka project!