Filebeat インストール · 3 min read · Oct 27, 2025

UbuntuにFileBeatをインストールする方法

Elastic Stackは、Elasticsearch、Logstash、Kibana、Beatsの4つの主要コンポーネントの組み合わせです。Filebeatは、このファミリーの中で最も有名なメンバーの1つで、イベントログデータを収集、転送、集中管理し、ElasticsearchまたはLogstashにインデックス化します。Filebeatには、Apache、Nginx、System、MySQL、auditdなど、一般的なログ形式の視覚化を単一のコマンドで簡素化する多くのモジュールがあります。

このチュートリアルでは、Ubuntu 18.04でFilebeatをインストールし、イベントログやSSH認証イベントをLogstashに転送する方法を示します。

前提条件

  • Elasticsearch、Kibana、Logstashがインストールされ、設定されたUbuntu 18.04を実行しているサーバー。
  • サーバーに設定されたrootパスワード。

始めに

始める前に、システムを最新バージョンに更新します。次のコマンドを実行することで行えます:

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

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

Filebeatのインストール

デフォルトでは、FilebeatはUbuntu 18.04のデフォルトリポジトリにはありません。したがって、Elastic Stack 7 APTリポジトリをシステムに追加する必要があります。

最初に、次のコマンドで必要なパッケージをインストールします:

apt-get install apt-transport-https -y

次に、次のコマンドでElastic Stackキーをダウンロードして追加します:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

次に、次のコマンドでElastic Stack 7 Aptリポジトリを追加します:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list

次に、リポジトリを更新し、次のコマンドでFilebeatをインストールします:

apt-get update -y  
apt-get install filebeat -y

インストールが完了したら、次のステップに進むことができます。

Filebeatの設定

デフォルトでは、FilebeatはイベントデータをElasticsearchに送信するように設定されています。ここでは、FilebeatをLogstashにイベントデータを送信するように設定します。次のコマンドでファイルを編集できます:/etc/filebeat/filebeat.yml

nano /etc/filebeat/filebeat.yml

Elasticsearch出力をコメントアウトし、Logstash出力のコメントを解除します。以下のようになります:

#-------------------------- Elasticsearch output ------------------------------

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

#----------------------------- Logstash output --------------------------------

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

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

Filebeatシステムモジュールの有効化

デフォルトでは、Filebeatには多くのモジュールが付属しています。次のコマンドで全モジュールをリストできます:

filebeat modules list

次の出力が表示されるはずです:

Enabled:

Disabled:
apache
audited
aws
cef
cisco
coredns
elasticsearch
envoyproxy
googlecloud
haproxy
ibmmq
icinga
iis
iptables
kafka
kibana
logstash
mongodb
mssql
mysql
nats
netflow
nginx
osquery
panw
postgresql
rabbitmq
redis
santa
suricata
system
traefik
zeek

デフォルトでは、すべてのモジュールは無効になっています。したがって、システムモジュールを有効にして、システムログサービスによって作成されたログを収集および解析する必要があります。次のコマンドでシステムモジュールを有効にできます:

filebeat modules enable system

次に、次のコマンドでシステムモジュールを確認できます:

filebeat modules list

システムモジュールが有効になっていることが確認できるはずです:

Enabled:
system

次に、システムモジュールを設定して、認証ログを読み取る必要があります。次のコマンドでファイルを編集できます:/etc/filebeat/modules.d/system.yml

nano /etc/filebeat/modules.d/system.yml

次の行を変更します:

- module: system
  # Syslog
  syslog:
    enabled: false
...
  # Authorization logs
  auth:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/var/log/auth.log"]

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

Elasticsearchにインデックステンプレートをロード

次に、Elasticsearchにテンプレートを手動でロードする必要があります。次のコマンドで行えます:

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

次の出力が表示されるはずです:

Index setup finished.

次に、インデックステンプレートを生成し、次のコマンドでElastic Stackサーバーにテンプレートをインストールします:

filebeat export template > filebeat.template.json  
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.0.1 [email protected]

最後に、次のコマンドでFilebeatサービスを開始し、システム再起動後に自動的に開始されるように有効にします:

systemctl start filebeat  
systemctl enable filebeat

次のコマンドでFilebeatのステータスを確認できます:

systemctl status filebeat

次の出力が表示されるはずです:

? filebeat.service - Filebeat sends log files to Logstash or directly to Elasticsearch.
   Loaded: loaded (/lib/systemd/system/filebeat.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-11-26 06:45:18 UTC; 14s ago
     Docs: https://www.elastic.co/products/beats/filebeat
 Main PID: 13059 (filebeat)
    Tasks: 28 (limit: 463975)
   CGroup: /system.slice/filebeat.service
           ??13059 /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -path.home /usr/share/filebeat -path.config /etc/filebeat 

Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.485Z        INFO        add_cloud_metadata/add_cloud_metadata.go:87        add_clou
Nov 26 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.486Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.485Z        INFO        pipeline/output.go:95        Connecting to backoff(async(tc
Nov 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.487Z        INFO        pipeline/output.go:105        Connection to backoff(async(t

Elasticsearchデータ受信のテスト

次に、次のコマンドでElasticsearchがデータを受信しているかどうかを確認します:

curl -X GET localhost:9200/_cat/indices?v

次の出力が表示されるはずです:

health status index                            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana_task_manager_1           fpHT_GhXT3i_w_0Ob1bmrA   1   0          2            0     46.1kb         46.1kb
yellow open   ssh_auth-2019.11                 mtyIxhUFTp65WqVoriFvGA   1   1      15154            0      5.7mb          5.7mb
yellow open   filebeat-7.4.2-2019.11.26-000001 MXSpQH4MSZywzA5cEMk0ww   1   1          0            0       283b           283b
green  open   .apm-agent-configuration         Ft_kn1XXR16twRhcZE4xdQ   1   0          0            0       283b           283b
green  open   .kibana_1                        79FslznfTw6LfTLc60vAqA   1   0          8            0     31.9kb         31.9kb

次のコマンドでssh_auth-2019.05インデックスを確認することもできます:

curl -X GET localhost:9200/ssh_auth-*/_search?pretty

次の出力が表示されるはずです:

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "ssh_auth-2019.11",
        "_type" : "_doc",
        "_id" : "g7OXpm4Bi50dVWRYAyK4",
        "_score" : 1.0,
        "_source" : {
          "log" : {
            "offset" : 479086,
            "file" : {
              "path" : "/var/log/elasticsearch/gc.log"
            }
          },
          "event" : {
            "timezone" : "+00:00",
            "dataset" : "elasticsearch.server",
            "module" : "elasticsearch"
          },

Kibanaにインデックスを追加

次に、Kibanaダッシュボードにログインし、インデックス パターンをクリックします。次のページが表示されるはずです:

次に、インデックスパターンの作成をクリックします。次のページが表示されるはずです:

ssh_auth-インデックスを追加し、*次のステップボタンをクリックします。次のページが表示されるはずです:

次に、@timestampを選択し、インデックスパターンの作成ボタンをクリックします。次のページが表示されるはずです:

次に、左ペインの発見タブをクリックします。次の画面でデータを確認できるはずです:

おめでとうございます! Filebeatを正常にインストールし、Logstashにイベントデータを送信するように設定しました。すべてのデータを受信した後、Kibanaダッシュボードを作成することができます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。