Filebeat on Ubuntu — ログファイルをElasticsearchへ転送する設定

モニタリング

サーバーのログはなんとなく /var/log/ に溜まっていくだけ、という状態になっていませんか。Filebeat を使えば、その散らばったログを Elasticsearch へリアルタイムで転送でき、Kibana で一元管理できるようになります。

この記事では Ubuntu 24.04 LTS に Filebeat 8.19.16 をインストールし、ログをElasticsearchへ転送するまでの設定を、実際に動かした結果とともに紹介します。

この記事のポイント

  • Filebeat は Ubuntu 公式リポジトリには含まれない。Elastic社の APT リポジトリを追加してインストールする
  • 2026年6月時点の最新版は 8.19.16。Ubuntu 22.04・24.04 どちらでも同じバージョンが入る
  • 設定後は filebeat test config で構文チェック → systemctl start filebeat で起動の2ステップ
  • nginx・mysql・system など55種類以上のモジュールが用意されており、filebeat modules enable nginx 一発でNginxログの解析が始まる

目次

  1. 前提環境とFilebeatの役割
  2. Elastic APTリポジトリの追加
  3. Filebeatをインストールする
  4. filebeat.yml を設定する(ファイルストリーム入力 + Elasticsearch出力)
  5. Filebeatを起動して動作を確認する
  6. モジュールで Nginx ログを解析する
  7. よくあるエラーと解決策
  8. まとめ

前提環境とFilebeatの役割

動作確認した環境は次の通りです。

項目
OS Ubuntu 24.04.4 LTS (Noble Numbat)
Filebeat 8.19.16(Elastic 8.x APT リポジトリ)
Elasticsearch 8.x(同一ホストまたは別ホスト)
検証日 2026年6月22日

Filebeat は ログシッパー(ログ転送エージェント)です。サーバー上のログファイルを読み取り、Elasticsearch や Logstash へ送り続けます。Elastic Stack(旧ELK Stack)の「B」の部分に当たり、インストールは軽量で常駐メモリは50〜60MB程度です。

FilebeatのインストールセッションのスクリーンショットをPlaywrightで撮影
FilebeatのインストールセッションのスクリーンショットをPlaywrightで撮影

注意

Filebeat でログを転送するには、接続先の Elasticsearch が起動済みであることが前提です。この記事では Elasticsearch のインストール手順は扱いません。別ホストにすでに動いているElasticsearchがある想定で進めます。

Elastic APTリポジトリの追加

Filebeat は Ubuntu の公式パッケージリポジトリには含まれていません。Elastic社が配布する専用APTリポジトリを追加する必要があります。手順は2ステップです。

手順1:GPGキーを追加する

パッケージの改ざん検知に使う GPG 公開鍵をダウンロードして、apt が参照できる場所に配置します。




ubuntu@vps-linuxlab: ~
$ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch \
  | sudo gpg –dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

エラーなく処理が終われば成功です。

手順2:APTリポジトリを追加する

Elastic の APT リポジトリを /etc/apt/sources.list.d/ に追加します。




ubuntu@vps-linuxlab: ~
$ echo “deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] \
  https://artifacts.elastic.co/packages/8.x/apt stable main” \
  | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main

出力にリポジトリ行が表示されれば追加完了です。

Filebeatをインストールする

パッケージリストを更新してからインストールします。Filebeat のパッケージサイズは約69MBです。




ubuntu@vps-linuxlab: ~
$ sudo apt-get update && sudo apt-get install -y filebeat
Get:1 https://artifacts.elastic.co/packages/8.x/apt stable/main amd64 filebeat amd64 8.19.16 [68.7 MB]
Fetched 68.7 MB in 18s (3,817 kB/s)
Selecting previously unselected package filebeat.
Unpacking filebeat (8.19.16) …
Setting up filebeat (8.19.16) …

インストール後、バージョンを確認します。




ubuntu@vps-linuxlab: ~
$ filebeat version
filebeat version 8.19.16 (amd64), libbeat 8.19.16 [3e8873641519fca4f8c5f7bbd99f900f2c919344 built 2026-05-18 20:52:31 +0000 UTC] (FIPS-distribution: false)

