RHEL8 /CentOS8 でマルチノード Elastic Stack クラスターを構築する方法

RHEL8 /CentOS8 でマルチノード Elastic Stack クラスターを構築する方法

一般的に ELK スタックとして知られる Elastic スタックは、Elasticsearch、Logstash、Kibana を含むオープン ソース製品のセットです。 Elastic Stack は Elastic によって開発および保守されています。 Elastic スタックを使用すると、システム ログを Logstash に送信できます。Logstash は、あらゆるソースからログやデータを受け入れ、ログを正規化するデータ収集エンジンです。その後、ログは分析、インデックス作成、検索、保存のために Elasticsearch に転送され、最終的に Kibana を使用して視覚的なデータとして表示されます。Kibana を使用すると、ユーザー クエリに基づいてインタラクティブなグラフを作成することもできます。

この記事では、RHEL 8 / CentOS 8 サーバー上でマルチノード エラスティック スタック クラスターをセットアップする方法を説明します。私の Elastic Stack クラスターの詳細は次のとおりです。

エラスティックサーチ:

  • 3台のサーバー、RHEL 8 / CentOS 8の最小限のインストール
  • IP とホスト名 – 192.168.56.40 ( elasticsearch1.linuxtechi.local )、192.168.56.50 ( elasticsearch2.linuxtechi.local )、192.168.56.60 ( elasticsearch3.linuxtechi.local )

ログスタッシュ:

  • 2台のサーバー、RHEL 8 / CentOS 8の最小限のインストール
  • IP とホスト – 192.168.56.20 ( logstash1.linuxtechi.local )、192.168.56.30 ( logstash2.linuxtechi.local )

キバナ:

最小限の RHEL 8 / CentOS 8IP とホスト名を持つ 1 台のサーバー – 192.168.56.10 ( kibana.linuxtechi.local )

ファイルビート:

  • CentOS 7 を最小限にインストールした 1 台のサーバー
  • IP とホスト名 – 192.168.56.70 ( web-server )

まず、Elasticsearch クラスターの設定から始めましょう。

3ノードのElasticsearchクラスターの設定

すでに述べたように、Elasticsearchクラスターのノードを設定し、各ノードにログインし、ホスト名を設定し、yum/dnfリポジトリを構成します。

各ノードのホスト名を設定するには、 hostnamectlコマンドを使用します。

[root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"
[root@linuxtechi ~]# bashを実行
[root@linuxtechi ~]#
[root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch2.linuxtechi. local"
[root@linuxtechi ~]# bashを実行
[root@linuxtechi ~]#
[root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"
[root@linuxtechi ~]# bashを実行
[root@linuxtechi ~]#

CentOS 8 システムの場合、OS パッケージ リポジトリを構成する必要はありません。RHEL 8 サーバーの場合、有効なサブスクリプションがある場合は、Red Hat にサブスクライブするだけでパッケージ リポジトリを取得できます。 OS パッケージ用のローカル yum/dnf リポジトリを構成する場合は、次の URL を参照してください。

DVD または ISO ファイルを使用して RHEL 8 サーバーにローカル Yum / DNF リポジトリを設定する方法

すべてのノードで Elasticsearch パッケージ リポジトリを構成します。次の内容を含むelastic.repoファイルを/etc/yum.repo.d/フォルダーに作成します。

~]# vi /etc/yum.repos.d/elastic.repo
[エラスティックサーチ-7.x]
name=7.x パッケージの Elasticsearch リポジトリ
ベースURL=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
有効=1
自動更新=1
タイプ=rpm-md

ファイルを保存して終了します。

3 つのノードすべてでrpmコマンドを使用して Elastic 公開署名キーをインポートします。

~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

3 つのノードすべての/etc/hostsファイルに次の行を追加します。

192.168.56.40 elasticsearch1.linuxtechi.local
192.168.56.50 elasticsearch2.linuxtechi.local
192.168.56.60 elasticsearch3.linuxtechi.local

yum / dnfコマンドを使用して、3 つのノードすべてに Java をインストールします。

[root@linuxtechi ~]# dnf install java-openjdk -y
[root@linuxtechi ~]# dnf install java-openjdk -y
[root@linuxtechi ~]# dnf install java-openjdk -y

yum / dnfコマンドを使用して、3 つのノードすべてに Elasticsearch をインストールします。

root@linuxtechi ~]# dnf install elasticsearch -y
[root@linuxtechi ~]# dnf install elasticsearch -y
[root@linuxtechi ~]# dnf install elasticsearch -y

注: オペレーティング システムのファイアウォールが有効になっていて、各 Elasticsearch ノードで実行されている場合は、 firewall-cmdコマンドを使用して次のポートを開くことを許可します。

~]# ファイアウォールコマンド --permanent --add-port=9300/tcp
~]# ファイアウォールコマンド --permanent --add-port=9200/tcp
~]# ファイアウォールコマンド --reload

