ELK Docker イメージで elasticsearch をアップグレードする方法

okwaves2024-01-25  8

次のコマンドを使用して、Linux サーバーに Elk Docker イメージをインストールしました。

sudo docker pull sebp/elk

これにより、elk docker イメージの最新バージョン (7.8.0) がプルされ、スタック内の各サービス (elasticsearch、logstash、kibana) のバージョンも 7.8.0 になります。

セキュリティ上の理由から、elasticsearch を 7.9.0 にアップグレードする必要があります。 sebp/elk docker イメージを使用し続けながらこれを行うにはどうすればよいですか?

1

これは、Elasticsearch、Logstash、Kibana を別のコンテナー (場合によっては mana) で実行する十分な理由になります。Docker Compose によって生成されます。その後、必要なソフトウェアの特定のユニットのイメージ バージョンを更新するだけです。そのイメージの Dockerfile を取得し、そこにインストールされているバージョンを更新し、docker build を再実行して更新する必要があります。

– デヴィッド・メイズ

2020 年 9 月 3 日 16:45

また、Kibana のマイナー バージョンは Elasticsearch のマイナー バージョンと一致する必要があります。elasticsearch を 7.9.X にアップグレードする場合は、Kibana も 7.9.X にアップグレードする必要があります。

– レアンドロイプ

2020 年 9 月 3 日 18:08

イメージのバージョンを変更し、「docker-compose up」で再起動するだけでうまくいきました。これは正式なアップグレード推奨ではないことに注意してください。

– ロビークール

2021 年 7 月 20 日 13:45



------------------------

Elk はパッケージを起動し、3 つのサービスをすべて実行し、デフォルトでそれらをリンクします。この設定では、elasticsearch のみを分割してアップグレードすることはできません。

docker-compose を使用して、3 つのサービスすべてを個別に実行することをお勧めします。これにより、各サービスに選択したイメージを含めることができます。

サンプル docker-compose のためのあなたの参照:

version: '3.2'

services:
  elasticsearch:
    image: IMAGE_GOES_HERE
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      ELASTIC_PASSWORD: changeme
      # Use single node discovery in order to disable production mode and avoid bootstrap checks
      # see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
      discovery.type: single-node
    networks:
      - elk

  logstash:
    image: IMAGE_GOES_HERE
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    image: IMAGE_GOES_HERE
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch:

2

次のエラーが発生します: >エラー: elasticsearch のサービス elasticsearch を開始できません: OCI ランタイムの作成に失敗しました:container_linux.go:344:コンテナ プロセスの開始により "process_linux.go:424:コンテナの初期化により \"rootfs_linux.go:58:マウント \\\" が発生しました。 /local/home/user/elasticsearch/config/elasticsearch.yml\\\" rootfs \\\"/net/server/.../merged\\\" にコピーします。 \\\"/net/server/.../usr/share/elasticsearch/config/elasticsearch.yml\\\"原因は「そうではない」ディレクトリ\\\"\"": 不明: ディレクトリをファイルにマウントしようとしていますか (またはその逆)?

– アダム・ザーン

2020 年 9 月 9 日 13:54

.yml ファイルがまだ存在しない場合は、ディレクトリとして作成されるようです。

– アダム・ザーン

2020 年 9 月 9 日 14:13

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。