Docker ベースの ELK を素早く構築する方法

Docker ベースの ELK を素早く構築する方法

[概要] この記事では、自作の Docker プラットフォームをベースに完全な ELK システムを素早く構築します。関連するイメージは Docker Hub から直接取得され、ログの収集、分析、取得を素早く実現できます。

画像の準備

  • ES イメージを取得します: docker pull elasticsearch:latest
  • Kibana イメージを取得します: docker pull kibana:latest
  • logstash イメージを取得します: docker pull logstash:latest

Elasticsearchを起動する

公式イメージの ES 構成ファイルは /usr/share/elasticsearch/config に保存されます。必要に応じて、このディレクトリをホスト マシンにマップできます。データ ファイル ディレクトリは /usr/share/elasticsearch/data です。ここでは、データ ディレクトリをマップします。コンテナーは、API 対話用にデフォルトでポート 9200 を提供します。

docker run --name elasticsearch \
-v "$PWD/esdata":/usr/share/elasticsearch/data \
-p 9200:9200 \
-d エラスティックサーチ

コンテナが起動したら、それを呼び出して確認できます。

Kibanaを起動する

Kibana は ES 操作の UI として ES コンテナと通信する必要があるため、ここで ES コンテナをリンクし、ページの操作用にポート 5601 を提供する必要があります。

docker run --name kibana \
--link elasticsearch:elasticsearch \
-p 5601:5601 \
-d キバナ

コンテナが起動したら、ブラウザを使用してポート 5601 にアクセスし、kibana ページを表示します。初めてアクセスすると、デフォルトのインデックスが作成されていないというメッセージが表示される場合があります。ここでは、管理ページでデフォルトのインデックスを作成する必要があります。デフォルトのインデックスは通常、logstash-* と呼ばれます。次の図に示すように、デフォルトのインデックスを作成します。

Logstashを起動する

Logstash の主な機能はログを収集することです。このコンポーネントには多くのプラグインがあり、TCP、UDP、JDBC、ファイル、キューなど、ほとんどのログ統合方法をサポートできます。設定は非常にシンプルで、起動方法も非常に簡単です。ここでは、nginx のアクセス ログを例に、logstash が nginx の access.log を読み取り、ログを Elasticsearch に転送するように設定します。

まず、logstash 構成ファイル logstash.conf をコンパイルします。内容は次のようになります。

入力{
 
   ファイル{
 
      パス=>"/tmp/nginx/logs/access.log"
 
   }
 
}出力{
 
   stdout{ } #コンソールにログ出力 #esに出力
 
   エラスティックサーチ
 
      ホスト=>"100.100.x.231"
 
   }
 
}

コンテナを起動します。ここでは、nginx ログを /tmp/nginx/logs/access.log に配置します。コンテナがこのログを読み取るには、ログ ディレクトリをコンテナにマップする必要があります。

docker run –it –rm -v /tmp/nginx/logs/access.log:/tmp/nginx/logs/access.log -f /config-dir/logstash.conf

次に、ログの収集と表示のプロセス全体をテストします。まず、nginx でアクセス ログをいくつか作成します。たとえば、curl を使用して nginx サービス ポートを直接呼び出したり、データを access.log に直接書き込んだりします。この時点で、logstash コンテナに次のログ出力が表示されます。

その後、Kibana ページを開いて、リアルタイムで書き込まれたログ データを確認します。

要約する

Docker コンテナを使用すると、ELK の構築が非常に簡単になります。ELK を使用すると、ログをすばやく分析して取得し、問題を見つけることができます。ELK のコア コントリビューター数名が Elastic という会社を設立し、現在当社と協力関係にあります。オープンソースに基づいて、同社は X-Pack という商用製品もリリースしており、機械学習、グラフ アルゴリズム、セキュリティ テクノロジーの多くの機能強化を提供しています。興味のある学生は自分でそれについて学ぶことができます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker-compose を使用して ELK をデプロイするためのサンプル コード
  • NodeフレームワークをELKに接続する実践の簡単な概要
  • Docker を使用して ELK ログ システムを構築する例
  • ELKの原理と導入の詳細な分析

<<:  Windows 10 での MySQL 5.7.21 インストーラのインストール グラフィック チュートリアル

>>:  Vue 関数のアンチシェイクとスロットリングの正しい使用方法

推薦する

shtml includeの使い方

これを応用することで、ウェブサイトの一部の公開領域を独立したページにすることができ、その後、この技術...

MySQL では SQL ステートメントはどのように実行されますか?

目次1. MySQLアーキテクチャの分析1.1 コネクタ1.2 クエリキャッシュ1.3 アナライザー...

高い同時実行性の下でNginxのパフォーマンスを最適化する方法をまとめます

目次特徴利点インストールとコマンド設定ファイルプロキシモードとリバースプロキシ構成フォワードプロキシ...

Vue要素はテーブルの追加、削除、データの変更を実装します

この記事では、テーブル内のデータを追加、削除、変更するためのvue要素の具体的なコードを参考までに共...

CentOS で MySQL 5.1 を 5.5.36 にアップグレードする

CentOS 6.4 環境で MySQL 5.1 を 5.5.36 にアップグレードする手順を記録し...

MySQLシリーズ マルチテーブル結合クエリ92および99構文例詳細チュートリアル

目次1. デカルト積現象2. 接続クエリの知識ポイントのまとめ1) 結合クエリとは何ですか? 2) ...

この記事では、CSSの2列レイアウトと3列レイアウトの具体的な使い方をまとめます。

序文大規模なフロントエンドの開発に伴い、UI フレームワークが次々と登場し、フロントエンド開発におけ...

MySQL ストアド プロシージャの in、out、inout パラメータの例と概要

ストアドプロシージャ1. ストアドプロシージャを作成し、グローバル変数を表示する mysql>...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

実稼働環境でのNginx高可用性ソリューションの実装プロセスの分析

準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...

Dockerコンテナアプリケーションログの表示方法

docker アタッチコマンドdocker attach [options] 容器実行中のコンテナに...

JavaScript ベースのシンプルな計算機の実装

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

画像拡大鏡効果のJSバージョン

この記事では、画像拡大鏡効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な内容...

Centos7はMySQLログに基づいてデータを復元するためのサンプルコードを実装します

導入Binlog ログ、つまりバイナリ ログ ファイルは、データベースに対するユーザー操作の SQL...

JavaScript の navigator.userAgent がブラウザ情報を取得するケースの説明

ブラウザはおそらく私たちにとって最も馴染みのあるツールです。 Firefox、Opera、Safar...