ELKスタックはElasticsearch、Logstash、Kibanaスタックと略され、オープンソースのフル機能の分析スタックはあらゆるマシンデータの分析に役立ちます。 Splunkなどの他の商用データ分析ソフトウェアの代替として使用されます。
ELKスタックがまだ必要な場合は、ELKスタックの導入は必要ないことを願っています。 LinuxオペレーティングシステムでELKスタックを構成するためのチュートリアルをたくさん書いています。
以下のチュートリアルに従って、ELKとは何かを理解できます。
- Ubuntu16.04にELKスタックをインストールする方法
- CentOS 7 /RHEL7にELKスタックをインストールする方法
このチュートリアルでは、ELKスタックをホストオペレーティングシステムにインストールするのではなく、Dockerコンテナで実行する方法を説明します。
DockerNativeCLIまたはDockercomposeのいずれかを使用してELKスタックを実行できます。
前提条件:
必要なのは、システムにインストールされている最新のDockerだけです。 Dockerのバージョンが1.6以降であることを確認してください。ただし、一部の画像、たとえば。 Elasticsearchは、Dockerバージョン1.12.1でのみ公式にサポートされています
- Ubuntu 16.04 / 15.10/14.04にDockerをインストールする方法
- CentOS 7 /RHEL7でDockerをセットアップする方法
- Fedora24/23にDockerをインストールする方法
OpenSUSEにDockerをインストールする方法
ここで使用しているDockerイメージは、Elasticからの公式イメージです
Elasticsearch:
まず、Elastisearchコンテナを実行します。 Elasticsearchイメージは、 / usr / share / elasticsearch / dataのボリュームで構成されます 永続化されたインデックスデータを保持します。したがって、/esdataであるマウントされたボリュームにデータを保存する場合はそのパスを使用します。
/ esdataを作成します Dockerホスト上のディレクトリ。
mkdir / esdata
次のコマンドを実行して、ElasticsearchDockerコンテナを作成します。ホストパスは常にコマンドラインの最初にあり、:、 次に、コンテナの内部ボリューム。
docker run -d --name Elasticsearch -p 9200:9200 -p 9300:9300 -v / esdata:/ usr / share / elasticsearch / data Elasticsearch
CURLを使用して、Elasticsearchから応答を取得します。
curl -X GET http:// localhost:9200 {"name": "Red Skull"、 "cluster_name": "elasticsearch"、 "version":{"number": "2.3.5"、 "build_hash" :"90f439ff60a3c0f497f91663701e64ccd01edbb4"、 "build_timestamp": "2016-07-27T10:36:52Z"、 "build_snapshot":false、 "lucene_version": "5.5.0"}、 "tagline": "You Know、for Search"}
ログスタッシュ:
Elasticsearchが起動して実行されると、Logstashコンテナを実行する準備が整います。 Logstashコンテナーを開始する前に、ビートからログを受信するための構成ファイルを作成します。
Dockerホスト上にディレクトリと構成ファイルを作成します。
mkdir / logstashvi /logstash/logstash.conf
以下の構成ファイルは、ログタイプが「 syslog」のログを受信するためのものです。 」ポート「5044 「そしてそれらをElasticsearchに送信してインデックスを作成します。
input {beats {port => 5044}} filter {if [type] =="syslog" {grok {match => {"message" => "%{SYSLOGLINE}"}}} date {match => [ "timestamp"、 "MMM d HH:mm:ss"、 "MMM dd HH:mm:ss"]}}} output {elasticsearch {hosts => ["elasticsearch:9200"] index => "%{[@ metadata ] [beat]}-%{+ YYYY.MM.dd} "} stdout {codec => rubydebug}}
上記の構成ファイルで、出力セクションが表示されている場合。 Elasticsearchホストはelasticsearch:9200として定義されています 。 Logstashがそのホストを解決してログを送信する方法を考えるかもしれませんが、心配する必要はありません。 Dockerリンク( –リンク )それを処理します。
cd / logstash /
次のコマンドを発行して、Logstashコンテナを作成します。
どこで、
–link Elasticsearch-container-name:hostname-in-config-file
docker run -d --name logstash -p 5044:5044 --link elasticsearch:elasticsearch -v "$ PWD":/ logstash logstash -f /logstash/logstash.conf
キバナ:
Kibanaコンテナーは構成を必要とせず、必要なのはKibanaDockerコンテナーをElasticsearchコンテナーにリンクすることだけです。
docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana
確認:
ユーザーdockerps すべてのコンテナが実行されているかどうかを確認するコマンド。
<前> psCONTAINER IDイメージコマンドCREATED STATUSポートドッキングウィンドウNAMES824dc7ee3c9f kibana「/docker-entrypoint.s」アップ前の時間について時間0.0.0.0:5601->5601/tcp kibana4fa8a72c96a2 logstashについてはについて「/docker-entrypoint.s」 1時間前約1時間アップ0.0.0.0:5044->5044/ tcp logstash4ea93b1d838b Elasticsearch 9.0.0:0.0> 0.0> 0.0>0.0>0.0約1時間前0.0約1時間前9300-> 9300 / tcp ElasticsearchBeatsのインストールと構成:
ビートは、ログを収集してLogstashに送信するものです。ビートのインストールと構成は範囲外です。
- Ubuntu/DebianにFilebeatをインストールして設定する方法
- CentOS 7 /RHEL7にFilebeatをインストールして構成する方法
Kibanaインターフェイスにアクセスする:
すべてのコンテナが期待どおりに稼働している場合は、次のURLにアクセスしてWebインターフェイスにアクセスします。
http:// your-ip-address:5601 /ビートインデックスを設定して、Kibanaを使用したデータの検索を開始します。
[検出]をクリックして、ファイルビートから最新のログの検索を開始します。
今のところ、これですべてです。