Elasticsearch を設定するには、すべてのノードでファイル/etc/elasticsearch/elasticsearch.ymlを編集し、次のコンテンツを追加します。

~]# vim /etc/elasticsearch/elasticsearch.yml
クラスター名: opn-cluster
ノード名: elasticsearch1.linuxtechi.local
ネットワークホスト: 192.168.56.40
http.ポート: 9200
discovery.seed_hosts: ["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]
cluster.initial_master_nodes: ["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]

注: 各ノードで、 node.nameに正しいホスト名を入力し、 network.hostに正しい IP アドレスを入力し、他のパラメータは変更しないでください。

次に、 systemctlコマンドを使用して、3 つのノードすべてで Elasticsearch サービスを起動して有効にします。

~]# systemctlデーモンリロード
~]# systemctl で elasticsearch.service を有効にします
~]# systemctl elasticsearch.service を起動します

次のssコマンドを使用して、elasticsearch ノードがポート 9200 でリッスンを開始していることを確認します。

[root@linuxtechi ~]# ss -tunlp | grep 9200
tcp LISTEN 0 128 [::ffff:192.168.56.40]:9200 *:* ユーザー:(("java",pid=2734,fd=256))
[root@linuxtechi ~]#

次のcurlコマンドを使用して、Elasticsearch クラスターのステータスを確認します。

[root@linuxtechi ~]# curl http://elasticsearch1.linuxtechi.local:9200
[root@linuxtechi ~]# curl -X GET http://elasticsearch2.linuxtechi.local:9200/_cluster/health?pretty

コマンドの出力は次のようになります。

上記の出力は、3 ノードの Elasticsearch クラスターが正常に作成され、クラスターのステータスが緑色であることを示しています。

注: JVM ヒープ サイズを変更する場合は、 /etc/elasticsearch/jvm.options jvm.options ファイルを編集し、環境に応じて次のパラメータを変更します。

  • -Xms1g
  • -Xmx1g

それでは、Logstash ノードに移りましょう。

Logstashをインストールして設定する

両方の Logstash ノードで次の手順を実行します。

両方のノードにログインし、 hostnamectlコマンドを使用してホスト名を設定します。

[root@linuxtechi ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"
[root@linuxtechi ~]# bashを実行
[root@linuxtechi ~]#
[root@linuxtechi ~]# hostnamectl set-hostname "logstash2.linuxtechi.local"
[root@linuxtechi ~]# bashを実行
[root@linuxtechi ~]#

両方の logstash ノードの/etc/hostsファイルに次のエントリを追加します。

~]# vi /etc/hosts
192.168.56.40 elasticsearch1.linuxtechi.local
192.168.56.50 elasticsearch2.linuxtechi.local
192.168.56.60 elasticsearch3.linuxtechi.local

ファイルを保存して終了します。

両方のノードで Logstash リポジトリを構成します。次の内容を含むファイルlogstash.repo /ete/yum.repo.d/フォルダーに作成します。

~]# vi /etc/yum.repos.d/logstash.repo
[エラスティックサーチ-7.x]
name=7.x パッケージの Elasticsearch リポジトリ
ベースURL=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
有効=1
自動更新=1
タイプ=rpm-md

ファイルを保存して終了し、 rpmコマンドを実行して署名キーをインポートします。

~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

yum / dnfコマンドを使用して、両方のノードに Java OpenJDK をインストールします。

~]# dnf インストール java-openjdk -y

両方のノードからyum / dnfコマンドを実行して、logstash をインストールします。

[root@linuxtechi ~]# dnf install logstash -y
[root@linuxtechi ~]# dnf install logstash -y

次に、logstash を設定します。両方の logstash ノードで次の手順を実行して、logstash 設定ファイルを作成します。まず、logstash サンプル ファイルを/etc/logstash/conf.d/にコピーします。

# cd /etc/logstash/
# cp logstash-sample.conf conf.d/logstash.conf

設定ファイルを編集し、以下を更新します。