実際にDockerコンテナで確認した結果です。Ubuntu 22.04 と 24.04 でインストールを試したところ、どちらも 8.19.16 が入りました。Elastic社のリポジトリから直接配信されるため、Ubuntu のバージョンによる差はありません。

Filebeat インストール実ログ(Ubuntu 24.04・実測)
Filebeat インストール実ログ(Ubuntu 24.04・実測)
Ubuntu 22.04 vs 24.04 Filebeat バージョン比較(実測)
Ubuntu 22.04 vs 24.04 Filebeat バージョン比較(実測)

filebeat.yml を設定する

設定ファイルは /etc/filebeat/filebeat.yml にあります。インストール直後のデフォルト設定では enabled: false になっていて何も転送しません。最低限、次の2か所を変更します。

①入力(inputs)の設定

どのログファイルを読み込むかを指定します。type: filestream は Filebeat 7.16 以降の推奨入力タイプで、旧 log タイプの後継です。




ubuntu@vps-linuxlab: /etc/filebeat
$ sudo nano /etc/filebeat/filebeat.yml
# — 変更箇所(filebeat.inputs セクション)—
filebeat.inputs:
– type: filestream
  id: my-app-logs
  enabled: true # false → true に変更
  paths:
    – /var/log/nginx/access.log
    – /var/log/syslog

