GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 18.04 / Ubuntu 16.04にElasticsearch、Logstash、およびKibana(ELKスタック)をインストールする方法

ELKスタック はフル機能のデータ分析プラットフォームであり、3つのオープンソースツール Elasticsearch で構成されています 、 Logstash 、および Kibana 。このスタックは、ログを一元的に保存および管理するのに役立ち、特定の時間のイベントを相互に関連付けることで問題を分析する機能を提供します。

この投稿では、ELKスタックを Ubuntu 18.04にインストールする方法について説明します。 / Ubuntu 16.04

コンポーネント

Elasticsearch – Logstashからの受信ログを保存し、ログ/データをリアルタイムで検索する機能を提供します

ログスタッシュ –ビート(フォワーダー)によって送信された受信ログの処理(収集、強化、Elasticsearchへの送信)。

キバナ –イベントとログの視覚化を提供します。

ビート –クライアントマシンにインストールされ、beatsプロトコルを介してLogstashまたはElasticsearchにログを送信します。

前提条件

Javaのインストール

ElasticsearchにはOpenJDKのいずれかが必要です またはOracleJDK お使いのマシンで利用できます。

ここで、このデモでは、OpenJDKを使用しています。以下のコマンドとAPTのwgetおよびHTTPSサポートパッケージを使用してJavaをインストールします。

sudo apt update
sudo apt install -y openjdk-8-jdk wget apt-transport-https

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

java -version

出力:

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

Oracle Java JDKを使用する場合は、以下をお読みください。

読む :Ubuntu18.04にOracleJavaJDK10/8をインストールします

読むUbuntu16.04にOracleJavaJDK8をインストールします

ELKリポジトリの構成

ELKスタックパッケージは、 Elastic COから簡単に入手できます。 公式リポジトリを設定する 。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Elasticsearchをインストールする

Luceneをベースにしたオープンソースの検索エンジンであるElasticsearchサーバーをインストールします。リアルタイムの分散型マルチテナント対応全文検索エンジンに、Webインターフェイス(HTTP)とスキーマフリーのJSONドキュメントを提供します。

この記事の執筆時点では、次のコマンドv6.4を使用してElasticsearchをインストールします。

sudo apt update
sudo apt install -y elasticsearch

Elasticsearchサービスを開始します。

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

数分待ってから以下のコマンドを実行して、ElasticsearchRESTインターフェースのステータスを確認します。

curl -X GET http://localhost:9200

出力:

{
  "name" : "nqS7TFZ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "vERyh1VpR46G9T21H_3gKQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

上記の出力は、Elasticsearchが正常に稼働していることを確認しています。

Logstashのインストール

Logstashは、オープンソースのデータ収集およびログ解析エンジンです。ログを収集し、解析してElasticsearchに保存して検索します。 Logstashでは160以上のプラグインを利用でき、追加の作業なしでさまざまなタイプのイベントを処理する機能を提供します。

sudo apt install -y logstash

LogstashのSSL証明書を作成する(オプション)

ログの安全な送信のためにSSL証明書を使用するようにクライアントマシンにインストールするフォワーダー(Filebeat)を設定することはオプションです。

ホスト名またはIPSANのいずれかを使用してSSL証明書を作成します。

オプション1:(ホスト名またはFQDN)

OpenSSLディレクトリに移動します。

cd /etc/ssl/

次に、OpenSSLを使用してSSL証明書を作成します。 server.itzgeek.localを置き換えます Logstashサーバーのホスト名を使用します。

sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local

このlogstash-forwarder.crt logstashサーバーにログを送信するすべてのクライアントサーバーにコピーする必要があります。

オプション2:(IPアドレス)

以下の手順に従って、IPSANのSSL証明書を作成します。

前提条件として、LogstashサーバーのIPアドレスをOpenSSL構成ファイルのSubjectAltNameに追加します。

sudo nano /etc/ssl/openssl.cnf

[v3_ca]を探します セクションを作成してsubjectAltNameを更新します LogstashサーバーのIPアドレスを使用します。

subjectAltName = IP:192.168.1.10

OpenSSLディレクトリに移動します。

cd /etc/ssl/

次に、次のコマンドを実行してSSL証明書を作成します。

sudo openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt

このlogstash-forwarder.crt logstashサーバーにログを送信するすべてのクライアントサーバーにコピーする必要があります。

SSLの変換

Logstashが正しく機能するように、現在のキーをPKCS8形式に変換します。

sudo openssl pkcs8 -in logstash-forwarder.key  -topk8 -nocrypt -out logstash-forwarder.key.pem

ファイルのアクセス許可を誰でも読み取り可能なものに変更します。

sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem

Logstashの構成

Logstash構成は、入力、フィルター、および出力の3つのセクションで構成されます。すべてのセクションを1つのファイルに入れることも、セクションごとに別々のファイルに入れることもできます。末尾は .confです。 。

ここでは、入力、フィルター、出力セクションを配置するために単一のファイルを使用します。 /etc/logstash/conf.d/の下に構成ファイルを作成します ディレクトリ。

sudo nano /etc/logstash/conf.d/logstash.conf

入力セクションでは、クライアントマシン上にあるビート(Forwarder)からの着信ログをポート5044でリッスンするようにLogstashを構成します。

また、安全な通信のために、入力セクションにSSL証明書の詳細を追加します。

input {
 beats {
   port => 5044
   
   # Set to False if you do not SSL
   ssl => true
  
   # Delete below lines if no SSL is used
   ssl_certificate => "/etc/ssl/logstash-forwarder.crt"
   ssl_key => "/etc/ssl/logstash-forwarder.key.pem"
   }
}

フィルタセクション。 Grokを使用して、ログをElasticsearchに送信する前に解析し、保存します。

次のgrokフィルタは、 syslogというラベルの付いたログを検索します そして、それらを解析して構造化インデックスを作成しようとします。

filter {
if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }

    date {
match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
  }

}