# vi conf.d/logstash.conf
入力{
 ビート {
 ポート => 5044
 }
}
出力{
 エラスティックサーチ
 ホスト => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]
 インデックス => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
 #user => "エラスティック"
 #パスワード => "changeme"
 }
}

outputセクションで、 hostsパラメータに 3 つの Elasticsearch ノードすべての FQDN を指定し、他のパラメータは変更しません。

オペレーティング システムのファイアウォールで logstash ポート「5044」を許可するにはfirewall-cmdコマンドを使用します。

~ # ファイアウォールコマンド --permanent --add-port=5044/tcp
~ # ファイアウォールコマンド –reload

次に、各ノードで次のsystemctlコマンドを実行して、Logstash サービスを開始して有効にします。

~]# systemctl ログスタッシュを開始します
~]# systemctl がログスタッシュに対応

ssコマンドを使用して、logstash サービスがポート 5044 でリッスンを開始していることを確認します。

[root@linuxtechi ~]# ss -tunlp | grep 5044
tcp LISTEN 0 128 *:5044 *:* ユーザー:(("java",pid=2416,fd=96))
[root@linuxtechi ~]#

上記の出力は、logstash が正常にインストールされ、構成されたことを示しています。 Kibana のインストールに移りましょう。

Kibanaをインストールして設定する

Kibana ノードにログインし、 hostnamectlコマンドを使用してホスト名を設定します。

[root@linuxtechi ~]# hostnamectl set-hostname "kibana.linuxtechi.local"
[root@linuxtechi ~]# bashを実行
[root@linuxtechi ~]#

/etc/hostsファイルを編集し、次の行を追加します。

192.168.56.40 elasticsearch1.linuxtechi.local
192.168.56.50 elasticsearch2.linuxtechi.local
192.168.56.60 elasticsearch3.linuxtechi.local

次のコマンドを使用して Kibana リポジトリを設定します。

[root@linuxtechi ~]# vi /etc/yum.repos.d/kibana.repo
[エラスティックサーチ-7.x]
name=7.x パッケージの Elasticsearch リポジトリ
ベースURL=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
有効=1
自動更新=1
タイプ=rpm-md
[root@linuxtechi ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

yum / dnfコマンドを実行して Kibana をインストールします。

[root@linuxtechi ~]# yum install kibana -y

/etc/kibana/kibana.ymlファイルを編集して Kibana を設定します。

[root@linuxtechi ~]# vim /etc/kibana/kibana.yml
…………
サーバーホスト: "kibana.linuxtechi.local"
サーバー名: "kibana.linuxtechi.local"
elasticsearch.hosts: ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]
…………

Kibana サービスを有効にして起動します。

root@linuxtechi ~]# systemctl kibanaを起動します
[root@linuxtechi ~]# systemctl で kibana を有効にする

システムファイアウォールで Kibana ポート '5601' を許可します。

[root@linuxtechi ~]# ファイアウォール-cmd --permanent --add-port=5601/tcp
成功
[root@linuxtechi ~]# ファイアウォール-cmd --reload
成功
[root@linuxtechi ~]#

次の URL を使用して Kibana インターフェースにアクセスします: http://kibana.linuxtechi.local:5601

ダッシュボードから、Elastic Stack クラスターのステータスを確認できます。

これは、RHEL 8 /CentOS 8 にマルチノード Elastic Stack クラスターが正常にインストールされ、設定されたことを証明します。

次に、他の Linux サーバーからのログを、 filebeat経由で logstash ノードに送信します。私の場合は CentOS 7 サーバーを使用しており、このサーバーの重要なログをすべてfilebeat経由で logstash にプッシュします。

CentOS 7 サーバーにログインし、yum/rpm コマンドを使用して filebeat パッケージをインストールします。

