使用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。
# vi /etc/filebeat/filebeat.yml
setup.dashboards.enabled: true
output.elasticsearch:
hosts: ["localhost:9200"]
您还可以使用 setup 命令在 Kibana 中创建示例仪表板。
# filebeat setup
Kibana会生成以下样例仪表盘,也会生成其他模块使用的仪表盘。
- [Filebeat PostgreSQL] Overview ECS
除此之外,还有一个名为[Filebeat PostgreSQL] Query Duration Overview ECS的仪表板可以显示与PostgreSQL相关的查询持续时间等信息。
最后执行Filebeat。
# systemctl start filebeat
使用Kibana进行数据可视化
选择用于PostgreSQL日志的Kibana仪表板将显示如下内容。
请参阅
-
- Quick start: modules for common log formats
- PostgreSQL module