برای دپلوی سرویس elasticsearch بر بستر Docker لازم است تا سرویس docker و برنامه docker-cmpose نصب باشند. نحوه نصب docker و docker-compose در مطلب نصب Docker روی Debian 12 bookworm قبلا توضیح داده شده است.

در ادامه راه اندازی فایل docker-compose.yml ونحوه پیکربندی سرویس ارائه می شود.

deploy elastic kibana

راه اندازی docker-compose.yml

راه اندازی سرویس elastic به صورت تک نود ساده و راحت می باشد وبه صورت زیر قابل اجرا می باشد. فایل docker-compose.yml:

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.13.4
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=true
      - xpack.security.transport.ssl.enabled=false
      - ELASTIC_USERNAME=elastic
      - ELASTIC_PASSWORD=<password>
    ports:
      - 9200:9200
    volumes:
      - /data:/usr/share/elasticsearch/data
    networks:
      - elastic

  kibana:
    image: docker.elastic.co/kibana/kibana:8.13.4
    container_name: kibana
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - ELASTICSEARCH_USERNAME=elastic
      - ELASTIC_PASSWORD=<password>
      - ELASTICSEARCH_SERVICE_TOKEN=<token>
    ports:
      - 5601:5601
    networks:
      - elastic

networks:
    elastic:
        driver: bridge

در ادامه با دستور زیر سرویس اجرا می شود:

docker-compose up -d

در این مرحله باید لاگ kibana را بررسی کنیم، به نظر به دلیل دسترسی نداشتن با خطای زیر مواجه شده است:

"value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function."

پس با دستور زیر می توان توکن را برای kibana تولید کرد:

sudo docker exec -it elasticsearch elasticsearch-service-tokens create elastic/kibana kibana-system

سپس، توکن ارائه شده را در env ها فایل docker-compose.yml برای سرویس kibana به ترتیب زیر قرار داده:

kibana:
    image: docker.elastic.co/kibana/kibana:8.13.4
    container_name: kibana
    environment:
        - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
        - ELASTICSEARCH_SERVICE_TOKEN=<token>
    ports:
        - 5601:5601
    networks:
        - elastic

و با دستور زیر اجرا می شود:

docker-compose restart kibana

در پابان با زدن آدرس 'http://127.0.0.1:5601' باید بتوان kibana را مشاهده کرد.

منابع:

- Running Kibana, Elastic, and APM with Docker Compose

برچسب ها: docker cluster devops opensource elasticsearch elastic kibana