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

Ubuntu20.04にLogstashLogfileAnalyticsソフトウェアをインストールする方法

ELKは、ElasticSearch、Logstash、Kibanaの3つのオープンソース製品を組み合わせたものです。これは、世界中で最も人気のあるログ管理プラットフォームの1つです。 Elasticsearchは、検索および分析エンジンです。 Logstashは、複数のソースからログを同時に転送し、変換してから、Elasticsearchのような「スタッシュ」に送信するログ処理パイプラインです。 Kibanaは、LogstashがElasticsearchインデックスにインデックス付けしたデータを視覚化するために使用されます

このチュートリアルでは、Ubuntu20.04にLogstashをインストールする方法を説明します。

前提条件
  • Ubuntu20.04を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
必要な依存関係をインストールする

Elasticsearchをインストールするには、システムにJavaをインストールする必要があります。次のコマンドを使用してJavaJDKをインストールできます。

apt-get install openjdk-11-jdk -y

インストールしたら、次のコマンドを使用して、インストールされているJavaのバージョンを確認します。

java -version

次の出力が表示されます。

openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

次に、次のコマンドを実行して、他の必要な依存関係をインストールします。

apt-get install nginx curl gnupg2 wget -y

すべての依存関係がインストールされたら、次のステップに進むことができます。

Elasticsearchのインストールと設定

開始する前に、システムにElasticsearchをインストールする必要があります。 Logstashからのログとイベントを保存し、リアルタイムでログを検索する機能を提供します。

まず、次のコマンドを使用して、Elasticリポジトリをシステムに追加します。

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

次に、リポジトリを更新し、次のコマンドを使用してElasticsearchをインストールします。

apt-get update -y
apt-get install elasticsearch -y

インストールしたら、Elasticsearchのデフォルト設定ファイルを編集します:

nano /etc/elasticsearch/elasticsearch.yml

以下に示すように、コメントを外して値を変更します。

network.host: localhost  

ファイルを保存して閉じてから、Elasticsearchサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。

systemctl start elasticsearch
systemctl enable elasticsearch

この時点で、Elasticsearchがインストールされ、ポート9200でリッスンしています。次のコマンドを実行して、Elasticsearchが機能しているかどうかをテストできます。

curl -X GET "localhost:9200"

すべてが正常であれば、次の出力が表示されます。

{
  "name" : "ubuntu2004",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

終了したら、次のステップに進むことができます。

Kibanaのインストールと構成

次に、システムにKibanaをインストールする必要があります。 Kibanaを使用すると、Elasticsearchに保存されているデータを分析できます。次のコマンドを実行するだけでインストールできます:

apt-get install kibana -y

Kibanaをインストールしたら、次のコマンドを使用してKibanaサービスを開始し、起動時に開始できるようにします。

systemctl start kibana
systemctl enable kibana

次に、KibanaWebインターフェイスにアクセスするためのKibanaの管理ユーザーを作成する必要があります。次のコマンドを実行して、管理用Kibanaユーザーとパスワードを作成し、htpasswd.usersファイルに保存します。

echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users

次の出力に示すように、パスワードの入力を求められます。

Password: 
Verifying - Password: 
admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/

次に、Kibanaにサービスを提供するNginx仮想ホスト構成ファイルを作成します。

nano /etc/nginx/sites-available/kibana

次の行を追加します:

server {
    listen 80;

    server_name kibana.example.com;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://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仮想ホストファイルを有効にします。

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

次に、Nginxサービスを再起動して、変更を適用します。

systemctl restart nginx

次に、Webブラウザーを開き、URLhttp://kibana.example.com/statusを使用してKibanaのステータスを確認します。以下に示すように、ユーザー名とパスワードを入力するように求められます。

Kibanaのユーザー名とパスワードを入力し、[サインイン]ボタンをクリックします。次の画面が表示されます。

この時点で、Kibanaダッシュボードがシステムにインストールされます。これで、次のステップに進むことができます。

Logstashのインストールと構成

Logstashは、ビートによって送信されたログの処理に使用されます。次のコマンドを実行してインストールできます:

apt-get install logstash -y

Logstashをインストールしたら、次のコマンドを使用して新しいビート構成ファイルを作成します。

nano /etc/logstash/conf.d/02-beats-input.conf

次の行を追加します:

input {
  beats {
    port => 5044
  }
}

ファイルを保存して閉じてから、次のコマンドを使用してElasticsearch構成ファイルを作成します。

nano /etc/logstash/conf.d/30-elasticsearch-output.conf

次の行を追加します:

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

ファイルを保存して閉じ、次のコマンドでLogstash構成を確認します。

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

すべてが正常であれば、次の出力が表示されます。

Config Validation Result: OK. Exiting Logstash

次に、Logstashサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。

systemctl start logstash
systemctl enable logstash

この時点で、Logstashがシステムにインストールされています。これで、次のステップに進むことができます。

Filebeatのインストールと構成

ELKスタックはFilebeatを使用してさまざまなソースからデータを収集し、それらをLogstashに転送します。

次のコマンドでFilebeatをインストールできます:

apt-get install filebeat -y

インストールしたら、Logstashに接続するようにFilebeatを構成する必要があります。次のコマンドで構成できます:

nano /etc/filebeat/filebeat.yml

次の行をコメントアウトします:

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

次に、次の行のコメントを解除します。

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

ファイルを保存して閉じ、次のコマンドでシステムモジュールを有効にします。

filebeat modules enable system

デフォルトでは、Filebeatはsyslogおよび認証ログにデフォルトのパスを使用するように構成されています。

次のコマンドを使用して、システムモジュールの取り込みパイプラインをロードできます。

filebeat setup --pipelines --modules system

次に、次のコマンドを使用してテンプレートをロードします。

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

次の出力が表示されます。

Index setup finished.

デフォルトでは、FilebeatにはサンプルのKibanaダッシュボードがパッケージ化されており、KibanaでFilebeatデータを視覚化できます。したがって、Logstash出力を無効にし、Elasticsearch出力を有効にする必要があります。次のコマンドで実行できます:

filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601

次の出力が表示されます。

Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html
Loaded machine learning job configurations
Loaded Ingest pipelines

次に、Filebeatサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。

systemctl start filebeat
systemctl enable filebeat
Kibanaダッシュボードにアクセス

この時点で、ELKのすべてのコンポーネントがインストールおよび構成されています。次に、Webブラウザーを開き、URLhttp://kibana.example.comを入力します。次の画面にKibanaダッシュボードが表示されます。

左側のペインで、検出をクリックします 事前定義されたfilebeat-*インデックスパターンを選択して、次の画面にFilebeatデータを表示します。

現在、Kibanaは多くの機能を提供しています。自由に探索してください。

結論

おめでとう!これで、Ubuntu20.04サーバーにLogstashが正常にインストールおよび構成されました。これで、中央の場所からシステムログを収集して分析できます。ご不明な点がございましたら、お気軽にお問い合わせください。


Ubuntu
  1. Ubuntu14.04にGraylog2をインストールする方法

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

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

  1. Ubuntu18.04にLogstashをインストールする方法

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

  3. Ubuntu 15.04/14.10にGraylog2をインストールする方法

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

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

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