Elastic Stackの歩きかた#6

Filebeatのインストール

また、また間が空きましたが。今回の記事は、Filebeatのインストール手順です。記事ではFilebeat 7.0を使用します。

1.設計要素

今回の筆者の前提環境では、Webサーバのログを随時Elastic Stackサーバへ保存してFilebeat経由でelasticsearchへ流し込む方式とします。(WebサーバはApacheとします)

Webサーバのログは、Apacheモジュールを使用して取り込むこととするのでfilebeat.ymlへはelasticsearchとkibanaのセットアップ定義くらい。(Filebeatの詳しい設定については、Filebeat Reference を参照してみてください) Webサーバのログを定期的にElastic Stackサーバーまで持ってくる方式のほうが重要。(筆者は毎日1回、rsyncでログファイルを持ってくる方式としています)

ログファイルは、日毎に以下のように保存する前提とします。

アクセスログ:/var/log/wisdomgate/ssl_access_log.20190515/ssl_access_log.20190515

エラーログ:/var/log/wisdomgate/ssl_error_log.20190515/ssl_error_log.20190515

2.インストール

インストールは他のパッケージと同様にyumで行います。

PGP Keyやリポジトリ設定はElasticsearchのインストールで設定済みなので割愛します。

⓵filebeatのインストール

#
# yum install filebeat
#

⓶設定ファイルの編集

filebeat.yml

以下の設定をします。(デフォルト値を変更した箇所のみ抜粋)

・Kibana ホスト名:Kibanaサーバのホスト名とport番号を設定

・elasticsearchホスト名:elasticsearchのホスト名とport番号を設定

#
#============================== Kibana =====================================

# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana:

  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "192.168.11.64:5601"

  # Kibana Space ID
  # ID of the Kibana Space into which the dashboards should be loaded. By default,
  # the Default Space will be used.
  #space.id:

#============================= Elastic Cloud ==================================

# These settings simplify using filebeat with the Elastic Cloud (https://cloud.elastic.co/).

# The cloud.id setting overwrites the `output.elasticsearch.hosts` and
# `setup.kibana.host` options.
# You can find the `cloud.id` in the Elastic Cloud web UI.
#cloud.id:

# The cloud.auth setting overwrites the `output.elasticsearch.username` and
# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
#cloud.auth:

#================================ Outputs =====================================

# Configure what output to use when sending the data collected by the beat.

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

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"
#

⓷INDEXテンプレートのロード

Elastic Stack サーバでINDEXテンプレートをロードします。

#
# filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Index setup complete.
#

⓸Dashboardのセットアップ

Elastic Stack サーバでFilebeat用のDashboardを作成します。

#
# filebeat setup --dashboards
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
#

⑤Apacheモジュールの有効化

#
# filebeat modules enable apache
#

⑥apache.ymlの編集

/etc/filebeat/modules.d 配下にある apache.yml を編集する。

# Module: apache
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.0/filebeat-module-apache.html

- module: apache
  # Access logs
  access:
    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/wisdomgate/ssl_access_log.*/ssl_access_log.*"]
  # Error logs
  error:
    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/wisdomgate/ssl_error_log.*/ssl_error_log.*"]

⑦filebeatの起動

以下コマンドを実行

#
# systemctl start filebeat
#

⑧INDEXの確認

DiscoverでINDEXにログが登録されている事を確認します。

⑨Dashboard の確認

Filebeat(Apache)の Dashboard を確認します。


Geo ロケーションも表示できてます。

次回はLogstashによるデータ出力です。

いじょ。