使用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]数据库概览时,自动出现并登记的仪表盘将显示如下屏幕。

image.png

这是显示的图表。

    • 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

另外,系统度量指标可以在以下的仪表盘中显示。

image.png
广告
将在 10 秒后关闭
bannerAds