Docker を使用して ELK 環境を迅速にデプロイする方法の詳細な説明 (最新バージョン 5.5.1)

Docker を使用して ELK 環境を迅速にデプロイする方法の詳細な説明 (最新バージョン 5.5.1)

Linux サーバーに Docker をインストールした後、関連する公式 Docker イメージをプルします。

docker pull docker.elastic.co/elasticsearch/elasticsearch:5.5.1
docker pull docker.elastic.co/kibana/kibana:5.5.1
docker pull docker.elastic.co/logstash/logstash:5.5.1

Elastic Search コンテナを起動します。

docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" \
--name my-elastic -d docker.elastic.co/elasticsearch/elasticsearch:5.5.1

Kibana コンテナを起動します。

docker run -p 5601:5601 -e "ELASTICSEARCH_URL=http://localhost:9200" --name my-kibana \
--ネットワークホスト -d docker.elastic.co/kibana/kibana:5.5.1

logstash/logstash.yml を作成し、logstash を監視するように xpack を構成します。

http.ホスト: "0.0.0.0"
パス.config: /usr/share/logstash/pipeline
xpack.monitoring.elasticsearch.url: http://localhost:9200
xpack.monitoring.elasticsearch.ユーザー名: elastic
xpack.monitoring.elasticsearch.password: 変更する

logstash/conf.d/logstash.conf を作成し、logstash の入力と出力を設定します。

入力{
 ファイル {
  パス => "/tmp/access_log"
  start_position => "始まり"
 }
}
出力{
 エラスティックサーチ
  ホスト => ["localhost:9200"]
  ユーザー => "elastic"
  パスワード => "changeme"
 }
}

Logstash コンテナを起動します。

docker run -v /home/ubuntu/logstash/conf.d:/usr/share/logstash/pipeline/:ro -v /tmp:/tmp:ro \
-v /home/ubuntu/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml:ro --name my-logstash \
--ネットワークホスト -d docker.elastic.co/logstash/logstash:5.5.1

テストして、/tmp/access.log に 2 行の情報を追加します。

echo "Hello World!" >> /tmp/access_log
echo "こんにちは ELK!" >> /tmp/access_log

Kibana リンク http://yourhost:5601 を開き、ユーザー名/パスワード elastic/changeme を使用してログインします。 「インデックス パターンの構成」ページで、「作成」ボタンをクリックします。 ELKノードのステータスを表示するには、[モニター]メニューをクリックします。

Kibana Monitor

Kibana の [Discover] メニューをクリックすると、関連するログ情報が表示されます。

Kibana Discover

Elastic Search クラスターを使用してデプロイする

Elasticは、docker-composeを使用してElastic Searchクラスターを起動する方法を公式に提供しています。まず、docker-composeをインストールします。

カール -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-Linux-x86_64 \
> /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

elasticsearch/docker-compose.yml ファイルを作成します。

バージョン: '2'
サービス:
 エラスティックサーチ1:
  イメージ: docker.elastic.co/elasticsearch/elasticsearch:5.5.1
  コンテナ名: elasticsearch1
  環境:
   - クラスター名=docker-cluster
   - bootstrap.memory_lock=true
   - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  ulimits:
   メモリロック:
    ソフト: -1
    難しい: -1
  メモリ制限: 1g
  ボリューム:
   - esdata1:/usr/share/elasticsearch/データ
  ポート:
   - 9200:9200
  ネットワーク:
   -エスネット
 エラスティックサーチ2:
  イメージ: docker.elastic.co/elasticsearch/elasticsearch:5.5.1
  環境:
   - クラスター名=docker-cluster
   - bootstrap.memory_lock=true
   - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
   - 「discovery.zen.ping.unicast.hosts=elasticsearch1」
  ulimits:
   メモリロック:
    ソフト: -1
    難しい: -1
  メモリ制限: 1g
  ボリューム:
   - esdata2:/usr/share/elasticsearch/データ
  ネットワーク:
   -エスネット

ボリューム:
 esdata1:
  ドライバー: ローカル
 esdata2:
  ドライバー: ローカル

ネットワーク:
 エスネット:

/etc/sysctl.confファイルに1行追加する

