GNU/Linux >> Linux の 問題 >  >> Cent OS

RHEL 8 /CentOS8でマルチノードElasticStackClusterをセットアップする方法

ELKスタックとして広く知られているElasticスタック 、 Elasticsearchのようなオープンソース製品のグループです 、 Logstash およびキバナ 。 Elastic Stackは、Elastic社によって開発および保守されています。 Elastic Stackを使用すると、システムのログをLogstashにフィードできます。これは、すべてのソースからのログまたはデータを受け入れ、ログを正規化してから、分析のためにログをElasticsearchに転送するデータ収集エンジンです。 、インデックス作成検索 および保存 最後に、Kibanaを使用すると、視覚化データを表すことができます。Kibanaを使用すると、ユーザーのクエリに基づいてインタラクティブなグラフや図を作成することもできます。

この記事では、RHEL 8 / CentOS 8サーバーでマルチノードエラスティックスタック(ELKスタック)クラスターをセットアップする方法を示します。以下は、ElasticStackClusterの詳細です。

Elasticsearch:
  • 最小のRHEL8/CentOS8を搭載した3台のサーバー
  • IPとホスト名– 192.168.56.40(elasticsearch1.linuxtechi。local)、192.168.56.50(elasticsearch2.linuxtechi。local)、192.168.56.60(elasticsearch3.linuxtechi。local)
ログスタッシュ:
  • 最小のRHEL8/CentOS8を備えた2台のサーバー
  • IPとホスト名– 192.168.56.20(logstash1.linuxtechi。local)、192.168.56.30(logstash2.linuxtechi。local)
キバナ:
  • 最小限のRHEL8/CentOS8を備えた1台のサーバー
  • ホスト名– kibana.linuxtechi.local
  • IP – 192.168.56.10
ファイルビート:
  • 最小限のCentOS7を備えた1台のサーバー
  • IPとホスト名– 192.168.56.70(Webサーバー)

Elasticsearchクラスターのセットアップから始めましょう

3ノードのElasticsearchクラスターをセットアップ

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

以下のhostnamectlコマンドを使用して、それぞれのノードにホスト名を設定します。

 [[email protected]〜]#hostnamectl set-hostname "elasticsearch1.linuxtechi .local" [[email protected]〜]#exec bash [[email protected]〜]#[[email protected]〜]#hostnamectl set -hostname "elasticsearch2.linuxtechi .local" [[email protected]〜]#exec bash [[email protected]〜]#[[email protected]〜]#hostnamectl set-hostname "elasticsearch3.linuxtechi .local" [[email protected ]〜]#exec bash [[メール保護]〜]#

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

DVDまたはISOファイルを使用してRHEL8サーバーでローカルYum/DNFリポジトリをセットアップする方法

すべてのノードでElasticsearchパッケージリポジトリを構成し、/ etc /yum.repos.d/フォルダーの下に次のコンテンツを含むelastic.repoファイルを作成します

〜]#vi /etc/yum.repos.d/elastic.repo [elasticsearch-7.x] name =7.xのElasticsearchリポジトリpackagesbaseurl=https://artifacts.elastic.co/packages/7。 x / yumgpgcheck =1gpgkey =https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md 

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

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

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

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

192.168.56.40エラストマー検索1.linuxtechi.local192.168.56.50elasticsearch2.linuxtechi.local192.168.56.60Elasticsearch3.linuxtechi.local 

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

 [[email protected]〜]#dnf install java-openjdk -y [[email protected]〜]#dnf install java-openjdk -y [[email protected]〜]#dnf install java-openjdk -y 

3つのノードすべてでdnfコマンドの下を使用してElasticsearchをインストールします

 [[メール保護]〜]#dnf install Elasticsearch -y [[メール保護]〜]#dnfインストールelasticsearch -y [[メール保護]〜]#dnf install Elasticsearch -y 

注: OSファイアウォールが有効になっていて、各Elasticsearchノードで実行されている場合は、underwall-cmdコマンドを使用して次のポートを許可します。

〜]#firewall-cmd --permanent --add-port =9300 / tcp〜]#firewall-cmd --permanent --add-port =9200 / tcp〜]#firewall-cmd --reload 

Elasticsearchを構成し、ファイル「 /etc/elasticsearch/elasticsearch.yml」を編集します 」を3つのノードすべてに追加し、以下を追加します。

