ამ სტატიაში ჩვენ განვიხილავთ როგორ განვათავსოთ Elasticsearch და Kibana გამოიყენოთ Docker Compose. ეს არის ELK Stack-ის ორი ძირითადი კომპონენტი( Elasticsearch, Logstash, Kibana), რომელიც გეხმარებათ მონაცემების ეფექტურად ძიებაში, გაანალიზებაში და ვიზუალიზაციაში. ქვემოთ მოცემულია დეტალური კონფიგურაციები და როგორ მუშაობს თითოეული კომპონენტი.
1. Elasticsearch
ა. ძირითადი კონფიგურაცია
Elasticsearch კონფიგურირებულია Docker კონტეინერში გასაშვებად შემდეგი პარამეტრებით:
გამოსახულება: გამოყენებულია ოფიციალური Elasticsearch სურათი, ვერსია .
8.17.2ერთი კვანძის რეჟიმი: ჩართულია გარემოს ცვლადის მეშვეობით
discovery.type=single-node.უსაფრთხოება: X-Pack-ის უსაფრთხოება ჩართულია(
xpack.security.enabled=true) და მომხმარებლისთვის პაროლიelasticდაყენებულიაYVG6PKplG6ugGOw.ქსელი: Elasticsearch უსმენს ქსელის ყველა ინტერფეისს(
network.host=0.0.0.0).JVM მეხსიერება: კონფიგურირებულია
-Xms1g(საწყისი მეხსიერებით) და-Xmx1g(მაქსიმალური მეხსიერებით).
ბ. Ports და Volumes
Ports: პორტი
9200(HTTP) და9300(შიდა კომუნიკაცია) დატანილია კონტეინერიდან ჰოსტამდე.Volumes: Elasticsearch მონაცემები ინახება მოცულობაში
elasticsearch-data.
გ. ჯანმრთელობის შემოწმება
ჯანმრთელობის შემოწმება დაყენებულია Elasticsearch მომხმარებლის სტატუსის მონიტორინგისთვის /_cluster/health API-ზე დარეკვით elastic. თუ API ვერ პასუხობს, კონტეინერი გადაიტვირთება.
2. Kibana
ა. ძირითადი კონფიგურაცია
Kibana Elasticsearch კონფიგურირებულია Docker კონტეინერში დასაკავშირებლად და გასაშვებად შემდეგი პარამეტრებით:
გამოსახულება: გამოყენებულია ოფიციალური Kibana სურათი, ვერსია .
8.17.2Elasticsearch კავშირი: მისამართი Elasticsearch დაყენებულია
http://elasticsearch:9200.ავთენტიფიკაცია: Kibana იყენებს
kibana_userპაროლსYVG6PKplG6ugGOw, რომ დაუკავშირდეს Elasticsearch.
ბ. Ports და ქსელები
Ports: პორტი
5601დატანილია კონტეინერიდან ჰოსტამდე Kibana ინტერფეისის წვდომისთვის.ქსელები: კიბანა დაკავშირებულია
elk-network.
გ. დამოკიდებულებაზე Elasticsearch
Kibana იწყება მხოლოდ Elasticsearch მზადყოფნის შემდეგ, რაც უზრუნველყოფს ორ სერვისს შორის წარმატებულ კავშირს.
3. მოცულობა და ქსელი
ა. მოცულობა
elasticsearch-data: ეს ტომი გამოიყენება Elasticsearch მონაცემების შესანახად, რაც უზრუნველყოფს მონაცემთა მდგრადობას კონტეინერის წაშლის შემთხვევაშიც კი.
ბ. ქსელი
elk-network: ქსელი
bridgeიქმნება დასაკავშირებლად Elasticsearch და Kibana სერვისებისთვის.
4. როგორ გამოვიყენოთ
ა. სერვისების დაწყება
დასაწყებად Elasticsearch და Kibana აწარმოეთ შემდეგი ბრძანება:
docker-compose up -d
ბ. მომხმარებლის შექმნა Kibana(საჭიროების შემთხვევაში)
თუ გსურთ გამოიყენოთ გამოყოფილი მომხმარებელი Kibana, შეგიძლიათ შექმნათ ერთი შემდეგი ბრძანებით:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
პაროლის ნაცვლად გამოსაყენებლად token, შეგიძლიათ შექმნათ ის შემდეგი ბრძანებით:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. პრობლემების მოგვარება
თუ შეცდომებს წააწყდებით, შეგიძლიათ შეამოწმოთ კონტეინერის ჟურნალი:
docker logs elasticsearch docker logs kibanaგადატვირთვისთვის Kibana:
Docker Compose ფაილის სრული შინაარსი
ქვემოთ მოცემულია ფაილის სრული შინაარსი 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
დასკვნა
ამ Docker Compose კონფიგურაციით, თქვენ შეგიძლიათ მარტივად განათავსოთ Elasticsearch და Kibana მოემსახუროთ თქვენი მონაცემთა ძიების, ანალიზისა და ვიზუალიზაციის საჭიროებებს. დააკონფიგურირეთ და გააფართოვეთ ეს კონფიგურაცია თქვენი პროექტის სპეციფიკური მოთხოვნების შესაბამისად!

