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 関数のアンチシェイクとスロットリングの正しい使用方法

推薦する

MySQLクエリ結果をCSVにエクスポートする方法

MySQL クエリ結果をcsvにエクスポートするには、通常、php を使用して mysql に接続し...

jsを使用してカルーセル効果を実現する

今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...

DockerがMySQL構成実装プロセスを開始

目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...

CSS フロントエンドの知識ポイントのまとめ(必読)

1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...

MysqlクエリJSON結果に関連する関数の概要

JSON 形式のフィールドは、MySQL 5.7 で追加された新しい属性ですが、基本的には文字列とし...

純粋なテキストとアイコン付きのボタンを実現するための HTML+CSS

この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...

Dockerでの接続例外中のエラーを解決する

Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...

Vue.$set の失敗の落とし穴の発見と解決

偶然、プロジェクト内でVue.$setが無効であることがわかりましたデータ フィルタリングを追加する...

JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

目次トピック分析する使用目的解決:コードは次のように実装されます。分析:配列とポインタ解決:コードは...

Linux で open-vswitch をインストールおよびアンインストールする方法

1. ソースコードからovsをコンパイルしてインストールします。依存関係をインストールします: # ...

パゴダパネルとドッカーを使用して Gogs をインストールするプロセス全体

目次1 Baota Software StoreにDockerをインストールする2 ゴグスイメージを...

WeChatミニプログラムがいいねサービスを実装

この記事では、WeChatアプレットの具体的なコードを参考までに紹介します。具体的な内容は次のとおり...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

MySQL 5.7.27 winx64 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.27 winx64のインストールと設定方法を参考までに紹介します。...