使用Metricbeat(弹性堆栈)来收集PostgreSQL的指标
首先
使用Metricbeat(Elastic Stack)来收集PostgreSQL的指标,并在Kibana的仪表板上进行确认。
环境
我正在這個環境下進行測試。
-
- CentOS 7.5
-
- Elasticsearch 7.8
-
- Kibana 7.8
- Metricbeat 7.8
我们使用以下发布的环境来构建Elasticsearch和Kibana。
- JavaアプリケーションをElastic APMで計測してみる
安装Metricbeat。
安装Metricbeat,请参考以下的官方文档进行操作。
- https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-installation.html
首先,下载并安装RPM。
# curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.8.1-x86_64.rpm
# rpm -vi metricbeat-7.8.1-x86_64.rpm
启用从PostgreSQL收集指标的模块。默认情况下,还会收集系统指标。
# metricbeat modules enable postgresql
Enabled postgresql
登録完PostgreSQL模块后,我们将重新检查配置。
这次我们进行了以下设置。
# vi /etc/metricbeat/modules.d/postgresql.yml
- module: postgresql
metricsets:
- database
- bgwriter
- activity
- statement
period: 10s
hosts: ["postgres://localhost:5432?sslmode=disable"]
username: postgres
password: postgres
为了使用statement metrics,需要在PostgreSQL上安装pg_stat_statements扩展。请使用以下命令进行安装,并在postgresql.conf中配置加载该模块。
# CREATE EXTENSION pg_stat_statements;
#postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
接下来,我们将配置Elasticsearch和Kibana的端点。
配置Kibana的端点后,您可以使用示例Kibana仪表板。
索引模板将自动注册到Elasticsearch。
# vi /etc/metricbeat/metricbeat.yml
setup.kibana:
host: "localhost:5601"
output.elasticsearch:
hosts: ["localhost:9200"]
Metricbeat内包了一些示例的Kibana仪表盘,您可以使用以下命令进行创建。
metricbeat setup --dashboards
最终,设置并启动Metricbeat的自动启动。
# systemctl enable metricbeat
# systemctl start metricbeat
Metricbeat的日志会输出到以下位置。
/var/log/metricbeat/metricbeat
在Kibana的仪表板上检查指标。
当您选择[Metricbeat PostgreSQL]数据库概览时,自动出现并登记的仪表盘将显示如下屏幕。
这是显示的图表。
-
- Rows Fetched/Returned
-
- Database Transactrions
-
- Query Latency
-
- Top Queries
-
- Fileblock IO
-
- Rows Inserted/Deleted/Updated
-
- Conflict/Deadlock Rates
-
- Local block cache stats
- Shared block cache stats
另外,系统度量指标可以在以下的仪表盘中显示。