EFK本物1 - ビルドにベース環境

ファイル

オンライン・ログ分析の問題は、問題を特定する必要がいったんサービスは、複数のノードを展開していきますので、分散システムでは、非常に便利な、あなたがEFKログ収集を使用する必要があり、この時間をログ取得のためのログインサーバーの1が必要ですツール。

アプリケーションサーバFilebeatで展開、我々はログにログファイルを出力しますElasticSearchに送られ、Logstashに送られLogstashの解像度フォーマット経由でログインし、Kibanaが繰り広げられ、最後に通過します。EFK基本的なアーキテクチャは以下のように:
ファイル

この記事では、ドッキングウィンドウドッキングウィンドウ-構成し、展開環境ELKごとの使用であり、EFKとしてコンポーネントのバージョン7.5.1を選択します。

誰もあればもちろん、dockerdocker-compose非常に精通していない、あなたは誰のために用意し、私の前の二つの記事を見ることができます。

本当に私はまた、対応するインストールパッケージをダウンロードすることができ、展開ドッカ単語を使用して、手動で同様の基本的構成を展開する必要はありません。

インストールの設定

elasticsearch

elasticsearchをインストールする前に、次のシステム変数を設定します

  • 変更は/etc/sysctl.conf、以下の構成が最後に追加されます
    vm.max_map_count = 655360
  • 変更は/etc/security/limits.conf、以下の設定を追加します
*            soft    memlock          unlimited
*           hard    memlock          unlimited
*           hard    nofile           65536
*           soft    nofile           65536复制代码

  • 変更は/etc/security/limits.d/20-nproc.conf、以下の設定を追加します
*          soft    nproc     4096
root       soft    nproc     unlimited复制代码

  • スタートelasticsearch一時的なコンテナ
    docker run --rm --name es -p9200:9200 -p9300:9300 -e discovery.type=single-node elasticsearch:7.5.1
  • 輸出elasticsearchプロフィール
    docker cp fbce586c8a56:/usr/share/elasticsearch/config/elasticsearch.yml /app/elk/elasticsearch/conf/elasticsearch.yml
  • エスは、構成ファイルを変更します
cluster.name: "elk-cluster"
network.host: 0.0.0.0
bootstrap.memory_lock: true
discovery.type: single-node复制代码

  • ログファイル作成ESフォルダとデータフォルダ、およびフォルダの承認
mkdir -p /app/elk/elasticsearch/logs
mkdir -p /app/elk/elasticsearch/data
chmod -R 777 /app/elk/elasticsearch/logs
chmod -R 777 /app/elk/elasticsearch/data复制代码

  • 一時停止のコンテナ
    docker stop fbce586c8a56

logstash

  • 一時的なコンテナを開始
    docker run --rm --name logstash -p5044:5044 -p9600:9600 logstash:7.5.1
  • [エクスポート]ドッキングウィンドウのプロフィール
    docker cp 5adb0971bb0f:/usr/share/logstash/config /app/elk/logstash
  • logstashデータフォルダを確立し、その認可
mkdir -p /app/elk/logstash/data
chmod -R 777 /app/elk/logstash/data复制代码

  • logstashスタートアップファイルをコピーし、それらを変更
cd /app/elk/logstash/config
cp logstash-sample.conf logstash.conf复制代码

修正logstash.confは、configureの出力

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://172.31.0.207:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}复制代码

一時的にESへのアクセスパスを変更します。

  • 一時停止のコンテナ
    docker stop 5adb0971bb0f

kibana

  • 一時的なコンテナを開始
    docker run --rm --name kibana -p5601:5601 kibana:7.5.1
  • 輸出kibanaプロフィール
    docker cp f21f0f9e0259:/usr/share/kibana/config/kibana.yml /app/elk/kibana/conf/kibana.yml
  • 設定kibanaを変更
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.31.0.207:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN复制代码

セットi18n.locale: zh-CNkibanaプロパティの後には、動作するように簡単で、完成する予定、主に私の英語は〜非常に良いではありません

  • 一時停止のコンテナ
    docker stop f21f0f9e0259

ドッキングウィンドウ、コン

上記の準備の後、我々は書くことができるdocker-composeコンテナの私達のスケジュールを容易にするためのファイルを、キーが起動します。以前財団と、我々は簡単に次のように書かれた内容に応じYMLファイルを書き込むことができます。

version: "3"
services:
  elasticsearch:
    image: docker.io/elasticsearch:7.5.1
    container_name: elasticsearch
    environment:
      - "ES_JAVA_OPTS=-Xms4096m -Xmx4096m -Xmn1300m"
    volumes:
      - /app/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /app/elk/elasticsearch/data:/usr/share/elasticsearch/data:rw
      - /app/elk/elasticsearch/logs:/usr/share/elasticsearch/logs:rw
    ports:
      - "9200:9200"
      - "9300:9300"
    restart: always

  kibana:
    image: docker.io/kibana:7.5.1
    container_name: kibana
    volumes:
      - /app/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    restart: always

  logstash:
    image: logstash:7.5.1
    container_name: logstash
    command: logstash -f /usr/share/logstash/config/logstash.conf
    volumes:
      - /app/elk/logstash/config:/usr/share/logstash/config
      - /app/elk/logstash/data:/usr/share/logstash/data
    ports:
      - "9600:9600"
      - "5044:5044"
    depends_on:
      - elasticsearch
    restart: always复制代码

、サーバーにアップロードされたファイルをドッキングウィンドウ-構成するサービスのドッキングウィンドウを起動しますdocker-compose -f elk.yml up -d
ファイル

起動された後、完全なアクセスkibanaアドレスはhttp://172.31.0.207:5601/、通常のアクセスを確認します

安全認証

私たちは、誰もがアクセスできるようにすることを、kibanaにログインするためのパスワードを必要とせず、データを変更することができヘラジカ環境を導入しました。我々はパスワードを追加kibanaする必要があるので、あなたは彼らが動作する前にログインする必要があります。

主にelasticsearchを使用すると、許可検証機能としてxpackています。手順は次のとおりです。

  • エスは、外部の設定ファイルを変更し/app/elk/elasticsearch/conf/elasticsearch.yml、アクセス権の検証を開きます
xpack.security.enabled: true复制代码

  • 再起動elasticsearchサービス
    docker-compose -f elk.yml restart elasticsearch
  • ビルトインアカウントのパスワードを設定した容器内へのエス
docker exec -it  elasticsearch /bin/bash
cd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive复制代码

ファイル

  • 構成ファイルを変更Kibana/app/elk/kibana/conf/kibana.yml
elasticsearch.username: "elastic"
elasticsearch.password: "xxxxxx"复制代码

  • 重启kibana
    docker-compose -f elk.yml restart kibana
  • 再訪kibana、および上記の弾性ログインアカウントのセットを使用して
    ファイル
    、我々は成功しELK安全認証に追加され、この時点では、展開、運用環境で使用しても安全です!

まあ、女性と友人は、あなた以上のすべてでこの問題の内容は、私たちが次のビジネスシステムとアクセスELKログの解析形式を記録します、持続的注意を歓迎しました。

あなたはあなたを助けるために、この記事を見つけた場合は、懸念を追加するには、以下のQRコードをスキャンしてください。「進む」プラス「見た目」は、良い習慣を形成するために!のは、あなたの次の時間を見てみましょう!ファイル

スキャンコード懸念マイクロチャネル公共番号やようこそ個人のブログ

おすすめ

転載: juejin.im/post/5e16e8d2e51d453cbe73cee9