[root@linuxtechi ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm を取得しています
準備中... ################################### [100%]
更新/インストール中...
 1:filebeat-7.3.1-1 ###################################### [100%]
[root@linuxtechi ~]#

/etc/hostsファイルを編集し、以下を追加します。

192.168.56.20 ログスタッシュ1.linuxtechi.local
192.168.56.30 ログスタッシュ2.linuxtechi.local

次に、ロード バランシング テクノロジーを使用してログを logstash ノードに送信できるようにfilebeatを構成し、ファイル/etc/filebeat/filebeat.ymlを編集して次のパラメーターを追加します。

filebeat.inputs:セクションで、 enabled: falseenabled: trueに変更し、 pathsパラメータの下で、logstash に送信できるログ ファイルの場所を指定します。output.elasticsearch およびhostパラメータをコメント アウトし、 output.elasticsearch output.logstash:およびhosts:からコメントを削除し、 hostsパラメータに 2 つの logstash ノードを追加して、 loadbalance: trueを設定します。

[root@linuxtechi ~]# vi /etc/filebeat/filebeat.yml
ファイルビート入力:
- タイプ: ログ
 有効: true
 パス:
 - /var/log/メッセージ
 - /var/log/dmesg
 - /var/log/メールログ
 - /var/log/boot.log
#出力.elasticsearch:
 # ホスト: ["localhost:9200"]
出力.logstash:
 ホスト: ["logstash1.linuxtechi.local:5044", "logstash2.linuxtechi.local:5044"]
 負荷分散: true

次の 2 つのsystemctlコマンドを使用して、 filebeatサービスを開始および有効にします。

[root@linuxtechi ~]# systemctl でファイルビートを起動します
[root@linuxtechi ~]# systemctl でファイルビートを有効にする

次に、Kibana UI に移動して、新しいインデックスが表示されていることを確認します。

左側のサイドバーから「管理」オプションを選択し、「Elasticsearch」の下の「インデックス管理」をクリックします。

上記のように、インデックスが表示されるようになりました。次に、インデックス モデルを作成しましょう。

Kibana セクションの「インデックス パターン」をクリックすると、新しいモデルを作成するように求められます。「インデックス パターンの作成」をクリックし、パターン名を「filebeat」に指定します。

「次へ」をクリックします。

インデックス パターンの時間フィルターとしてタイムスタンプを選択し、インデックス パターンの作成をクリックします。

次にクリックして、リアルタイムの Filebeat インデックス モデルを表示します。

これは、Filebeat エージェントが正常に構成され、Kibana ダッシュボードでリアルタイムのログを確認できることを示しています。

この記事は以上です。RHEL 8 / CentOS 8 システムで Elastic Stack クラスターをセットアップする際に役立った手順について、ぜひフィードバックやコメントをお寄せください。

出典: https://www.linuxtechi.com/setup-multinode-elastic-stack-cluster-rhel8-centos8/

要約する

上記は、RHEL8/CentOS8 でマルチノード Elastic Stack クラスターを構築するために紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • CentOS でマルチノード Citus クラスターを展開するための詳細な手順
  • ウェブ クラスターの Docker Stack 展開方法の手順

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

>>:  Vueが初めて要素を取得できなかったときの解決記録

推薦する

vue-cli4.5.xはプロジェクトを素早く構築します

1. vue-cliをインストールする vue.js で vue.js を実行します。 2. プロジ...

Web開発でボックスを中央に配置するいくつかの方法

1. ボックスを中央に配置するいくつかの方法を記録します。 1.0、マージン幅固定、高さ中央配置。 ...

HTMLでvueとel​​ement-uiを直接参照する方法

コードは次のようになります。 <!DOCTYPE html> <html> ...

Linux学習におけるmkdirコマンドの詳しい説明

目次序文1. ファイルの概念に関する基礎知識2. mkdir コマンド序文最近、Linux にますま...

VSCode の JS フォーマットでセミコロンを自動的に追加または削除する方法について

導入js コード文の末尾にセミコロンを追加しても追加しなくても問題ありません。一般的に、チームで開発...

MySQL MHA の高可用性構成とフェイルオーバーの詳細な導入手順

目次1. MHAの紹介1. MHAとは何ですか? 2. MHAの構成3. MHAの特徴2. MySQ...

dockerでifconfigが利用できない問題を解決する

最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...

Vueのトグルボタンをクリックしてボタンを有効にし、無効にします。

実装方法は3つのステップに分かれています。テンプレートに 2 つのボタンを設定し、v-if と v-...

テーブル切り替えのための JavaScript プラグインのカプセル化

この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...

Linux ハードウェア構成コマンドの例

ハードウェア ビュー コマンドシステム # uname -a # カーネル/オペレーティング システ...

Nginx SSL証明書設定エラーの解決策

1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...

Vueはユーザーログインとトークン検証を実装します

フロントエンドとバックエンドを完全に分離する場合、Vue プロジェクトでトークン検証を実装する一般的...

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する複数の方法

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する 7 つの方法。コー...

DockerコンテナでのMySQLデータのインポート/エクスポートの詳細な説明

序文MySQL データのインポートとエクスポートは mysqldump コマンドで解決できることは誰...