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

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

Logstashは、無料のオープンソースツールであり、将来使用するためにログを収集、解析、保存するための世界で最も人気のあるログ分析プラットフォームです。 Logstashには、豊富なプラグインセットと、データストリームの変換を容易にする非常に表現力豊かなテンプレート言語が付属しています。 LogstashはELKスタックの一部ですが、単独で使用することもできます。 Logstashには、入力プラグインを使用して任意のデータソースからプルし、さまざまなデータ変換を適用し、出力プラグインを使用してデータを多数の宛先に送信する機能があります。

このチュートリアルでは、Ubuntu18.04サーバーにLogstashをインストールして構成する方法を示します。

前提条件
  • Ubuntu18.04を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
はじめに

開始する前に、システムを最新バージョンに更新してください。次のコマンドを実行することでそれを行うことができます:

apt-get update -y
apt-get upgrade -y

システムが更新されたら、システムを再起動して変更を適用します。

Javaのインストール

Javaをインストールする前に、Java8またはJava11がインストールされていることを確認してください。次のコマンドを使用してJava8をインストールできます。

apt-get install openjdk-8-jdk -y

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

java -version

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

openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)

Logstashをインストール

Logstashをインストールする前に、サーバーにElasticsearchをインストールする必要があります。デフォルトでは、ElasticsearchはUbuntu18.04サーバーでは使用できません。そのため、Elasticsearchのリポジトリを追加する必要があります。

まず、次のコマンドを使用して必要なパッケージをインストールします。

apt-get install apt-transport-https -y

次に、次のコマンドを使用してElasticsearchGPGキーをダウンロードして追加します。

wget -qO - https://packages.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とLogstashをインストールします。

apt-get install elasticsearch logstash -y

両方のパッケージがインストールされたら、LogstashとElasticsearchを起動し、次のコマンドを使用してシステムの再起動後に起動できるようにします。

systemctl start logstash
systemctl enable logstash
systemctl start elasticsearch
systemctl enable elasticsearch

次のコマンドを使用して、Logstashのステータスを確認することもできます。

systemctl status logstash

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

? logstash.service - logstash
   Loaded: loaded (/etc/systemd/system/logstash.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-11-20 10:13:22 UTC; 5s ago
 Main PID: 3790 (java)
    Tasks: 13 (limit: 1110)
   CGroup: /system.slice/logstash.service
           ??3790 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly 

Nov 20 10:13:22 ubuntu systemd[1]: Started logstash.

デフォルトでは、Elasticsearchはポート9200でリッスンします。次のコマンドで確認できます:

netstat -ant | grep 9200

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

tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN     
tcp6       0      0 ::1:9200                :::*                    LISTEN  

Logstashを構成する

Logstashの構成は、システム管理者にとって最も難しい部分の1つです。 Logstash構成は、Logstash入力、Logstashフィルター、およびLogstash出力の3つの主要な構成セクションで構成されています。各セクションは、さまざまな機能とさまざまなLogstashプラグインの使用を担当しています。

Logstash入力の構成

まず、TCPポート5044でBeatsからデータを受信するために、入力構成ファイルbeats-input.confを作成する必要があります。

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

次の行を追加します:

input {
  beats {
    port => 5044
  }
}

終了したら、ファイルを保存して閉じます。

Logstashフィルターを構成する

次に、ビートから受信したイベントを処理するようにフィルタープラグインを構成する必要があります。ここでは、UbuntuシステムからSSH認証イベントを収集するためのビートを構成します。これを行うには、新しいフィルター構成ファイルssh-auth-filter.confを作成します。

nano /etc/logstash/conf.d/ssh-auth-filter.conf

次の行を追加します:

filter {
  grok {
    match => { "message" => "%{SYSLOGTIMESTAMP:timestamp}\s+%{IPORHOST:dst_host}\s+%{WORD:syslog_program}\[\d+\]:\s+(?\w+\s+password)\s+for\s+%{USER:auth_user}\s+from\s+%{SYSLOGHOST:src_host}.*" }
    add_field => { "activity" => "SSH Logins" }
    add_tag => "linux_auth"
    }
}

終了したら、ファイルを保存して閉じます。

Logstash出力の構成

次に、Logstashがイベントデータを特定の宛先に送信できるように出力プラグインを構成する必要があります。

ここでは、ローカルホストで実行されているElasticsearchにデータを送信するLogstash出力構成ファイルを作成します。

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

次の行を追加します:

output {
   elasticsearch {
     hosts => ["localhost:9200"]
     manage_template => false
     index => "ssh_auth-%{+YYYY.MM}"
 }
  stdout { codec => rubydebug }
}

終了したら、ファイルを保存して閉じます。次に、Logstashサービスを再起動して、変更を適用します。

systemctl restart logstash
テストログスタッシュ

これで、Logstashがインストールおよび構成されました。それが機能しているかどうかをテストする時が来ました。

次のコマンドを使用して、Logstashの構成を確認できます。

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

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

Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties
[2019-11-26T06:27:48,104][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/var/lib/logstash/queue"}
[2019-11-26T06:27:48,119][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/var/lib/logstash/dead_letter_queue"}
[2019-11-26T06:27:50,331][INFO ][org.reflections.Reflections] Reflections took 47 ms to scan 1 urls, producing 20 keys and 40 values 
Configuration OK
[2019-11-26T06:27:51,899][INFO ][logstash.runner          ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

おめでとう!これで、Ubuntu18.04サーバーにLogstashが正常にインストールおよび構成されました。


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

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

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

  1. Ubuntu20.04にRをインストールする方法

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

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

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

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

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