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

RHEL8にELKスタックをインストールする方法

ELKスタックはElasticスタックとも呼ばれ、Elasticsearch、Logstash、Kibana、Beatsの4つのオープンソースプロジェクトで構成されています。すべてのログを1つの場所に保存するのに役立ち、特定の時間のイベントを相互に関連付けることで、データや問題を分析および視覚化する機能を提供します。

このガイドは、RHEL8にELKスタックをインストールするのに役立ちます。

コンポーネント

Elasticsearch –オープンソースの全文検索エンジン。 Logstashからの受信ログを保存し、ログ/データをリアルタイムで検索する機能を提供します

Logstash –ビート(フォワーダー)によって送信された受信ログのデータ処理(収集、強化、変換)を行い、Elasticsearchに送信します

Kibana –Elasticsearchからのデータまたはログの視覚化を提供します。

Beats –クライアントマシンにインストールされ、Beatsプロトコルを介してログを収集してLogstashに送信します。

環境

フル機能のELKスタックを使用するには、ログの収集をテストするために2台のマシンが必要になります。

ホスト名 OS IPアドレス 目的
elk.itzgeek.local RHEL 8 192.168.1.10 ELKスタック
client.itzgeek.local CentOS 7 192.168.1.20 クライアントマシン(Filebeat)

前提条件

Javaのインストール

ElasticsearchはJavaに基づいているため、OpenJDKまたはOracleJDKのいずれかをマシンにインストールする必要があります。

読む: RHEL8にJavaをインストールする方法

ここでは、OpenJDK1.8を使用しています。

yum -y install java

Javaのバージョンを確認してください。

java -version

出力:

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
ELKリポジトリを構成する

Elastic署名キーをインポートします。

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

ELKサーバーとクライアントの両方でElasticsearchリポジトリをセットアップします。

cat << EOF > /etc/yum.repos.d/elastic.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Elasticsearchのインストールと設定

Elasticsearchはオープンソースであり、フルテキスト検索エンジンは、RESTfulWebインターフェースを使用してリアルタイムの分散検索と分析を提供します。 Elasticsearchは、Logstashによって送信されたすべてのデータを保存し、ユーザーの要求に応じてWebインターフェイス(Kibana)を介して表示します。

Elasticsearchをインストールします。

yum install -y elasticsearch-oss

Elasticsearchの構成ファイルを編集して

vi /etc/elasticsearch/elasticsearch.yml

ご使用の環境に応じて、クラスター名、ノード名、リスニングIPアドレスを設定します。

cluster.name: elkstack

node.name: elk.itzgeek.local

network.host: 192.168.1.10

リスニングIPアドレスを設定する場合は、シードホストと初期マスターノードを定義する必要があります。

discovery.seed_hosts: ["elk.itzgeek.local"]

cluster.initial_master_nodes: ["elk.itzgeek.local"]

システムの起動中に開始するようにElasticsearchを構成します。

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

CURLを使用して、Elasticsearchがクエリに応答しているかどうかを確認します。

curl -X GET http://192.168.1.10:9200

出力:

