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 をインストールする方法

推薦する

Vue は検証コードのカウントダウンボタンを実装します

この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...

フレックスレイアウトは、1行あたりの固定行数と適応レイアウトを実現します。

この記事では、1行あたりの固定行数+アダプティブレイアウトを実現するフレックスレイアウトを紹介し、皆...

IIS7~IIS8.5 サーバープロトコルヘッダーの削除または変更

要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...

Linux の PHP に XML 拡張機能をインストールする詳細な手順

PHP Linux に XML 拡張機能をインストールする1. PHPインストールソースパッケージを...

Dockerコンテナの自動終了を停止する方法の詳細な説明

この記事では、Docker コンテナとフロントエンド プロセスの関係と、コンテナを永続的に実行できる...

JavaScript で文字列を数値に変換する方法

目次1.parseInt(文字列、基数) 2. 数値() 3.parseFloat()主なメソッドは...

nginx と openssl で https を実装する方法

サーバーデータがSSL証明書を使用して暗号化および認証されていない場合、ユーザーのデータはプレーンテ...

Docker Composeでコンテナ管理の問題を解決する

Docker の設計では、コンテナは 1 つのアプリケーションのみを実行します。しかし、現在のアプリ...

CSS3の新しい背景プロパティの詳細な説明

これまで、CSS の背景の属性には、color、image、repeat、attachment、po...

Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

画像をプルする docker プル mysql完成した画像を見る Docker イメージイメージを介...

Vueはチャットインターフェースを実装する

この記事の例では、チャットインターフェースの表示を実現するためのVueの具体的なコードを参考までに共...

フォームのmethod=post/getの違い

フォームは、get と post の 2 つのデータ転送方法を提供します。どちらもデータを送信する方...

写真をアップロードして顔を認識する Vue+axios サンプルコード

目次Axios リクエストQs処理データ分析Vantアップロードファイル形式完全なコードこの記事では...

ウェブページエクスペリエンス: 計画と設計

1. デザインの方向性を明確にする<br />まず、どのユーザーを対象にデザインするのか...

Nginx ルーティング転送とリバースプロキシロケーション構成の実装

Nginx を設定する 3 つの方法最初の方法は、位置一致部分を直接置き換える。 2 番目の pro...