その他のGROKフィルターパターンについては、こちらをご覧ください。 。

出力セクションでは、ログを保存する場所を定義します。ELKスタックの場合は明らかにElasticsearchです。

output {
 elasticsearch {
  hosts => localhost
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
       }
stdout {
    codec => rubydebug
       }
}

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

sudo systemctl restart logstash
sudo systemctl enable logstash

Logstashログ:

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

Kibanaのインストールと構成

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

sudo apt install -y kibana
デフォルトでは、Kibanaはローカルホストでリッスンします。つまり、外部マシンからKibanaWebインターフェイスにアクセスすることはできません。

アクセスを有効にするには、 /etc/kibana/kibana.ymlを編集します ファイル。

sudo nano /etc/kibana/kibana.yml

サーバーのIPアドレスを使用して以下の行に変更を加えます。

server.host: "192.168.1.10"

また、ElasticsearchとKibanaが異なるマシンで実行される場合もあります 、したがって、以下の行をElasticsearchサーバーのIPアドレスで更新します。

elasticsearch.url: "http://localhost:9200"

マシンの起動時にKibanaを起動して有効にします。

sudo systemctl restart kibana
sudo systemctl enable kibana

Beatsのインストール

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

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

クライアントマシンがLogstashサーバーのホスト名を解決できることを確認します。ご使用の環境にDNSサーバーがない場合 、次に、クライアントマシンにLogstashサーバーのホストエントリを追加する必要があります。

sudo nano /etc/hosts

以下のようなエントリを作成します。

192.168.1.10 server.itzgeek.local

Filebeatのインストール

Filebeatは、リモートクライアントマシンで実行されるソフトウェアエージェントであり、ログをLogstashサーバーに送信して解析するか、Elasticsearchを送信して保存します。

aptのHTTPSサポートをインストールします。

sudo apt update
sudo apt install -y apt-transport-https

FilebeatはElasticリポジトリで利用できるため、Filebeatをインストールするためにセットアップする必要があります。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

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

sudo apt update
sudo apt install -y filebeat

ファイルビートの構成

まず、logstash-forwarder.crtファイルをリモートクライアントマシンにコピーします。

安全な通信のためにLogstashでSSLを使用していない場合は、この手順をスキップしてください。
scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl

filebeat構成ファイルを編集します/etc/filebeat/filebeat.yml ログをLogstashサーバーに送信します。

sudo nano /etc/filebeat/filebeat.yml

以下の構成は、システムログ( / var / log / syslog )を送信するためのものです。 )Logstashサーバーに。このデモでは、/var/log/*.logをコメントアウトしました すべてのログが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/syslog
    #- /var/log/*.log
.  .  .
[出力]セクションで、 output.elasticsearch:セクションをコメントアウトします ログオンをElasticsearchに保存しないためです。

ここで、 output.logstash:という行を見つけます。 エントリを変更して、システムログをLogstashに送信し、SSL証明書の場所も記載します。

server.itzgeek.localを置き換えます IPアドレス IP SANを使用している場合は、Logstashサーバーの
.   .   .

output.logstash:

    hosts: ["server.itzgeek.local:5044"]
    
    # Comment out this line if you are not using SSL on Logstash server
    ssl.certificate_authorities: ["/etc/ssl/logstash-forwarder.crt"]

.   .   .

Filebeatサービスを再起動します。

sudo systemctl restart filebeat

Filebeatのログは通常、ログファイルにあります。

sudo cat /var/log/filebeat/filebeat

Kibanaインターフェイスへのアクセス

次のURLにアクセスして、KibanaWebインターフェイスにアクセスします。

http:// your-ip-address:5601 /

または

http:// your-serve-name:5601

Kibanaのホームページが表示されます。

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

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

filebeat-*

上記のようなfilebeatインデックスが表示されるはずです。 次のステップをクリックします 。

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

@timestamp

インデックスパターンとそのマッピングを確認してください。

検出をクリックします 左側のナビゲーションで、クライアントマシンからの受信ログを表示します。

以上です。


Ubuntu
  1. Ubuntu20.04にElasticsearchをインストールして使用する方法

  2. Elasticsearch、Logstash、Kibana4をUbuntu14.04/15.04にインストールする方法

  3. Ubuntu 20.04にElasticsearch、Logstash、Kibanaをインストールします

  1. Ubuntu 18.04 / 20.04にELKスタック(Elasticsearch、Logstash、Kibana)をインストールする方法

  2. CentOS 7 / RHEL 7にElasticsearch、Logstash、Kibana4をインストールする方法

  3. Ubuntu20.04にElasticsearchをインストールして設定する方法

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

  2. CentOS8にElasticStack(Elasticsearch、Logstash、Kibana)をインストールする方法

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