一般にELKスタックとして知られるElasticスタックは、Elasticsearch、Logstash、Kibanaなどのオープンソース製品のセットです。 Elastic Stackは、Elastic社によって開発および保守されています。 Elasticスタックを使用すると、システムログをLogstashに送信できます。Logstashは、任意のソースからのログまたはデータを受け入れ、ログを正規化してから、分析、インデックス作成、および分析のためにログをElasticsearchに転送するデータ収集エンジンです。検索して保存し、最後にKibanaを使用して視覚データを表現します。Kibanaを使用すると、ユーザーのクエリに基づいてインタラクティブなグラフを作成することもできます。
この記事では、RHEL 8 / CentOS8サーバーでマルチノードエラスティックスタッククラスターをセットアップする方法を示します。 ElasticStackクラスターの詳細は次のとおりです。
Elasticsearch:
elasticsearch1.linuxtechi.local
)、192.168.56.50( elasticsearch2.linuxtechi.local
)、192.168.56.60(elasticsearch3.linuxtechi.local`)Logstash:**
logstash1.linuxtechi.local
)、192.168.56.30( logstash2.linuxtechi.local
)Kibana:
1つのサーバー、RHEL 8 / CentOS 8IPとホスト名の最小限のインストール– 192.168.56.10( kibana.linuxtechi.local
)
Filebeat:
web-server
)Elasticsearchクラスターを設定することから始めましょう。
3ノードのElasticsearchクラスターをセットアップします
私が言ったように、Elasticsearchクラスターのノードをセットアップし、各ノードにログインし、ホスト名を設定し、yum / dnfライブラリーを構成します
コマンド hostnamectl
を使用して、各ノードにホスト名を設定します。
[ root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"[root@linuxtechi ~]# exec bash
[ root@linuxtechi ~]#
[ root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch2.linuxtechi. local"[root@linuxtechi ~]# exec bash
[ root@linuxtechi ~]#
[ root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"[root@linuxtechi ~]# exec bash
[ root@linuxtechi ~]#
CentOS 8システムの場合、オペレーティングシステムパッケージライブラリを構成する必要はありません。RHEL8サーバーの場合、有効なサブスクリプションがある場合は、RedHatサブスクリプションを使用してパッケージリポジトリを取得します。オペレーティングシステムパッケージ用にローカルのyum / dnfリポジトリを構成する場合は、次のURLを参照してください。
DVDまたはISOファイルを使用してRHEL8サーバーにローカルYum / DNFリポジトリを設定する方法
すべてのノードでElasticsearchパッケージリポジトリを構成し、 / etc / yum.repo.d /
フォルダーの下に次のコンテンツを含む elastic.repo
ファイルを作成します。
~]# vi /etc/yum.repos.d/elastic.repo
[ elasticsearch-7.x]
name=Elasticsearch repository for7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
ファイルを保存して終了します。
rpm
コマンドを使用して、3つのノードすべてに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
コマンドを使用して、Elasticsearchを3つのノードすべてにインストールします。
root@linuxtechi ~]# dnf install elasticsearch -y
[ root@linuxtechi ~]# dnf install elasticsearch -y
[ root@linuxtechi ~]# dnf install elasticsearch -y
注:オペレーティングシステムのファイアウォールが有効になっていて、各Elasticsearchノードで実行されている場合は、 firewall-cmd
コマンドを使用して、次のポートを開くことができます。
~]# firewall-cmd --permanent --add-port=9300/tcp
~]# firewall-cmd --permanent --add-port=9200/tcp
~]# firewall-cmd --reload
Elasticsearchを構成するには、すべてのノードでファイル / etc / elasticsearch / elasticsearch.yml
を編集し、次のコンテンツを追加します。
~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: opn-cluster
node.name: elasticsearch1.linuxtechi.local
network.host:192.168.56.40
http.port: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 daemon-reload
~]# systemctl enable elasticsearch.service
~]# systemctl start elasticsearch.service
次の ss
コマンドを使用して、elasticsearchノードがポート9200でリッスンを開始するかどうかを確認します。
[ root@linuxtechi ~]# ss -tunlp | grep 9200
tcp LISTEN 0128[::ffff:192.168.56.40]:9200*:* users:(("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
を編集して、環境に応じて次のパラメーターを変更できます。
それでは、Logstashノードに移動しましょう。
Logstashのインストールと構成
両方のLogstashノードで次の手順を実行します。
2つのノードにログインし、 hostnamectl
コマンドを使用してホスト名を設定します。
[ root@linuxtechi ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"[root@linuxtechi ~]# exec bash
[ root@linuxtechi ~]#
[ root@linuxtechi ~]# hostnamectl set-hostname "logstash2.linuxtechi.local"[root@linuxtechi ~]# exec bash
[ root@linuxtechi ~]#
2つの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
[ elasticsearch-7.x]
name=Elasticsearch repository for7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
ファイルを保存して終了し、 rpm
コマンドを実行して署名キーをインポートします。
~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
yum
/ dnf
コマンドを使用して、両方のノードにJavaOpenJDKをインストールします。
~]# dnf install java-openjdk -y
両方のノードから yum
/ dnf
コマンドを実行して、logstashをインストールします。
[ root@linuxtechi ~]# dnf install logstash -y
[ root@linuxtechi ~]# dnf install logstash -y
次に、logstashを構成します。2つのlogstashノードで次の手順を実行してlogstash構成ファイルを作成します。最初に、logstashサンプルファイルを / etc / logstash / conf.d /
の下にコピーします。
# cd /etc/logstash/
# cp logstash-sample.conf conf.d/logstash.conf
構成ファイルを編集して、以下を更新します。
# vi conf.d/logstash.conf
input {
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
コマンドを使用して、オペレーティングシステムのファイアウォールでlogstashポート「5044」を許可します。
~ # firewall-cmd --permanent --add-port=5044/tcp
~ # firewall-cmd –reload
次に、各ノードで次の systemctl
コマンドを実行して、Logstashサービスを開始して有効にします。
~]# systemctl start logstash
~]# systemctl eanble logstash
ss
コマンドを使用して、logstashサービスがポート5044でリッスンを開始するかどうかを確認します。
[ root@linuxtechi ~]# ss -tunlp | grep 5044
tcp LISTEN 0128*:5044*:* users:(("java",pid=2416,fd=96))[root@linuxtechi ~]#
上記の出力は、logstashが正常にインストールおよび構成されたことを示しています。 Kibanaのインストールに移りましょう。
Kibanaのインストールと構成
Kibanaノードにログインし、 hostnamectl
コマンドを使用してホスト名を設定します。
[ root@linuxtechi ~]# hostnamectl set-hostname "kibana.linuxtechi.local"[root@linuxtechi ~]# exec 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
[ elasticsearch-7.x]
name=Elasticsearch repository for7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=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
…………
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"]
…………
キバナサービスを有効にして開始します。
root@linuxtechi ~]# systemctl start kibana
[ root@linuxtechi ~]# systemctl enable kibana
システムファイアウォールでKibanaポート「5601」を許可します。
[ root@linuxtechi ~]# firewall-cmd --permanent --add-port=5601/tcp
success
[ root@linuxtechi ~]# firewall-cmd --reload
success
[ root@linuxtechi ~]#
次のURLを使用して、Kibanaインターフェイスにアクセスします。http://kibana.linuxtechi.local:5601
パネルから、ElasticStackクラスターのステータスを確認できます。
これは、RHEL 8 / CentOS8にマルチノードElasticStackクラスターを正常にインストールしてセットアップしたことを示しています。
ここで、他の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
Retrieving https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...1:filebeat-7.3.1-1 ################################# [100%][root@linuxtechi ~]#
/ etc / hosts
ファイルを編集し、以下を追加します。
192.168.56.20 logstash1.linuxtechi.local
192.168.56.30 logstash2.linuxtechi.local
次に、負荷分散テクノロジを使用してログをlogstashノードに送信し、ファイル / etc / filebeat / filebeat.yml
を編集して、次のパラメータを追加できるように、 filebeat
を構成します。
filebeat.inputs:
セクションで、 enabled:false
を enabled:true
に変更し、 paths
パラメーターの下でlogstashに送信できるログファイルの場所を指定します; output.elasticsearch
と をコメントアウトしますhost
パラメータ; output.logstash:
と hosts:
のコメントを削除し、 hosts
パラメータに2つのlogstashノードを追加し、 loadbalance:true
を設定します。
[ root@linuxtechi ~]# vi /etc/filebeat/filebeat.yml
filebeat.inputs:- type: log
enabled:true
paths:-/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"]
loadbalance:true
次の2つの systemctl
コマンドを使用して、 filebeat
サービスを開始して有効にします。
[ root@linuxtechi ~]# systemctl start filebeat
[ root@linuxtechi ~]# systemctl enable filebeat
次に、Kibanaユーザーインターフェイスに移動し、新しいインデックスが表示されていることを確認します。
左側のサイドバーから管理オプションを選択し、Elasticsearchの下の[インデックス管理]をクリックします。
上で見たように、インデックスが表示されます。インデックスモデルを作成しましょう。
Kibanaセクションの[IndexPatterns]をクリックすると、新しいモデルを作成するように求められます。[Create Index Pattern]をクリックして、パターン名を「filebeat」として指定します。
[次へ]をクリックします。
インデックスモデルのタイムフィルタとして[タイムスタンプ]を選択し、[インデックスパターンの作成]をクリックします。
次に、クリックしてリアルタイムのファイルビートインデックスモデルを表示します。
これは、Filebeatエージェントが正常に構成されたことを示しており、Kibanaダッシュボードにリアルタイムのログが表示されます。
上記はこの記事の全内容です。RHEL8/ CentOS8システムでElasticStackクラスターをセットアップするのに役立つこれらの手順については、遠慮なくフィードバックや意見を共有してください。
via: https://www.linuxtechi.com/setup-multinode-elastic-stack-cluster-rhel8-centos8/
総括する
上記は、編集者が紹介したRHEL8 / CentOS8でマルチノードElasticスタッククラスターを確立する方法です。お役に立てば幸いです。ご不明な点がございましたら、メッセージを残してください。編集者から返信があります。 ZaLou.Cnのウェブサイトをご支援いただきありがとうございます。
この記事があなたに役立つと思うなら、再版を歓迎します、出典を示してください、ありがとう!
Recommended Posts