Help us understand the problem. What is going on with this article?

FilebeatでPostgreSQLのログをElasticsearchへ送る

はじめに

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へアウトプットするように設定しています。
※修正箇所のみ抜粋

filebeat.yml
# 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ログ用のダッシュボードを選択すると以下のように表示されます。

image.png

参考

mkyz08
SIer&バックエンドエンジニア&日曜プログラマー。 Apache Camel/VoltDB/Oracle/Apache karaf。 基本的に仕事外での自分用のメモ(興味があること)として記事を書いています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away