はじめに
FilebeatにはPostgreSQLログ用のモジュールが最初から同梱されており、モジュールを有効にするだけで利用できます。
環境
使用した環境は以下のとおり。
- CentOS 7.5
- Elasticsearch 7.8
- Kibana 7.8
- Filebeat 7.8
「ElasticStack 7.8 環境構築」で構築した環境を利用しています。
Filebeatの設定
PostgreSQLログ用のモジュールを有効にします。
# filebeat modules enable postgresql
PostgreSQLログ用のモジュールの設定ファイルは以下のファイルです。
※先ほどのコマンドでpostgresql.yml.disabledからpostgresql.ymlに変更されているようです。
- /etc/filebeat/modules.d/postgresql.yml
ファイルは以下のようにPostgreSQLログのパスを環境に合わせて修正します。
- module: postgresql
log:
enabled: true
var.paths: ["/data/log/postgresql-*.log"]
次にKibanaへ対してサンプルダッシュボードを作成するため、以下のように"setup.dashboards.enabled"を"true"に設定します。
他にElasticsearchへアウトプットするように設定しています。
※修正箇所のみ抜粋
# vi /etc/filebeat/filebeat.yml
setup.dashboards.enabled: true
output.elasticsearch:
hosts: ["localhost:9200"]
他にもsetupコマンドでKibanaへ対してサンプルダッシュボードを作成することができます。
# filebeat setup
Kibanaには次のサンプルダッシュボードが生成されます。それ以外のモジュール用のダッシュボードも生成されています。
- [Filebeat PostgreSQL] Overview ECS
他にもPostgreSQL用にはQuery Durations等が表示できる、[Filebeat PostgreSQL] Query Duration Overview ECSというダッシュボードもありました。
最後にFilebeatを実行します。
# systemctl start filebeat
Kibanaでの可視化
KibanaでPostgreSQLログ用のダッシュボードを選択すると以下のように表示されます。