Docker を使用して ELK ログ システムを構築する例

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用されます。

エラスティックサーチ

画像をダウンロード:

$ sudo docker pull elasticsearch:5.5.0

ElasticSearch コンテナを実行します。

$ sudo docker run -it -d -p 9200:9200 -p 9300:9300 \
-v ~/elasticsearch/data:/usr/share/elasticsearch/data \
--name myes elasticsearch:5.5.0

バージョン6以上をご使用の場合はJDKエラーが発生しますので、ログを確認してください。

$ docker ログ -f myes

ログを表示します:

OpenJDK 64 ビット サーバー VM の警告: オプション UseConcMarkSweepGC はバージョン 9.0 で非推奨となり、将来のリリースで削除される可能性があります。

インターネットで見つかったおおよその意味は次のとおりです。

jdk9 は elasticSearch にあまり適していない (バージョンが新しすぎる) ため、JDK8 を使用する必要があります。私は JDK8u152 (jdk-8u152-windows-x64.exe) を使用します。 JDK9 と elasticSearch-rtf (v5.1.1) を使用すると、次のエラーが発生します。 elasticSearch6.0 バージョンでは JDK9 を使用する必要があることに特に注意してください。そうしないと、公式サイトからダウンロードした msi を正常にインストールできません。 理由は十分に確認されていません。

これも非常に厄介な問題なので、v5.5.0 安定バージョンを直接インストールしました。

ログスタッシュ

画像をダウンロード:

$ sudo docker pull logstash:5.5.0

新しい設定ファイルを作成します。

$ mkdir ~/logstash/conf.d && cd logstash/conf.d
$ vim ログスタッシュ.conf

ログスタッシュ.conf:

入力{

 ビート {
  port => 5044 # このポートはfilebeat.ymlのポートと同じである必要があります}

 ファイル {
  パス => "/data/logs"
  # start_position => "始まり"
 }
}

フィルター {
 #グロク{
 # 一致 => { "メッセージ" => "%{COMBINEDAPACHELOG}" }
 #}
 #日付 {
 # 一致 => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
 #}

 理解する {

  patterns_dir => "/etc/logstash/conf.d/patterns"
  一致 => {"メッセージ" => "%{TIMESTAMP_ISO8601:time}\S%{MYSELF:msgid}%{MYSELF:method}%{MYDATA:data}%{MYSELF:UserInfo}\S%{LOGLEVEL:level}\S%{MYSELF:thread}%{MYSELF:application}%{MYSELF:ip}"}
}
日付 {
   #match => [ "time", "YYYY-MM-dd HH:mm:ss,SSS" ]
   一致 => [ "time", "ISO8601" ]
   ターゲット => "@timestamp"
   タイムゾーン => "Asia/Phnom_Penh"
 }

}

出力{

 標準出力{
  コーデック => ruby​​debug
 }

 エラスティックサーチ
  アクション => "インデックス"
  ホスト => ["172.17.10.114:9200"]
  インデックス => "%{[フィールド][インデックス名]}-%{+YYYY.MM.dd}"
 }
}

Logstash コンテナを実行します。

$ sudo docker run -it -d -p 5044:5044 \
-v ~/logstash/conf.d:/etc/logstash/conf.d \
-v ~/logstash/data/logs:/data/logs \
--name ログスタッシュ ログスタッシュ:5.5.0 \
ログスタッシュの設定

キバナ

画像をダウンロード:

$ sudo docker pull kibana:5.5.0

新しい設定ファイルを作成します。

$ mkdir ~/kibana && cd ~/kibana
$ vim キバナ.yml

kibana.yml:

サーバーポート: 5601
サーバーホスト: "0.0.0.0"
elasticsearch.url: "http://172.17.10.114:9200"

Kibana コンテナを実行します。

$ sudo docker run -it -d -p 5601:5601 \
キバナディレクトリを /etc/kibana ディレクトリにコピーします。
--name キバナ キバナ:5.5.0

ファイルビート

ログを収集する必要があるサーバーに Filebeat を展開する必要があります。

画像をダウンロード:

$ sudo docker pull docker.elastic.co/beats/filebeat:5.5.0

新しい設定ファイルを作成します。

ファイルビートプロスペクター:
- タイプ: ログ
  パス:
   - ~/filebeat/logs #収集するログファイルのパスを指定します。フィールド:
  indexname: xxx # インデックスに対応するプロジェクト名をここに入力します => "%{[fields][indexname]}-%{+YYYY.MM.dd}"
出力.logstash:
 ホスト: ["172.17.10.114:5044"]

Filebeat コンテナを実行します。

$ sudo docker run -it -d \
ファイルビートを別のディレクトリにコピーします。
--name ファイルビート docker.elastic.co/beats/filebeat:5.5.0

添付は ELK 構造フローチャートです。

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

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

<<:  Mysql 5.6.37 winx64 インストール デュアル バージョン mysql ノート

>>:  ReactアプリケーションにおけるDOM DIFFアルゴリズムの詳細な説明

推薦する

検証コード干渉を実装する js (静的)

この記事では、検証コード干渉を実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...

MySQL 8.0 アップグレード体験

目次序文1. まず、既存のバージョンの MySQL を完全にアンインストールします。 2. deb ...

抽選効果を実現するJavaScript

この記事では、宝くじマシンの効果を実現するためのJavaScriptの具体的なコードを参考までに共有...

CentOS インストール mysql5.7 詳細チュートリアル

この記事では、参考までに、centOSにmysql5.7をインストールする詳細な手順を紹介します。具...

HTMLの行間設定方法と問題点

<p></p> の行間隔を設定するには、style="line-h...

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

JavaScript における clientWidth、offsetWidth、scrollWidth の違い

1. コンセプトこれらはすべて Element の属性であり、要素の幅を示します。 Element....

Javascript Bootstrapのグリッドシステム、ナビゲーションバー、カルーセルの詳細な説明

目次ブートストラップと関連コンテンツの紹介グリッドシステムネストされた列列オフセット列の並べ替えナビ...

Docker バインディング固定 IP/クロスホストコンテナ相互アクセス操作

序文これまでは、パイプワークで割り当てた静的 IP は一時的なものであり、再起動すると無効になってい...

Swiper.jsプラグインを使用すると、カルーセル画像を非常に簡単に実装できます。

Swiper は、携帯電話やタブレットなどのモバイル端末向けに設計された、純粋な JavaScri...

MySQL でよく使用されるデータベースとテーブル シャーディング ソリューションの概要

目次1. データベースのボトルネック2. サブライブラリとサブテーブル2. 横長テーブル3. 垂直サ...

CSSタグの表示モードの詳細な説明

ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...

HTML メタビューポート属性の詳細な説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

HTML でよく使われるメタ百科事典 (推奨)

メタタグは、HTML言語のヘッド領域にある補助タグです。HTML文書のヘッダーにあるヘッドタグとタイ...

CSS の複数行テキストがオーバーフローする場合の省略記号の例

複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...