0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Logstashを利用して、NFS serverに保管されたログを別システムへ転送する

Last updated at Posted at 2024-12-26

概要

NFS serverはログファイルを格納するストレージとして利用されることが多いです。
本記事では、NFS serverに格納されたログファイルの内容を別システムへ転送するための手順を記載します。

環境

本手順で取り扱う内容は、次の環境にて確認しています。

  • NFS Server
    マシン:Amazon EC2
    マシンサイズ:1vCPU 2GB
    OS:Ubuntu 24.04

  • NFS Client & Logstash server
    マシン:Amazon EC2
    マシンサイズ:1vCPU 2GB
    OS:Ubuntu 24.04
    Logstash:8.17.0

構成図は次のようになります。
image.png

NFS Serverに随時格納されていくログファイルの内容をLogstashによって読み取り、別システムへ転送する仕組みです。
Logstashのインストール場所ですが、NFS serverにインストールできないケースを考慮し、別途マシン(NFS client)を用意し、そちらにインストールします。

前提条件

NFS clientからNFS serverの任意のディレクトリをマウントできていること。
まだ未実施の場合はこちらを参照し、環境を用意して下さい。

手順

本手順は、NFS clientマシンにて実施下さい。

Logstashインストール

Logstashのガイドに従ってください。
次のコマンドでは、Ubuntu24.04にLogstashをインストールします。

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
$ sudo apt-get install apt-transport-https
$ echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
$ sudo apt-get update && sudo apt-get install logstash

Logstashセットアップ

/etc/logstash/conf.d/logstash.confファイルを作成して下さい。

$ sudo vi /etc/logstash/conf.d/logstash.conf

ファイルの中身を書き換えて下さい。
次のlogstash.confはサンプルになります。
各パラメータの詳細が知りたい場合は、ドキュメントを参照して下さい。
File input plugin
Http output plugin
<YOUR-FILE-PATH>の箇所はマウントポイント配下のファイルのパスになるはずです。
※複数のファイルを読み取りたい場合には、ワイルドカード(*)が利用可能です。
※読み取るファイルと、それらが配置される親ディレクトリに対して、"Logstash"ユーザによる実行権限が必要です。

input {
 file {
   path => ["<YOUR-FILE-PATH>"]
   sincedb_path => "/dev/null"
   start_position => "end"
  }
}

output {
  http {
    http_method => "post"
    url => "<YOUR-ENDPOINT>"
    headers => { "Authorization" => "Bearer <YOUR-ACCESSTOKEN>" }
    content_type => "application/json"
  }
}

編集が完了したら、Logstashを起動して下さい。

$ sudo systemctl start logstash

動作確認

NFS Serverにログファイルをアップロードし、
転送先システムにて、ログが受信できていることを確認して下さい。
もし、受信できていない場合、Logstashログ(/var/log/logstash/logstash-plain.log)を確認することが有効です。

また、LogstashのFile input pluginはtailとしても動作するので、対象のファイルに随時追記されていくログに関しても読み取りが可能です。

補足

  • Logstashのバージョン確認コマンド
$ /usr/share/logstash/bin/logstash --version
  • Logstash自動起動 有効化設定
    ※デフォルトでは無効となっています。
$ sudo systemctl enable logstash
  • ログ収集ツールとしては他にもFluentdが有名ですが、Fluentdでログファイルを読み取れるInput pluginはtail pluginのみです。つまり取得対象のファイルに追記されていくログを読み取ることは出来ますが、NFS Serverに新規にアップロードされるファイルの既存ログメッセージは読み取りません。Logstashであれば、新規ファイルの内容も読み取ることが可能です。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?