〜]#vim /etc/elasticsearch/elasticsearch.yml…………………………………………cluster.name:opn-clusternode.name:elasticsearch1.linuxtechi.localnetwork.host:192.168 .56.40http.port:9200discovery.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 daemon-reload〜]#systemctl enable Elasticsearch.service〜]#systemctl start Elasticsearch.service 

以下の「ss」コマンドを使用して、elasticsearchノードが9200ポートでリッスンを開始しているかどうかを確認します。

 [[メール保護]〜]#ss -tunlp | grep 9200tcp LISTEN 0 128 [::ffff:192.168.56.40]:9200 *:* users:(( "java"、pid =2734、fd =256))#] 
 次のcurlコマンドを使用して、Elasticsearchクラスターのステータスを確認します

 [[email protected]〜]#curl http://elasticsearch1.linuxtechi.local:9200 [[email protected]〜]#curl -X GET http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?かなり

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

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

注: JVMヒープサイズを変更する場合は、ファイル「/etc/elasticsearch/jvm.options」を編集します。 」と入力し、ご使用の環境に合わせて以下のパラメータを変更してください。

  • -Xms1g
  • -Xmx1g

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

Logstashのインストールと構成

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

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

 [[email protected]〜]#hostnamectl set-hostname "logstash1.linuxtechi.local" [[email protected]〜]#exec bash [[email protected]〜]#[[email protected]〜]#hostnamectl set -ホスト名"logstash2.linuxtechi.local"[[メール保護]〜]#exec bash [[メール保護]〜]#

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

〜]#vi/etc/hosts192.168.56.40elasticsearch1.linuxtechi.local192.168.56.50elasticsearch2.linuxtechi.local192.168.56.60elasticsearch3.linuxtechi.local 

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

両方のノードでLogstashリポジトリを構成し、ファイルを作成します logstash.repo 次のコンテンツを含む/ete/yum.repos.d/フォルダの下

〜]#vi/etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=7.xpackagesbaseurl=https://artifacts.elastic.co/packages/7のElasticsearchリポジトリ。 x / yumgpgcheck =1gpgkey =https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md 

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

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

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

〜]#dnf install java-openjdk -y 

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

 [[email protected]〜]#dnf install logstash -y [[email protected]〜]#dnf install logstash -y 

次に、logstashを構成し、両方のlogstashノードで以下の手順を実行します。

logstashconfファイルを作成します。最初に「/etc/logstash/conf.d/」の下にサンプルlogstashファイルをコピーします

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

confファイルを編集し、次のコンテンツを更新します

#vi conf.d / logstash.confinput {beats {port => 5044}} output {elasticsearch {hosts => ["http://elasticsearch1.linuxtechi.local:9200"、 "http://elasticsearch2。 linuxtechi.local:9200 "、" http://elasticsearch3.linuxtechi.local:9200 "] index =>"%{[@ metadata] [beat]}-%{[@ metadata] [version]}-%{+ YYYY.MM.dd} "#user =>" elastic "#password =>" changeme "}} 

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

次のfirewall-cmdコマンドを使用して、OSファイアウォールでlogstashポート「5044」を許可します。

〜#firewall-cmd --permanent --add-port =5044 / tcp〜#firewall-cmd –reload 

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

〜]#systemctl start logstash〜]#systemctl eanble logstash 

以下のssコマンドを使用して、logstashサービスが5044でリッスンを開始するかどうかを確認します。

 [[メール保護]〜]#ss -tunlp | grep 5044tcp LISTEN 0 128 *:5044 *:* users:(( "java"、pid =2416、fd =96)) 

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

Kibanaのインストールと構成

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

 [[email protected]〜]#hostnamectl set-hostname "kibana.linuxtechi.local" [[email protected]〜]#exec bash [[email protected]〜]#

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

192.168.56.40エラストマー検索1.linuxtechi.local192.168.56.50elasticsearch2.linuxtechi.local192.168.56.60Elasticsearch3.linuxtechi.local 

以下を使用してKibanaリポジトリをセットアップします

 [[email protected]〜]#vi /etc/yum.repos.d/kibana.repo [elasticsearch-7.x] name=7.xパッケージのElasticsearchリポジトリbaseurl=https://artifacts.elastic.co /packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md [[email protected]〜]#rpm --import https:// Artifacts.elastic.co/GPG-KEY-elasticsearch 

