Docker Compose & Elasticsearch: Kibana セットアップと構成

Elasticsearch  この記事では、 のデプロイ方法と  Kibana 使用 方法について説明します  Docker Compose 。これらは ELK スタックの 2 つの主要コンポーネント( Elasticsearch 、Logstash、 Kibana) であり、データを効果的に検索、分析、視覚化するのに役立ちます。以下に、詳細な構成と各コンポーネントの動作を示します。

1. Elasticsearch

a. 基本構成

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  (最大メモリ)  で構成されます 。

b. Ports および Volumes

  • Ports:  ポート  9200  (HTTP) と  9300  (内部通信) はコンテナからホストにマッピングされます。

  • Volumes:  Elasticsearch データは  elasticsearch-data  ボリュームに保存されます。

c. ヘルスチェック

ヘルスチェックは、ユーザー  で API  Elasticsearch を呼び出して の状態を 監視するように設定されています 。API が応答しない場合は、コンテナが再起動します。 /_cluster/health elastic

2. Kibana

a. 基本構成

Kibana Elasticsearch 次のパラメータを使用して Docker コンテナに 接続し、実行するように構成されています。

  • 画像:  公式 Kibana 画像バージョン  8.17.2 が使用されます。

  • Elasticsearch 接続:  アドレス Elasticsearch は に設定されています  http://elasticsearch:9200

  • 認証:  Kibana は  kibana_user  とパスワードを 使用して YVG6PKplG6ugGOw  に接続します Elasticsearch。

b. Ports およびネットワーク

  • Ports: インターフェースにアクセスするために、 ポート  5601  がコンテナからホストにマッピングされます Kibana。

  • ネットワーク:  Kibana はに接続されています  elk-network

c. 依存 Elasticsearch

Kibana は準備完了後にのみ起動し Elasticsearch 、2 つのサービス間の接続が成功することを保証します。

3. ボリュームとネットワーク

a. ボリューム

  • elasticsearch-data:  このボリュームは Elasticsearch データを格納するために使用され、コンテナが削除された場合でもデータの永続性が確保されます。

b. ネットワーク

  • elk-network: 接続してサービスを提供するために  ネットワーク  bridge  が作成されます 。 Elasticsearch Kibana


4. 使い方

a. サービスの開始

Elasticsearch および を 起動するには Kibana 、次のコマンドを実行します。

docker-compose up -d

b. Kibana ユーザーの作成(必要な場合)

専用のユーザーを使用する場合は Kibana 、次のコマンドで作成できます。

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
c. 作成 Token (トークンを使用する場合)

パスワードの代わりにを使用するには 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 down kibana && docker-compose up -d 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