vm.max_map_count = 262144

変更を適用するには、次のコマンドを実行します。

sudo sysctl -p

docker-compose.yml が配置されているディレクトリで次のコマンドを実行して、Elastic Search クラスターを起動します。

docker stop my-elastic && docker rm my-elastic
docker-compose を起動 &

Kibana の [モニター] メニューで、Elastic Search クラスターが正常に動作していることを確認できます。

Elastic Cluster

デフォルトのパスワードを変更する

Elastic Docker イメージのデフォルトのアカウント パスワードは elastic/changeme です。デフォルトのパスワードを使用するのは安全ではありません。パスワードを elastic0 に変更するとします。 Docker が配置されているサーバー上でコマンドを実行して、ユーザー elastic のパスワードを変更します。

curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -H "コンテンツタイプ: application/json" \
-d '{
 「パスワード」: 「elastic0」
}'

パスワードを設定し、Kibana を再起動します。

docker stop my-kibana && docker rm my-kibana
docker run -p 5601:5601 -e "ELASTICSEARCH_URL=http://localhost:9200" -e "ELASTICSEARCH_PASSWORD=elastic0" \
--name my-kibana --network ホスト -d docker.elastic.co/kibana/kibana:5.5.1

logstash/logstash.yml と logstash/conf.d/logstash.conf のパスワードを変更し、logstash サービスを再起動します。

docker でログスタッシュを再起動します

テストして、/tmp/access.log に 2 行の情報を追加します。

echo "Hello World!" >> /tmp/access_log
echo "こんにちは ELK!" >> /tmp/access_log

Kibana リンク http://yourhost:5601 を開き、ユーザー名/パスワード: elastic/elastic0 を使用してログインします。 「インデックス パターンの構成」ページで、「作成」ボタンをクリックします。 ELK ノードのステータスを表示するには、[モニター] メニューをクリックします。デフォルトのパスワードが正常に変更されました。

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

以下もご興味があるかもしれません:
  • Docker-compose を使用して ELK をデプロイするためのサンプル コード
  • Docker を使用して ELK 環境を迅速にデプロイする方法の詳細な説明 (最新バージョン 5.5.1)

<<:  js は複数の画像を zip にパッケージ化します

>>:  Centos7 に yum 経由で MySQL をインストールする方法

推薦する

MySql マスタースレーブレプリケーションメカニズムの包括的な分析

目次マスタースレーブレプリケーションメカニズム非同期レプリケーション準同期レプリケーションマスタース...

autoconfを使用してMakefileを生成し、プロジェクトをコンパイルする手順

序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...

MySQL の current_timestamp の落とし穴とその解決策を共有する

目次MySQL の current_timestamp の落とし穴エラーを報告する私の解決策mysq...

デザイン理論: なぜ私たちは間違った場所を見ているのでしょうか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

階層化されたピラミッドを実現するための HTML+CSS の例

この記事では主に、HTML+CSS で階層化ピラミッドを実装する例を紹介し、皆さんと共有します。詳細...

VMware 仮想マシンのインストール Linux システムのグラフィック チュートリアル

この記事では、LinuxシステムのVMwareインストールの具体的な手順を参考までに紹介します。具体...

Linux は n 日前のログとサンプルコマンドを自動的に削除します

1. ファイル削除コマンド:対応するディレクトリを検索します -mtime + 日数 -name &...

最もよく使用されるJavaScriptイベントについて詳しく学ぶ

目次JavaScript イベント:よく使用されるイベント:イベントアクション要約するJavaScr...

CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

サーバーへのファイルのアップロード、ソフトウェアのインストール、コマンドやスクリプトの実行、サービス...

Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

プロジェクトを作成するWeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...

Vue でのテキストエリア適応高さソリューションの実装

目次隠れた問題適応高さのソリューションまず解決策を提示してください。Vueスタックが必要な学生はvu...

HTML 終了タグの問題と W3C 標準

W3C の原則によれば、XML の各開始タグには対応する終了タグが必要です。つまり、<html...

HTML スタイル タグと関連する CSS リファレンスの詳細な説明

HTML スタイル タグスタイルタグ - ドキュメント内でスタイルを宣言するときにこのタグを使用しま...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...