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

推薦する

Redhat 8.0 システムのインストール方法に関するグラフィック チュートリアル (初心者には必須)

目次1. はじめに2. インストール01. 新しい仮想マシンを作成する02. システムをインストール...

vue+springbootでログイン機能を実現

この記事の例では、ログイン機能を実現するためのvue+springbootの具体的なコードを参考まで...

Javascript 構造化代入の詳細

目次1. 配列の分解2. オブジェクトの分解3. 不完全な解体4. 分割代入を使用して変数交換を実装...

MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装

実験環境: 1. CentOS 7 サーバー 3 台2. mysql5.7.26 (3台のマシンはす...

Vue の要素カレンダー コンポーネントを使用したサンプル コード

まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...

TypeScriptにおけるunknownとanyの違いについて詳しく説明します

目次序文1. 不明 vs 任意2. 未知とあらゆるもののメンタルモデル3. まとめ要約する序文any...

適応型ウェブページを設計および作成する方法

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイス...

nginx+php実行リクエストの動作原理の詳細な説明

PHPの仕組みまず、よく耳にするcgi、php-cgi、fastcgi、php-fpmの関係を理解し...

JavaScript+html はフロントエンドページでランダム QR コード検証を実装します

クールなフロントエンドページのランダムQRコード検証を参考までに共有します。具体的な内容は次のとおり...

解決策 - BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 権限が不十分です

1) jdkファイルが保存されているフォルダパスを入力します私はここにいますusr/local/jd...

順序再構築に関する簡単な説明: MySQL シャーディング

目次1. 目的2. 環境整備1. 基本情報2. データベース環境の準備3. データベースを構築し、サ...

Nginx でアクセス頻度、ダウンロード速度、同時接続数を制限する方法

1. アクセス頻度、同時接続、ダウンロード速度を制限するために使用されるモジュールと命令の概要ngx...

Linux でのデータベースのスケジュールバックアップの実装スクリプト

目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...

MySQL 8.0.16 圧縮版のダウンロードと Win10 システムへのインストール チュートリアル

公式サイトからダウンロード: https://www.mysql.com MySQLの公式サイトにア...

HTMLテーブルレイアウトの実践的な使い方の詳しい説明

テーブルはいつ使用されますか?最近では、Web ページの全体的なレイアウトにテーブルが使用されること...