サーバーのログはなんとなく /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ログの解析が始まる
目次
- 前提環境とFilebeatの役割
- Elastic APTリポジトリの追加
- Filebeatをインストールする
- filebeat.yml を設定する(ファイルストリーム入力 + Elasticsearch出力)
- Filebeatを起動して動作を確認する
- モジュールで Nginx ログを解析する
- よくあるエラーと解決策
- まとめ
前提環境と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 でログを転送するには、接続先の Elasticsearch が起動済みであることが前提です。この記事では Elasticsearch のインストール手順は扱いません。別ホストにすでに動いているElasticsearchがある想定で進めます。
Elastic APTリポジトリの追加
Filebeat は Ubuntu の公式パッケージリポジトリには含まれていません。Elastic社が配布する専用APTリポジトリを追加する必要があります。手順は2ステップです。
手順1:GPGキーを追加する
パッケージの改ざん検知に使う GPG 公開鍵をダウンロードして、apt が参照できる場所に配置します。
| sudo gpg –dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
エラーなく処理が終われば成功です。
手順2:APTリポジトリを追加する
Elastic の APT リポジトリを /etc/apt/sources.list.d/ に追加します。
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です。
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) …
インストール後、バージョンを確認します。
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.yml を設定する
設定ファイルは /etc/filebeat/filebeat.yml にあります。インストール直後のデフォルト設定では enabled: false になっていて何も転送しません。最低限、次の2か所を変更します。
①入力(inputs)の設定
どのログファイルを読み込むかを指定します。type: filestream は Filebeat 7.16 以降の推奨入力タイプで、旧 log タイプの後継です。
# — 変更箇所(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かホスト名に変えます。
output.elasticsearch:
hosts: [“192.168.1.10:9200”] # Elasticsearch のアドレスに変更
username: “elastic”
password: “yourpassword”
Elasticsearch にセキュリティ(X-Pack)が有効な場合は username と password が必要です。Elastic 8.x はデフォルトでセキュリティが有効なので、ほとんどのケースで認証情報が必要になります。

Filebeatを起動して動作を確認する
手順1:設定ファイルの構文チェック
起動前に filebeat test config で設定の構文を確認します。実際に Docker 上で実行したところ、Config OK と表示されました。
Config OK

手順2:接続確認
filebeat test output で Elasticsearch への到達性を確認します。コマンドを実行すると、DNS解決・TCP接続・認証の各ステップが順番に表示されます。Elasticsearch が起動していない場合は「dns lookup... ERROR」や「dial up... ERROR」が出ます。Elasticsearch が正常に動いていれば最後まで OK が続きます。
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が停止)を意味します。
手順3:サービスとして起動する
設定が確認できたら systemd サービスとして起動し、自動起動も有効にします。
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 に指定したログファイルの転送が始まっています。

モジュールで Nginx ログを解析する
Filebeat には55種類以上のモジュールが付属しています。モジュールは特定サービスのログ解析に必要な設定(入力パス・パース形式・Kibanaダッシュボード)をまとめたものです。
Enabled:
(none)
Disabled:
activemq apache auditd aws azure elasticsearch haproxy
kafka kibana logstash microsoft mongodb mysql nginx
postgresql rabbitmq redis system zeek zoom …
Nginx モジュールを有効にする例です。
Enabled nginx
$ sudo filebeat setup –pipelines –modules nginx
Loaded Ingest Pipelines
$ sudo systemctl restart filebeat
モジュールを使うと、filebeat.yml を手動で書くより設定ミスが減ります。Nginx のアクセスログ(/var/log/nginx/access.log)とエラーログを自動的に拾ってくれます。

よくあるエラーと解決策
①ログが Elasticsearch に届かない
まず filebeat test output で接続を診断します。接続先ホストが見つからない場合は次のように DNS エラーが出ます。
elasticsearch: http://wrong-host:9200…
connection…
parse host… OK
dns lookup… ERROR lookup wrong-host: no such host
hosts に設定したホスト名やIPアドレスが正しいかを確認します。ElasticsearchサービスはIPアドレスで直接指定するのが確実です。
$ curl http://192.168.1.10:9200
②「Exiting: error loading config file」
設定ファイルの YAML 構文エラーです。インデントはスペース2つで統一し、タブ文字を混ぜないよう注意します。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 ユーザーをファイルの読み取りグループに追加します。
$ sudo systemctl restart filebeat
まとめ
Filebeat のセットアップをまとめます。
- Elastic の APT リポジトリを追加してから
apt install filebeatでインストール。Ubuntu 22.04 / 24.04 ともに 8.19.16 が入る(2026年6月時点) filebeat.ymlのinputsに監視ファイルを指定し、output.elasticsearchに接続先を書くfilebeat test config→filebeat test output→systemctl startの順で進めると確実- nginx / mysql / postgresql など55種類以上のモジュールがあり、
modules enableで即使える
VPS でサーバーを運用している場合、複数ホストのログを Elasticsearch に集約しておくと、障害時の調査が格段に楽になります。まず1台で試してみるのをおすすめします。
Filebeatと組み合わせるVPSを選ぶなら、https://linuxlab.jp/ubuntu-server-setup/も参考にしてください。



コメント