Fase I: Prasyarat dan Instalasi Prometheus Inti
Langkah-langkah ini dijalankan di server yang akan menjadi host Prometheus (Server Monitoring).
Langkah 1: Persiapan User dan Direktori yang Aman
# Buat user dan group non-login 'prometheus'
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
# Buat direktori konfigurasi dan data
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
Langkah 2: Instalasi Binary Prometheus
Asumsi: Anda berada di direktori home Anda dan menginstal versi 2.x terbaru. Ganti URL jika diperlukan.
# Unduh paket Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.47.1/prometheus-2.47.1.linux-amd64.tar.gz
# Ekstrak file
tar xvfz prometheus-2.47.1.linux-amd64.tar.gz
# Pindahkan binary dan atur ownership
cd prometheus-2.47.1.linux-amd64
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
# Pindahkan file konfigurasi dan konsol web bawaan
sudo cp -r consoles /etc/prometheus
sudo cp -r console_libraries /etc/prometheus
sudo cp prometheus.yml /etc/prometheus/
# Atur ownership ke user prometheus
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
Langkah 3: Konfigurasi Layanan Sistem (Systemd Service)
Buat file layanan /etc/systemd/system/prometheus.service dan masukkan konfigurasi berikut.
sudo nano /etc/systemd/system/prometheus.service
Masukkan konten ini:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
[Install]
WantedBy=multi-user.target
Langkah 4: Jalankan Prometheus Inti
# Muat ulang daemon systemd
sudo systemctl daemon-reload
# Aktifkan layanan agar berjalan saat boot
sudo systemctl enable prometheus
# Mulai layanan Prometheus
sudo systemctl start prometheus
# Verifikasi status layanan
sudo systemctl status prometheus
Pastikan statusnya active (running). Anda dapat mengakses web interface pada http://[IP_SERVER]:9090.
Fase II: Konfigurasi MySQL Server Exporter
Langkah-langkah ini dijalankan di server yang meng-host MySQL (Server Target).
Langkah 5: Persiapan User Monitoring di MySQL
Login ke MySQL console dan jalankan perintah berikut. Ganti YOUR_MONITORING_PASSWORD dengan kata sandi yang aman.
CREATE USER 'prometheus_user'@'%' IDENTIFIED BY 'YOUR_MONITORING_PASSWORD';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus_user'@'%';
FLUSH PRIVILEGES;
EXIT;
Langkah 6: Instalasi Binary MySQL Exporter
# Buat user dan group non-login untuk exporter
sudo groupadd --system mysqld_exporter
sudo useradd -s /sbin/nologin --system -g mysqld_exporter mysqld_exporter
# Unduh MySQL Exporter (ganti versi jika perlu)
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
# Ekstrak
tar xvfz mysqld_exporter-0.15.0.linux-amd64.tar.gz
# Pindahkan binary
sudo mv mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chown mysqld_exporter:mysqld_exporter /usr/local/bin/mysqld_exporter
Langkah 7: Konfigurasi Layanan MySQL Exporter
Buat file layanan /etc/systemd/system/mysqld_exporter.service dan masukkan detail koneksi database Anda menggunakan environment variable DATA_SOURCE_NAME.
sudo nano /etc/systemd/system/mysqld_exporter.service
Masukkan konten ini:
[Unit]
Description=Prometheus MySQL Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=mysqld_exporter
Group=mysqld_exporter
Type=simple
Environment="DATA_SOURCE_NAME=prometheus_user:YOUR_MONITORING_PASSWORD@(localhost:3306)/"
ExecStart=/usr/local/bin/mysqld_exporter
[Install]
WantedBy=multi-user.target
Ganti YOUR_MONITORING_PASSWORD dengan kata sandi yang telah Anda buat di Langkah 5.
Langkah 8: Jalankan MySQL Exporter
# Muat ulang daemon systemd
sudo systemctl daemon-reload
# Aktifkan layanan
sudo systemctl enable mysqld_exporter
# Mulai layanan
sudo systemctl start mysqld_exporter
# Verifikasi status (akan berjalan pada port 9104)
sudo systemctl status mysqld_exporter
Fase III: Konfigurasi Prometheus untuk Scrape MySQL
Kembali ke Server Monitoring. Kita perlu memodifikasi file konfigurasi Prometheus.
Langkah 9: Modifikasi prometheus.yml
Edit file konfigurasi utama Prometheus: /etc/prometheus/prometheus.yml.
sudo nano /etc/prometheus/prometheus.yml
Tambahkan job baru ke dalam block scrape_configs: (di bawah job prometheus bawaan). Pastikan Anda mengganti [IP_MYSQL_SERVER] dengan alamat IP yang benar dari server MySQL Anda.
# Bagian ini sudah ada di file, jangan dihapus
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
# Konfigurasi Baru untuk MySQL Monitoring
- job_name: 'mysql_server'
# Atur interval scraping yang lebih jarang jika perlu (opsional)
scrape_interval: 15s
static_configs:
# Target adalah IP MySQL Server dan port MySQL Exporter (default 9104)
- targets: ['[IP_MYSQL_SERVER]:9104']
Langkah 10: Muat Ulang Konfigurasi Prometheus
Setelah menyimpan perubahan pada prometheus.yml, muat ulang konfigurasi Prometheus. Ini dilakukan tanpa menghentikan layanan, sehingga mencegah downtime.
# Kirim sinyal HUP untuk memuat ulang konfigurasi
sudo systemctl reload prometheus
Langkah 11: Verifikasi Akhir
Akses web interface Prometheus Anda pada http://[IP_SERVER]:9090.
Arahkan ke menu Status > Targets.
Anda seharusnya melihat job baru bernama
mysql_server.Pastikan status target di bawah job tersebut berwarna hijau dan bertuliskan
UP.
Jika statusnya UP, artinya Prometheus berhasil terhubung ke MySQL Exporter dan mulai mengumpulkan metrik kinerja database Anda. Anda kini dapat menggunakan PromQL untuk membuat query data MySQL atau mengintegrasikannya dengan Grafana untuk visualisasi.

