Back to Home
Database

Monitor PostgreSQL dengan Prometheus dan Grafana

Zainun Kamal
6/18/2026
5 views

Introduction

Mengetahui health status dan metrik performa database secara real-time adalah langkah awal dalam menjaga stabilitas infrastruktur sehingga kita butuh tools yang tepat untuk membaca data tersebut dengan mudah.

Postingan ini akan memandu untuk melakukan setup monitoring PostgreSQL dengan menggunakan Prometheus dan Grafana dan juga untuk agent kita akan menggunakan postgresql exporter. Untuk kasus ini, Prometheus dan Grafana sudah tersedia dan kita hanya fokus untuk postgresql metrics saja.

Installation

Step 1: Buat akun monitoring di postgresql

CREATE USER postgres_exporter WITH PASSWORD 'PasswordAkunIni';

GRANT CONNECT ON DATABASE postgres TO postgres_exporter;

GRANT pg_monitor TO postgres_exporter;

Step 2: Download postgresql exporter dan Install postgresql

VERSION=$(curl -s https://api.github.com/repos/prometheus-community/postgres_exporter/releases/latest|grep tag_name|cut -d '"' -f 4|sed 's/v//')

sudo mkdir /opt/postgresql_exporter && sudo cd /opt/postgresql_exporter

sudo wget https://github.com/prometheus-community/postgres_exporter/releases/download/v$VERSION/postgres_exporter-$VERSION.linux-amd64.tar.gz

sudo tar -xf postgres_exporter-$VERSION.linux-*.tar.gz

sudo cp postgres_exporter-$VERSION.linux-*/postgres_exporter /usr/local/bin

Step 3: Buat file untuk konfigurasi postgresql

sudo nano postgres_exporter.env

DATA_SOURCE_NAME="postgresql://postgres_exporter:PasswordAkunIni@localhost:5432/?sslmode=disable"

Step 4: Buat service untuk postgresql exporter

sudo nano /etc/systemd/system/postgres_exporter.service

[Unit]
Description=Prometheus exporter for Postgresql
Wants=network-online.target
After=network-online.target

[Service]
User=postgres_exporter
Group=postgres_exporter
WorkingDirectory=/opt/postgresql_exporter
EnvironmentFile=/opt/postgresql_exporter/postgres_exporter.env
ExecStart=/usr/local/bin/postgres_exporter --web.listen-address=:9187 --web.telemetry-path=/metrics
Restart=always

[Install]
WantedBy=multi-user.target

Step 5: Buat user nologin untuk posgresql exporter

sudo useradd -M -r -s /sbin/nologin postgres_exporter
sudo chown -R postgres_exporter:postgres_exporter /opt/postgresql_exporter
sudo systemctl daemon-reload
sudo systemctl enable --now postgres_exporter

sudo ufw allow 9187

Untuk metrics postgres exporter sudah siap, sekarang kita akan menambahkan ke Prometheus dan Grafana

Adding to Prometheus & Grafana

Menambahkan ke prometheus.yaml

Tambahkan dibagian scrape_configs kemudian restart prometheus service

  # Scraping PostgreSQL Metrics
  - job_name: 'postgres_exporter'
    static_configs:
      - targets: ['<IPADDRESS_POSTGRESQL>:9187']

Menambahkan ke dashboard Grafana

Untuk dashboard postgresql, kita bisa menggunakan dashbord yang sudah tersedia di https://grafana.com/grafana/dashboard atau bisa menggunakan ID 9628