Docker Compose Elasticsearch & için Kibana: Kurulum ve Yapılandırma

Elasticsearch  Bu makalede, 'nin nasıl dağıtılacağını ve  Kibana kullanılacağını inceleyeceğiz  Docker Compose. Bunlar, ELK Stack'in( Elasticsearch, Logstash, Kibana) iki temel bileşenidir ve verileri etkili bir şekilde aramanıza, analiz etmenize ve görselleştirmenize yardımcı olur. Aşağıda ayrıntılı yapılandırmalar ve her bir bileşenin nasıl çalıştığı gösterilmektedir.

1. Elasticsearch

a. Temel Yapılandırma

Elasticsearch Aşağıdaki parametrelerle bir Docker konteynerinde çalışacak şekilde yapılandırılmıştır:

  • Resim:  Resmi Elasticsearch resim olan version  8.17.2 kullanılmıştır.

  • Tek düğüm modu:  Ortam değişkeni aracılığıyla etkinleştirilir  discovery.type=single-node.

  • Güvenlik:  X-Pack güvenliği etkinleştirildi( xpack.security.enabled=true) ve kullanıcı için parola  elastic  ayarlandı  YVG6PKplG6ugGOw.

  • Ağ:  Elasticsearch tüm ağ arayüzlerini dinler( network.host=0.0.0.0).

  • JVM Belleği: -Xms1g  (başlangıç ​​belleği) ve  -Xmx1g  (maksimum bellek)  ile yapılandırılmıştır  .

bant Ports ​ Volumes

  • Ports:  Port  9200  (HTTP) ve  9300  (dahili iletişim) konteynerdan ana bilgisayara eşlenir.

  • Volumes:  Elasticsearch verileri birimde saklanır  elasticsearch-data  .

c. Sağlık kontrolü

 Bir sağlık kontrolü, API'yi kullanıcıyla  Elasticsearch çağırarak durumunu  izlemek için ayarlanır. API yanıt vermezse, kapsayıcı yeniden başlatılır. /_cluster/health elastic

2. Kibana

a. Temel Yapılandırma

Kibana Elasticsearch Aşağıdaki parametrelerle bir Docker konteynerine bağlanıp çalışacak şekilde yapılandırılmıştır:

  • Resim:  Resmi Kibana resim olan version  8.17.2 kullanılmıştır.

  • Elasticsearch Bağlantı:  Adres Elasticsearch olarak ayarlandı  http://elasticsearch:9200.

  • Kimlik Doğrulama:  Kibana   bağlanmak için kibana_user  şifreyi  kullanır. YVG6PKplG6ugGOw Elasticsearch

b. Ports ve Ağlar

  • Ports: Arayüze erişmek için,  port  5601  konteynerdan ana bilgisayara eşlenir Kibana.

  • Ağlar:  Kibana'ya bağlıdır  elk-network.

c. Bağımlılık Elasticsearch

Kibana yalnızca Elasticsearch hazır olduktan sonra başlar ve iki hizmet arasında başarılı bir bağlantı sağlar.

3. Hacim ve Ağ

a. Hacim

  • elasticsearch-data:  Bu birim, verileri depolamak için kullanılır Elasticsearch ve konteyner silinse bile verilerin kalıcılığını sağlar.

b. Ağ

  • elk-network:  Bir  ağ, servisleri bridge  birbirine bağlamak için oluşturulur. Elasticsearch Kibana


4. Nasıl Kullanılır

a. Hizmetlerin Başlatılması

Başlatmak için Elasticsearch ve Kibana aşağıdaki komutu çalıştırın:

docker-compose up -d

b. Bir Kibana Kullanıcı Oluşturma(Gerekirse)

Eğer için özel bir kullanıcı kullanmak istiyorsanız Kibana, aşağıdaki komutla bir tane oluşturabilirsiniz:

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Token c.(Token Kullanılıyorsa) Oluşturma

Parola yerine bir kullanmak için token aşağıdaki komutla bir tane oluşturabilirsiniz:

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

5. Sorun giderme

  • Hatalarla karşılaşırsanız, konteyner günlüklerini şu şekilde kontrol edebilirsiniz:

    docker logs elasticsearch 
    docker logs kibana
  • Yeniden başlatmak için Kibana:

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

Docker Compose Dosyanın Tam İçeriği

Dosyanın tam içeriği aşağıdadır  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

Çözüm

Bu Docker Compose yapılandırmayla, veri arama, analiz ve görselleştirme ihtiyaçlarınızı kolayca dağıtabilir Elasticsearch ve Kibana karşılayabilirsiniz. Bu yapılandırmayı projenizin özel gereksinimlerine uyacak şekilde özelleştirin ve genişletin!