id は必須です。同一ホストで複数の filestream 入力を定義する場合に重複しないよう注意します。paths にはワイルドカード(/var/log/*.log)も使えます。

②出力(output)の設定

Elasticsearch への接続先を設定します。デフォルトは localhost:9200 です。別ホストに Elasticsearch がある場合はそのIPかホスト名に変えます。




ubuntu@vps-linuxlab: /etc/filebeat
# — output.elasticsearch セクション —
output.elasticsearch:
  hosts: [“192.168.1.10:9200”] # Elasticsearch のアドレスに変更
  username: “elastic”
  password: “yourpassword”

Elasticsearch にセキュリティ(X-Pack)が有効な場合は usernamepassword が必要です。Elastic 8.x はデフォルトでセキュリティが有効なので、ほとんどのケースで認証情報が必要になります。

filebeat.yml のデフォルト設定(実測・キーセクション抜粋)
filebeat.yml のデフォルト設定(実測・キーセクション抜粋)

Filebeatを起動して動作を確認する

手順1:設定ファイルの構文チェック

起動前に filebeat test config で設定の構文を確認します。実際に Docker 上で実行したところ、Config OK と表示されました。




ubuntu@vps-linuxlab: ~
$ sudo filebeat test config -c /etc/filebeat/filebeat.yml
Config OK
filebeat test config の実行結果(実測)
filebeat test config の実行結果(実測)

手順2:接続確認

filebeat test output で Elasticsearch への到達性を確認します。コマンドを実行すると、DNS解決・TCP接続・認証の各ステップが順番に表示されます。Elasticsearch が起動していない場合は「dns lookup... ERROR」や「dial up... ERROR」が出ます。Elasticsearch が正常に動いていれば最後まで OK が続きます。




ubuntu@vps-linuxlab: ~
$ sudo filebeat test output
elasticsearch: http://192.168.1.10:9200…
  connection…
    parse host… OK
    dns lookup… OK
    dial up… OK
    talk to server… OK
    # 各ステップが OK になれば転送開始できます

接続できない場合

各ステップで ERROR が出た場所が問題の所在です。dns lookup... ERROR はホスト名解決の失敗(接続先の設定ミス)、dial up... ERROR はポート到達不能(ファイアウォールまたはElasticsearchが停止)を意味します。

著者アイコン
著者アイコン

Elasticsearch を別ホストに立てた場合は test output が特に便利です。ファイアウォールの設定ミスでポートが塞がっていても、ここで即座に気づけます。ERROR が出たステップをひとつずつ潰していくのが確実です。

手順3:サービスとして起動する

設定が確認できたら systemd サービスとして起動し、自動起動も有効にします。




ubuntu@vps-linuxlab: ~
$ sudo systemctl enable filebeat –now
Created symlink /etc/systemd/system/multi-user.target.wants/filebeat.service → /lib/systemd/system/filebeat.service.
$ sudo systemctl status filebeat
● filebeat.service – Filebeat sends log files to Logstash or directly to Elasticsearch.
     Loaded: loaded (/lib/systemd/system/filebeat.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2026-06-22 03:15:42 UTC; 2s ago
   Main PID: 1842 (filebeat)
      CGroup: /system.slice/filebeat.service
              └─1842 /usr/share/filebeat/bin/filebeat –environment systemd …

active (running) になれば、paths に指定したログファイルの転送が始まっています。

filebeat.yml設定とsystemctlでの起動確認
filebeat.yml設定とsystemctlでの起動確認

モジュールで Nginx ログを解析する

Filebeat には55種類以上のモジュールが付属しています。モジュールは特定サービスのログ解析に必要な設定(入力パス・パース形式・Kibanaダッシュボード)をまとめたものです。




ubuntu@vps-linuxlab: ~
$ filebeat modules list
Enabled:
  (none)

Disabled:
  activemq apache auditd aws azure elasticsearch haproxy
  kafka kibana logstash microsoft mongodb mysql nginx
  postgresql rabbitmq redis system zeek zoom …

Nginx モジュールを有効にする例です。




ubuntu@vps-linuxlab: ~
$ sudo filebeat modules enable nginx
Enabled nginx
$ sudo filebeat setup –pipelines –modules nginx
Loaded Ingest Pipelines
$ sudo systemctl restart filebeat

モジュールを使うと、filebeat.yml を手動で書くより設定ミスが減ります。Nginx のアクセスログ(/var/log/nginx/access.log)とエラーログを自動的に拾ってくれます。

Filebeat 8.19.16 利用可能モジュール一覧(実測)
Filebeat 8.19.16 利用可能モジュール一覧(実測)

よくあるエラーと解決策

①ログが Elasticsearch に届かない

まず filebeat test output で接続を診断します。接続先ホストが見つからない場合は次のように DNS エラーが出ます。




ubuntu@vps-linuxlab: ~
$ sudo filebeat test output
elasticsearch: http://wrong-host:9200…
  connection…
    parse host… OK
    dns lookup… ERROR lookup wrong-host: no such host

hosts に設定したホスト名やIPアドレスが正しいかを確認します。ElasticsearchサービスはIPアドレスで直接指定するのが確実です。




ubuntu@vps-linuxlab: ~
$ sudo systemctl status elasticsearch
$ curl http://192.168.1.10:9200

②「Exiting: error loading config file」

設定ファイルの YAML 構文エラーです。インデントはスペース2つで統一し、タブ文字を混ぜないよう注意します。filebeat test config を実行すると、エラー行が表示されます。




ubuntu@vps-linuxlab: ~
$ sudo filebeat test config
2026/06/22 03:15:00.000 ERROR error loading config file: yaml: line 12: found character that cannot start any token
$ cat -A /etc/filebeat/filebeat.yml | sed -n ‘11,13p’
    – /var/log/syslog^I # ← ^I はタブ文字。スペースに変換する

③ログファイルに権限がなくて読めない

/var/log/auth.log など root のみ読めるファイルがあります。Filebeat を root で動かすか、filebeat ユーザーをファイルの読み取りグループに追加します。




ubuntu@vps-linuxlab: ~
$ sudo usermod -aG adm filebeat
$ sudo systemctl restart filebeat

まとめ

Filebeat のセットアップをまとめます。

  • Elastic の APT リポジトリを追加してから apt install filebeat でインストール。Ubuntu 22.04 / 24.04 ともに 8.19.16 が入る(2026年6月時点)
  • filebeat.ymlinputs に監視ファイルを指定し、output.elasticsearch に接続先を書く
  • filebeat test configfilebeat test outputsystemctl start の順で進めると確実
  • nginx / mysql / postgresql など55種類以上のモジュールがあり、modules enable で即使える

VPS でサーバーを運用している場合、複数ホストのログを Elasticsearch に集約しておくと、障害時の調査が格段に楽になります。まず1台で試してみるのをおすすめします。

Filebeatと組み合わせるVPSを選ぶなら、https://linuxlab.jp/ubuntu-server-setup/も参考にしてください。

コメント

タイトルとURLをコピーしました