ドッカーは、オペレーティング・システム・レベルの仮想化ソフトウェアパッケージは、ソフトウェアと呼ばれるコンテナの配信が付属して使うサービス(PaaSの)製品としてのプラットフォームです。コンテナは、互いに分離と一緒に独自のソフトウェア、ライブラリ、およびコンフィギュレーションファイルを結合し、彼らは明確に定義されたチャネルを介して相互に通信することができます。単一のオペレーティング・システム・カーネルによってすべてのコンテナが実行し、そのための仮想マシンよりも軽くします。現在のITアーキテクチャの多くでは、使用してドッカーは、ますます人気が高まっています。これは良いですが、複数のノードを超えるコンテナの広がりが複数存在する場合、彼らの健康状態を追跡する方法、メモリ、CPU、およびメモリの使用状況、ネットワークの負荷などを発見することが必要です。
これらの指標を追跡するには、その後の分析と処理のためのコンテナデータを保存するために効果的な監視ソリューションとバックエンドストレージの番号が必要です。ドッカーコンテナの生産の管理数千人は、ドッカーコンテナの監視は、当社のクラスタ管理プロセスに重要な追加されます。弾性スタックは、私たちはドッカーを監視するための便利な機能を提供します。
今日の記事では、我々は、ドッカーモニタにログインする方法を説明します。次のように私たちの構成は次のとおりです。
ElasticsearchとKibana:上記の、私たちは、ホストOS弾性スタック内のレーンを設置しました。我々はまた、独自のfilebeatドッキングウィンドウをインストールします。
インストール
インストールドッカー
ドッカーは、オペレーティングシステムに応じてインストール:
- Macの場合:HTTPS://hub.docker。
- Ubuntuの場合:https://phoenixnap.com/kb/how-to-install-docker-on-ubuntu-18-04
弾性スタック
「それをElasticsearchとKibanaをインストールしていない開発者のために、あなたは私の以前の記事を参照することができます:ルーキースタートガイド弾性 ElasticsearchとKibanaをインストールします」。我々はElasticsearchをインストールすると、我々は設定/ elasticsearch.yml以下の設定を行う必要があります。
node.name: node1
network.host: _site_
discovery.seed_hosts: ["192.168.43.220"]
cluster.initial_master_nodes: ["node1"]
注192.168.43.220が自分のコンピュータのプライベートIPアドレスであるdiscrovery.seed_hosts上記IPアドレスのそれ。我々上記network.hostセット_site_では、私たちのElasticsearchは、当社のプライベートIPアドレスにバインドされること。参照してくださいnetwork.host。私たちは、以下の方法により得ることができる。このプライベートIPアドレス:
ifconfig | grep 192
修正後、我々はElasticsearchを再起動して、我々は見ることができます:
私たちは、上記のアドレスでElasticsearchの開始を見つけることができます。
同様に、我々はまた、私たちのKibanaを設定する必要があります。私たちは、設定/ kibana.ymlを変更します。
server.host: "192.168.43.220"
elasticsearch.hosts: ["http://192.168.43.220:9200"]
私たちは、上記のIPアドレス192.168.43.220を置き換えるために、コンピュータの実際のIPアドレスに応じて必要があります。等の変更、後に、私たちはkibanaを再起動します。
我々は上記の構成を修正した場合、我々はブラウザでKibanaインタフェースを見ることができます。注:上記のIPアドレスが自分のコンピュータのIPアドレスで置き換える必要があります。
Filebeatドッカー
Filebeatは弾性ドッカードッカーレジストリから画像を得ることができます。基本的なイメージがあるのCentOS:7。
公開されたすべての画像とラベルのドッキングウィンドウのリストができwww.docker.elastic.co GETで。
これらの画像は、弾性フリーライセンスの下で使用することができます。彼らは、オープンソースとフリービジネス機能へのアクセスだけでなく、有料のビジネス機能が含まれています。始まった30日間の試用すべてのビジネス機能を支払うことをしようとするが。弾性許可レベルの詳細については、「参照購読」ページを。
ダウンロード画像
単純にドッキングウィンドウプルコマンド弾性ドッカーレジストリを発行するようにドッカーを取得Filebeat。
docker pull docker.elastic.co/beats/filebeat:7.6.0
$ docker pull docker.elastic.co/beats/filebeat:7.6.0
7.6.0: Pulling from beats/filebeat
c808caf183b6: Already exists
6e4ed7f6b86b: Pull complete
f04c35d0ab5f: Pull complete
5e59ec2a38db: Pull complete
827556baec23: Pull complete
79d4dc2f12c1: Pull complete
f992afe857d6: Pull complete
Digest: sha256:139ccd9e6585a6e2f375367834afe46fadf2525425f5e436fe5d1455597d16d6
Status: Downloaded newer image for docker.elastic.co/beats/filebeat:7.6.0
docker.elastic.co/beats/filebeat:7.6.0
また、あなたは他のドッカー画像は、Apache 2.0ライセンスの下で利用可能な機能のみを含んでダウンロードすることができます。ダウンロードの画像に、ご覧くださいwww.docker.elastic.coを。我々はfilebeat 7.6.0バージョンをダウンロードして上記で。このバージョンでは、私たちのElasticsearchのバージョンと一貫性が必要です。あなたはそれらのバージョンに応じて上記のコマンドのニーズを変更することができます。
ファイル名を指定して実行Filebeatのセットアップ
Filebeatモードと負荷の可視化、ダッシュボード、および機械学習の操作を実行するインデックスを作成するために、setupコマンドを使用します。次のコマンドを実行します。
docker run \
docker.elastic.co/beats/filebeat:7.6.0 \
setup -E setup.kibana.host=kibana:5601 \
-E output.elasticsearch.hosts=["elasticsearch:9200"]
上記では、我々は彼らのfilebeatのバージョンに応じて上記情報の修正バージョンを必要とします。また、Elasticsearchの実際のポートアドレスに応じて変更する必要があります。9000 192.168.43.220:9200に修正する必要があります。例えば、我々の場合のために、我々Elasticsearchは、上記elasticsearchは、ローカルに配置しました。そして、上記のコマンドは次のとおりです。
docker run \
docker.elastic.co/beats/filebeat:7.6.0 \
setup -E setup.kibana.host=192.168.43.220:5601 \
-E output.elasticsearch.hosts=["192.168.43.220:9200"]
ショー上記のコマンドの結果は次のとおりです。
$ docker run \
> docker.elastic.co/beats/filebeat:7.6.0 \
> setup -E setup.kibana.host=192.168.43.220:5601 \
> -E output.elasticsearch.hosts=["192.168.43.220:9200"]
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html
Loaded machine learning job configurations
Loaded Ingest pipelines
あなたと私は同じ出力が表示された場合、それはあなたの設定が正しいことを示しています。上記では、我々は成功しfilebeat setupコマンドを実行しています。このコマンドの詳細は、あなたが私の以前の記事を参照することができ、「ビート:ビートは、チュートリアル(B)をはじめ。」
filebeatにドッキングウィンドウを設定するには
ドッカー画像構成がFilebeatのいくつかの方法を提供します。伝統的な方法は、ボリュームによって提供される構成ファイルをマウントすることですが、また、設定を含むカスタムイメージを作成することができます。
サンプル設定ファイル
の開始点としてサンプル設定ファイルをダウンロードするには:
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.6/deploy/docker/filebeat.docker.yml
次のようにファイルをダウンロードするには、上記filebeat.docker.ymlコマンド:
filebeat.config:
modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
filebeat.autodiscover:
providers:
- type: docker
hints.enabled: true
processors:
- add_cloud_metadata: ~
setup.kibana.host: "192.168.43.220:5601"
output.elasticsearch:
hosts: '${ELASTICSEARCH_HOSTS:elasticsearch:9200}'
username: '${ELASTICSEARCH_USERNAME:}'
password: '${ELASTICSEARCH_PASSWORD:}'
ここでは、例のelasticsearchアドレスのために、私たちはで書かれた文書をfilebeat.ymlたい設定ファイルを変更します。私の場合のために、私は「192.168.43.220:9200」に記入します。そして、ボリュームは、以下のようにして行われるマウント。ご注意:私たちは、上記のアドレスkibanaを記入。
ボリュームインストール構成をマウント
Filebeatがドッカーに配置された方法は、filebeat.docker.yml体積によってマウント提供します。ドッキングウィンドウの実行を使用して、あなたは次のようにマウントするボリュームを指定することができます。
docker run -d \
--name=filebeat \
--user=root \
--volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
--volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
--volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
docker.elastic.co/beats/filebeat:7.6.0 filebeat -e -strict.perms=false \
-E output.elasticsearch.hosts=["elasticsearch:9200"]
当社elasticsearchアドレスその上でelasticsearch手段で。私たちは、私たち自身の状況に応じて交換する必要があります。私の場合のために、私はIPアドレス192.168.43.220、私のElasticsearchに記入し、その後、私たちのコマンドは次のとおりです。
docker run -d \
--name=filebeat \
--user=root \
--volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
--volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
--volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
docker.elastic.co/beats/filebeat:7.6.0 filebeat -e -strict.perms=false \
-E output.elasticsearch.hosts=["192.168.43.220:9200"]
あなたは、端末に上記のコマンドを実行すると、私たちは、ディレクトリにある次のfilebeat.docker.ymlファイルに進み、その後、上記のコマンドを実行する必要があります。
$ docker run -d \
> --name=filebeat \
> --user=root \
> --volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
> --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
> --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
> docker.elastic.co/beats/filebeat:7.6.0 filebeat -e -strict.perms=false \
> -E output.elasticsearch.hosts=["192.168.43.220:9200"]
42bf95b5c41e0b80ca91a3cf9ddde74f474cb7eeeffd34f605ee7bd1be1b8c7e
私たちは、ドッキングウィンドウには、次のコマンドを実行して見ることができます。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42bf95b5c41e docker.elastic.co/beats/filebeat:7.6.0 "/usr/local/bin/dock…" 47 seconds ago Up 47 seconds filebeat
私たちは、コンテナが正常に実行されたfilebeatと呼ばれる見ることができます。我々は、次のコマンドにより、コンテナfilebeat.ymlの内容を表示することができます。
$ docker exec -it filebeat /bin/bash
私たちは名前の容器の中に入るようfilebeatです。
$ docker exec -it filebeat /bin/bash
[root@00bef51abf02 filebeat]#
私たちは、filebeat.ymlファイルを表示するには、次のコマンドで行うことができます。
もちろん、我々は明らかにこのfilebeat.ymlコンテンツを見ることができる上には、我々は成功しにわたり、当社のファイルをマウントしていることを、我々filebeat.docker.yml以上前に、その文書の内容です。
これまでのところ、我々が正常にfilebeatで私たちのドッキングウィンドウを展開しています。
システムログにコンテナの監視
上記では、成功した容器に入っています。私たちは、次のコマンドを実行することができます。
./filebeat modules enable system
だから我々は、我々のシステムモジュールを開始しました。その後、我々は、出口のbashにexitコマンドを入力します。私たちは、コンテナ名は、次のコマンドでfilebeatで再起動することができます。
$ docker restart filebeat
今回は、私たちが発見して私たちのKibanaに集めるシステムログコンテナを見ることができます:
我々は、システムログを望んでいることがわかります。私たちは、container.nameやその他の情報を見ることができます。
多くの人々も直接展開がホストの内部で直接使用することができると感じ、展開filebeatコンテナはそれほど必要ではないと思われます。個人的に、私は、以下の目的であるでドッキングウィンドウでfilebeatを考えます:
- サービスまたは一部のマイクロfilebeatコンテナの展開。だから我々は、これらのサービスを監視することが可能となります。あなたは良い見つけることができる例を。
- モニター内のファイルをホストするために、同時に缶でドッキングウィンドウでfilebeatは経由でマウントすることができます。だから我々は、ホストfilebeat展開する必要はありません。
- ドッキングウィンドウの簡単な展開することでFilebeat、それがドッキングウィンドウ・コンワンクリックの展開により、本番環境とのコラボレーションで、簡単かつelasticsearchドッキングウィンドウです。あなたは良い見つけることができる例を。
参照
【1】https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html
【3】https://github.com/xeraa/java-logging
【4】https://github.com/spinscale/elastic-stack-meetup-stream/