Tutorial: Instalasi dan Konfigurasi Prometheus untuk Monitoring MySQL Server

Panduan lengkap instalasi sistem time-series database Prometheus di lingkungan Linux, kini mencakup langkah-langkah prasyarat wajib seperti pembaruan sistem (apt update), instalasi tool penting (wget, tar), hingga pembuatan user dan konfigurasi layanan. Tutorial ini menjelaskan bagaimana menyesuaikan file prometheus.yml untuk memastikan Prometheus berhasil menarik (scrape) metrik kinerja dari database MySQL Anda.

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.

  1. Arahkan ke menu Status > Targets.

  2. Anda seharusnya melihat job baru bernama mysql_server.

  3. 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.

Share the Post:

Related Posts