{
  "name" : "elk.itzgeek.local",
  "cluster_name" : "elkstack",
  "cluster_uuid" : "yws_6oYKS965bZ7GTh0e6g",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

以下のコマンドを実行して、クラスターの状態を確認します。

curl -XGET '192.168.1.10:9200/_cluster/health?pretty'

出力:クラスターのステータスは緑色である必要があります。

{
  "cluster_name" : "elkstack",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

Logstashのインストールと構成

Logstashは、ログを管理するためのオープンソースツールです。ログを収集して解析し、Elasticsearchに保存します。 Logstashでは160以上のプラグインを利用でき、追加の作業なしでさまざまな種類のイベントを処理する機能を提供します。

Logstashパッケージをインストールします。

yum -y install logstash-oss

Logstashの構成は、/etc/logstash/conf.d/にあります。 。

Logstash構成ファイルは、入力、フィルター、および出力の3つのセクションで構成されています。 3つのセクションはすべて、1つのファイルにあるか、.confで終わる個別のファイルにあります。

入力、フィルター、出力セクションの配置には1つのファイルを使用することをお勧めします。

vi /etc/logstash/conf.d/beats.conf

入力セクションでは、クライアントマシンにインストールされているビート(フォワーダー)からの着信ログをポート5044でリッスンするようにLogstashを構成します。

input {
  beats {
    port => 5044
  }
}

フィルタセクションでは、Grokを使用してログを解析してからElasticsearchに送信します。

次のgrokフィルターは、 syslogを検索します ログにラベルを付け、それらを解析して構造化インデックスを作成しようとします。このフィルターは、syslog(/ var / log / messages)メッセージを監視するためだけに非常に役立ちます。

filter {
  if [type] == "syslog" {
     grok {
        match => { "message" => "%{SYSLOGLINE}" }
  }
     date {
        match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
     }
  }
}

その他のフィルターパターンについては、grokdebuggerページにアクセスしてください。

出力セクションでは、ログを保存する場所、明らかにElasticsearchノードを定義します。

output {
  elasticsearch {
    hosts => ["192.168.1.10:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}

次に、Logstashサービスを開始して有効にします。

systemctl start logstash

systemctl enable logstash

Logstashが起動するまで1分待ってから、以下のコマンドを実行して、ポート5044でリッスンしているかどうかを確認します。

netstat -antup | grep -i 5044

出力:

tcp6       0      0 :::5044                 :::*                    LISTEN      31014/java

ログを使用してLogstashのトラブルシューティングを行うことができます。

cat /var/log/logstash/logstash-plain.log

Kibanaのインストールと構成

Kibanaは、Elasticsearchに保存されているログの視覚化を提供します。次のコマンドを使用してKibanaをインストールします。

yum -y install kibana-oss

kibana.ymlファイルを編集します。

vi /etc/kibana/kibana.yml

デフォルトでは、Kibanaはローカルホストでリッスンします。つまり、外部マシンからKibanaにアクセスすることはできません。許可するには、以下の行を編集して、ELKサーバーのIPを記載してください。

server.host: "0.0.0.0"

次の行のコメントを解除し、ElasticsearchインスタンスのURLで更新します。

elasticsearch.hosts: ["http://192.168.1.10:9200"]

システムの起動時にkibanaを起動して有効にします。

systemctl start kibana

systemctl enable kibana

Kibanaがポート5601でリッスンしているかどうかを確認します。

netstat -antup | grep -i 5601

出力:

tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      3631/node

ファイアウォール

クライアントマシンからログを受信するようにELKサーバーにファイアウォールを構成します。

5044 –Logstashがログを受信するための

5061 –外部マシンからKibanaにアクセスするため。

firewall-cmd --permanent --add-port=5044/tcp

firewall-cmd --permanent --add-port=5601/tcp

firewall-cmd --reload

次に、ログをLogstashサーバーに送信するようにビートを構成します。

Filebeatのインストールと構成

利用可能な4つのビートクライアントがあります

  1. パケットビート –ネットワークパケットデータを分析します。
  2. ファイルビート –ログデータへのリアルタイムの洞察。
  3. トップビート –インフラストラクチャデータから洞察を得る。
  4. メトリックビート –メトリックをElasticsearchに送信します。

Filebeatパッケージを取得するには、クライアントマシンにElasticリポジトリを設定します。

次のコマンドを使用してFilebeatをインストールします。

yum -y install filebeat

Filebeat構成ファイルはYAML形式であるため、インデントが非常に重要です。ガイドで使用されているのと同じ数のスペースを使用していることを確認してください。

filebeat構成ファイルを編集します。

vi /etc/filebeat/filebeat.yml

セクションoutput.elasticsearch:をコメントアウトします ログをElasticsearchに直接保存することはないためです。

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

ここで、 output.logstashという行を見つけます。 以下のようにエントリを変更します。このセクションでは、ログをLogstashサーバー 192.168.1.10に送信するためのfilebeatを定義します。 ポート5044

.   .   .

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["192.168.1.10:5044"]
.   .   .

/etc/filebeat/filebeat.ymlの上に 、プロスペクターセクションが表示されます。ここでは、Logstashに送信するログを指定する必要があります。

各プロスペクターはで始まります キャラクター。

ここでは、システムログを送信するようにfilebeatを構成します/var/log/messages Logstashサーバーへ。これを行うには、パスの下にある既存のプロスペクターを変更します 以下に示すセクション。

.   .   .

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/messages
    #- c:\programdata\elasticsearch\logs\*

.  .  .

サービスを再開します。

systemctl restart filebeat

systemctl enable filebeat

アクセスキバナ

次のURLを使用してKibanaにアクセスします。

http:// your-ip-addr-ess:5601 /

Kibanaのホームページが表示されます。 自分で探索をクリックします 。

最初のアクセス時に、ファイルビートインデックスをマップする必要があります。 管理に移動します>>インデックスパターン>>インデックスパターンの作成

インデックスパターンに次のように入力します ボックス。

filebeat-*
以下のようなファイルビートインデックスが少なくとも1つ表示されます。 次のステップをクリックします 。

@timestampを選択します 次に、インデックスパターンの作成をクリックします。 。

@timestamp

インデックスパターンとそのマッピングを確認します。

次に、[検出]をクリックします ログを表示して検索クエリを実行します。

結論

それで全部です。 RHEL8にELKStackをインストールする方法を正常に学習しました。コメントセクションでフィードバックを共有してください。


Cent OS
  1. CentOS 7 /RHEL7にGraylog2をインストールする方法

  2. CentOS 8 /RHEL8にElasticsearchをインストールする方法

  3. CentOS7にELKスタックをインストールする方法

  1. CentOS 8にElasticsearch、Logstash、およびKibana(ELKスタック)をインストールする方法

  2. CentOS 7 /RHEL7にELKスタックをインストールする方法

  3. CentOS /RHEL8にElasticsearchをインストールする方法

  1. Ubuntu16.04にElasticStackをインストールする方法

  2. CentOS7にElasticStackをインストールする方法

  3. Ubuntu20.04にELKをインストールする方法