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

Ubuntu18.04にElasticsearchLogstashKibana(Elastic Stack)をインストールする方法

このガイドでは、Ubuntu18.04にElasticスタックをインストールする方法を学習します。 弾性スタック 、以前はELKスタックと呼ばれていました は、集中ログ用に設計されたElasticCompanyの無料のオープンソースソフトウェアのコレクションまたはスタックです。

これにより、さまざまなソースからのログを無数の形式で検索、分析、および視覚化できます。一元化されたログは、共通のポイントからサーバーまたはアプリケーションの問題を特定するのに役立ちます。

弾性スタックコンポーネント

ElasticStackは4つの主要コンポーネントで構成されています。

  1. Elasticsearch :これは、収集されたすべてのデータを保存または保持するRESTful検索エンジンです
  2. ログスタッシュ :これは、データを処理し、ElasticSearchに解析するコンポーネントです
  3. キバナ :これはログを視覚化するウェブインターフェースです
  4. ビート :これらは、数百/数千のサーバーからELKが構成されている中央サーバーにログを送信する軽量のデータシッパーです。

次に、Ubuntu18.04にElasticスタックをインストールする方法を見てみましょう。

前提条件

インストールを開始する前に、次のインフラストラクチャが必要であることを確認してください。

  1. Ubuntuサーバー18.04ルートアクセスと非ルートユーザーおよびufwファイアウォールを備えたLTS。サーバーの最小要件は次のとおりです。
    • Ubuntu 18.04 LTS
    • 4 GB RAM
    • 2つのCPU
  2. ElasticsearchとLogstashに必要なJava8がシステムにインストールされています。
  3. サーバーにインストールされたNGINXは、後でKibanaを処理するように構成されます。おすすめの読み物:Ubuntu18.04にNginxをインストールする

それでは、UbuntuへのElasticスタックのインストールを始めましょう。

1。 UbuntuにElasticsearchをインストールする

まず、Elasticsearchの公開GPGキーをAPTにインポートします。 Elasticスタックパッケージは通常、パッケージのなりすましからシステムを保護するためにElasticsearch署名キーで署名されます。さらに、認証されたパッケージは、パッケージマネージャーによって信頼されていると見なされます。

GPGキーをインポートするには、次のコマンドを実行します。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

次に、Elasticリポジトリをsources.list.dに追加します 以下のコマンドを使用してディレクトリを作成します。

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

2つのコマンドの出力は次のとおりです。

出力

次に、以下のコマンドを使用してシステムのリポジトリを更新します。

sudo apt update

サンプル出力

次に、以下のコマンドを使用してElasticsearchをインストールします。

sudo apt install elasticsearch

出力

2。 UbuntuでElasticsearchを設定する

Elasticsearchはポート9200でリッスンします。ただし、外部からのアクセスを制限して、外部の関係者がデータにアクセスしてElasticClusterをシャットダウンできないようにします。そうは言っても、以下に示すように、Elasticsearch構成ファイルにいくつかの変更を加えます

sudo nano /etc/elasticsearch/elasticsearch.yml

network.hostを見つけます 属性を設定してコメントを解除し、localhostを追加します その値として。また、http.portのコメントを解除します 属性。

出力


network.host: localhost
http.port: 9200

次に、図のようにElasticsearchサービスを開始して有効にします。


sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

出力

この時点で、Elasticsearchは稼働しているはずです。以下のコマンドを実行して、これを確認できます。

systemctl status elasticsearch

出力

netstatを使用することもできます 示されているコマンド。

netstat -pnltu

また、curlを実行することもできます 示されているコマンド。

curl -X GET "localhost:9200"

出力

すごい! Elasticsearchのインストールと設定が完了しました。次に、Logstashをインストールして構成します。

3。 Logstashのインストールと構成

インストールするElasticスタックの2番目のコンポーネントはLogstashです。 Logstashは、filebeatデータシッパーを使用してさまざまなサーバーからログを収集して一元化する責任があります。次に、syslogデータをフィルタリングしてElasticsearchに中継します。

まず、OpenSSLが実行されていることを確認しましょう。これを行うには、実行します。

openssl version -a

出力

Logstashをインストールするには、以下のコマンドを実行します。

sudo apt install logstash -y

出力

次に、/etc/hostsを編集します ファイルを作成し、以下を追加します。

18.224.44.11  elk-master

ここで、18.224.44.11はmasterELkサーバーのIPアドレスです。

次に、SSL証明書キーを生成して、クライアントファイルビートからlogstashサーバーへのログデータ転送を保護します。

これを行うには、まず、logstash構成ディレクトリ「/ etc / logstash」の下に新しいSSLディレクトリを作成し、そのディレクトリに移動します。


mkdir -p /etc/logstash/ssl
cd /etc/logstash/

これで、以下に示すようにSSL証明書を生成できます。

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

次に、logstashの新しい構成ファイルを作成します。 filebeatからの入力ファイルとして構成ファイル「filebeat-input.conf」を作成し、syslog処理用に「syslog-filter.conf」を作成し、最後に「output-elasticsearch.conf」ファイルを作成してElasticsearch出力を定義します。