以下のdnfコマンドを実行してkibanaをインストールします

 [[email protected]〜]#yum install kibana -y 

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

 [[email protected]〜]#vim/etc/kibana/kibana.yml…………server.host:"kibana.linuxtechi.local"server.name:" kibana.linuxtechi.local "elasticsearch.hosts: ["http://elasticsearch1.linuxtechi.local:9200"、 "http://elasticsearch2.linuxtechi.local:9200"、"http://elasticsearch3.linuxtechi.local:9200"]…………
>

kibanaサービスを開始して有効にする

 [[email protected]〜]#systemctl start kibana [[email protected]〜]#systemctl enable kibana 

OSファイアウォールでKibanaポート「5601」を許可する

 [[email protected]〜]#firewall-cmd --permanent --add-port =5601 / tcpsuccess [[email protected]〜]#firewall-cmd --reloadsuccess [[email protected]〜]#

次のURLを使用してKibanaポータル/GUIにアクセスします:

http://kibana.linuxtechi.local:5601

ダッシュボードから、ElasticStackクラスターのステータスを確認することもできます

これにより、RHEL 8 /CentOS8でマルチノードElasticStackクラスターが正常にセットアップされたことを確認できます。

次に、他のLinuxサーバーからfilebeatを介してlogstashノードにログを送信しましょう。私の場合はCentOS 7サーバーが1つあり、このサーバーのすべての重要なログをfilebeatを介してlogstashにプッシュします。

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

 [[email protected]〜]#rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpmRetrieveing https://artifacts.elastic.co/downloads /beats/filebeat/filebeat-7.3.1-x86_64.rpmPreparing ... ################################# [100%]更新/インストール... 1:filebeat-7.3.1-1 ############################### ## [100%] [[メール保護]〜]#

/ etc / hostsファイルを編集し、次のエントリを追加します。

 192.168.56.20 logstash1.linuxtechi.local192.168.56.30 logstash2.linuxtechi.local 

次に、負荷分散手法を使用してログをlogstashノードに送信できるようにファイルビートを構成し、ファイル「 /etc/filebeat/filebeat.yml」を編集します。 」と入力し、次のパラメータを追加します。

filebeat.inputs:」の下 」セクションの変更「有効:false ‘から‘ 有効:true ‘および「パス」の下 」パラメーターは、logstashに送信できるロケーションログファイルを指定します。出力Elasticsearchセクションで「 output.elasticsearch」とコメントアウトします。 」とホスト パラメータ。 Logstashの出力セクションで、「 output.logstash:」のコメントを削除します 」と「ホスト: 」を入力し、両方のlogstashノードをhostsパラメータに追加し、「 loadbalance:true 」。

 [[email protected]〜]#vi /etc/filebeat/filebeat.yml……………………….filebeat.inputs:-タイプ:ログ有効:trueパス:-/ var / log / messages --/ var / log / dmesg-/var/log/maillog-/var/log/boot.log#output.elasticsearch:#hosts:["localhost:9200"] output.logstash:hosts:["logstash1.linuxtechi。 local:5044 "、" logstash2.linuxtechi.local:5044 "]ロードバランス:true………………………………………

以下のsystemctlコマンドを使用してfilebeatサービスを開始して有効にします

 [[email protected]〜]#systemctl start filebeat [[email protected]〜]#systemctl enable filebeat 

次に、Kibana GUIに移動し、新しいインデックスが表示されるかどうかを確認します。

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

上記のように、インデックスが表示されます。インデックスパターンを作成しましょう。

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

次のステップをクリックします

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

次に、[検出]をクリックして、リアルタイムのファイルビートインデックスパターンを確認します。

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

この記事の内容は以上です。これらの手順がRHEL8/CentOS8システムでマルチノードElasticStackClusterをセットアップするのに役立つ場合に備えて、フィードバックやコメントを共有することを躊躇しないでください。


Cent OS
  1. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  2. CentOS 7 /RHEL7でIcingaWeb2をセットアップする方法

  3. CentOS/RHEL で mutt をセットアップする方法

  1. RHEL 8 / CentOS8Linuxにnode.jsをインストールする方法

  2. CentOS 7 /RHEL7でGlusterFSストレージをセットアップする方法

  3. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  1. CentOS 7 / RHEL 7にKubernetes(k8s)1.7をインストールする方法

  2. CentOS 7 /RHEL7でPacemakerを使用して2ノードSquidクラスターを構成する

  3. CentOS 8 /RHEL8でNFSサーバーをセットアップする方法