オンライン・ログ分析の問題は、問題を特定する必要がいったんサービスは、複数のノードを展開していきますので、分散システムでは、非常に便利な、あなたがEFKログ収集を使用する必要があり、この時間をログ取得のためのログインサーバーの1が必要ですツール。
アプリケーションサーバFilebeatで展開、我々はログにログファイルを出力しますElasticSearchに送られ、Logstashに送られLogstashの解像度フォーマット経由でログインし、Kibanaが繰り広げられ、最後に通過します。EFK基本的なアーキテクチャは以下のように:
この記事では、ドッキングウィンドウドッキングウィンドウ-構成し、展開環境ELKごとの使用であり、EFKとしてコンポーネントのバージョン7.5.1を選択します。
誰もあればもちろん、docker
、docker-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-CN
kibanaプロパティの後には、動作するように簡単で、完成する予定、主に私の英語は〜非常に良いではありません
- 一時停止のコンテナ
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コードをスキャンしてください。「進む」プラス「見た目」は、良い習慣を形成するために!のは、あなたの次の時間を見てみましょう!
スキャンコード懸念マイクロチャネル公共番号やようこそ個人のブログ