>

Logstashディレクトリに移動し、「conf.d」ディレクトリに「filebeat-input.conf」を作成します。

cd /etc/logstash/
vim conf.d/filebeat-input.conf

次の構成を貼り付けます。

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

テキストエディタを保存して終了します。

syslog処理ログデータには、syslogファイルの解析に「grok」という名前のフィルタープラグインを使用しています。

新しい構成「syslog-filter.conf」を作成します。

vim conf.d/syslog-filter.conf

以下の構成を貼り付けてください。


filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

テキストエディタを保存して終了します。

最後に、elasticsearch出力用に「output-elasticsearch.conf」という名前の構成ファイルを作成します。

vim conf.d/output-elasticsearch.conf

次のコンテンツを貼り付けます。


output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

テキストエディタを保存して終了します。

それが完了したら、Logstashサービスを有効にして開始します。

sudo systemctl enable logstash
sudo systemctl start logstash

Logstashが実行されていることを確認するには、コマンドを実行します。

sudo systemctl status logstash

サンプル出力

netstatを使用することもできます 示されているコマンド。

netstat -pnltu

4。 UbuntuにKibanaをインストールして構成する

次に、以下のコマンドを使用してKibanaをインストールします。

sudo apt install kibana -y

出力

次に、kibana構成ファイルにいくつかの変更を加えます。

vim /etc/kibana/kibana.yml

次の属性を見つけてコメントを外します。


server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"

テキストエディタを保存して終了します。

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


sudo systemctl enable kibana
sudo systemctl start kibana

出力

netstatを使用して、kibanaがデフォルトのポート5601で実行されていることを確認できます。 示されているコマンド。

netstat -pnltu

出力

5。 KibanaのリバースプロキシとしてのNGINXのインストールと構成

NGINXをkibanaダッシュボードのリバースプロキシとして使用しています。以下に示すように、Nginxと「Apache2-utils」をインストールする必要があります。

sudo apt install nginx apache2-utils -y

出力

次に、kibanaという名前の新しい仮想ホストファイルを作成します。

vim /etc/nginx/vim sites-available/kibana

次のコンテンツを仮想ホストファイルに貼り付けます


server {
    listen 80;
 
    server_name localhost;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass https://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

テキストエディタを保存して終了します。推奨読書:NGINXロケーションディレクティブ。

次に、htpasswdを使用して、kibanaダッシュボードの基本認証を作成します 示されているコマンド。

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password

出力

上記の例では、ユーザー名は弾性です。 パスワードはあなたが提供するものになります。

次に、Kibana仮想ホスト構成をアクティブ化し、Nginx構成をテストします。

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t

出力

エラーが発生しない場合は、Nginxサーバーを有効にして再起動します。


systemctl enable nginx
systemctl restart nginx

6。 Filebeatのインストールと構成

このステップでは、elk-masterサーバーでfilebeatデータシッパーを構成します。これにより、すべてのsyslogメッセージがlogstashに中継され、kibanaによって処理および視覚化されます。

filebeat runをインストールするには:

sudo apt install filebeat

次に、filebeat構成ファイルを開きます。

sudo vim /etc/filebeat/filebeat.yml

Logstashを使用して、Filebeatによって収集されたデータに対して追加の処理を実行します。データをElasticsearchに直接送信するためにFilebeatは必要ありません。したがって、図のようにelasticsearchセクションを見つけてコメントします。


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

次に、Logstashセクションに移動し、図のようにコメントを外します。


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

「enabled」行の値を「true」に変更して、ファイルビートプロスペクターを有効にします。

enabled: true

logstashサーバーに送信するシステムログファイルを指定します。この例では、sshログファイル「auth.log」とsyslogファイルを追加します。


  paths:
    - /var/log/auth.log
    - /var/log/syslog

保存して終了します。

最後に、logstash証明書ファイル(logstash-forwarder.crt)を/etc/filebeatにコピーします。 ディレクトリ。

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

次に、filebeatを起動して有効にします。


systemctl start filebeat
systemctl enable filebeat

filebeat runのステータスを確認するには:

systemctl status filebeat

出力

7。 Elasticsearchスタックのテスト

Elasticスタックをテストするには、ブラウザを開いてサーバーのIPを参照し、続いてkibanaがリッスンするポート5601を参照します。

ip-address:5601

ユーザー名とパスワードを入力すると、次の画面が表示されます。

[検出]タブをクリックし、[ファイルビート]をクリックします。次のインターフェースが表示され、視覚化されたデータのライブストリーミングが可能になります。

おめでとう!これで、Ubuntu18.04システムにElasticStackとElasticBeatの「Filebeat」が正常にインストールおよび構成されました。


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

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

  3. Ubuntu 18.04 に Elasticsearch をインストールして構成する方法

  1. LinuxにElasticsearchとKibanaをインストールする方法

  2. Ubuntu18.04にElasticsearchをインストールする方法

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

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

  2. Ubuntu20.04にElasticsearchをインストールする方法

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