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 kibanaOSファイアウォールで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