Pendahuluan

Prometheus adalah software open-source yang digunakan untuk memonitoring sistem komputer server (Fisik ataupun VMs) dari mulai memonitor penggunaan hardware hingga layanan (services) yang beroperasi didalamnya. Prometheus mengumpulkan data dengan cara menarik (pulling) data ke target untuk mengambil data metrik dan disimpan dalam deret waktu (time series). Prometheus dapat terintegrasi ke berbagai services dan hardware dengan menggunakan “exporters”. Salah satunya adalah alertmanager exporter yang berfungsi untuk mengirimkan pesan peringatan ketika server terjadi pada kondisi tertentu.

Grafana adalah software open-source yang digunakan untuk membuat statistik data yang didapat dari berbagai sumber seperti Prometheus, InfluxDB, dsb menjadi bentuk Visual seperti grafik, bagan, dan tabel agar lebih mudah di analisis.

Jadi, kesimpulannya adalah Prometheus bekerja untuk mengambil dan mengumpulkan data. Sedangkan Grafana bertugas mengolah data tersebut menjadi sebuah Informasi dalam bentuk Visual yang mudah di pahami.

Persiapan LAB

  • 1 Buah Server OS Linux (kali ini saya memakai Ubuntu 24.04.2 LTS)
  • Hak akses root atau setara (sudo su)
  • Sudah Ter-Install Web Server (Apache2 atau NginX) — disini
  • Sudah Ter-Install Service MySQL Server — disini

Installasi Prometheus

1. Download binary file Prometheus terbaru di : https://prometheus.io/download/

cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v3.5.0/prometheus-3.5.0.linux-amd64.tar.gz

Atau jika Server kalian tidak ada akses internet, anda dapat menguploadnya via FTP.

2. Extract file yang telah di download (sesuaikan nama filenya).

tar -xvf prometheus-3.5.0.linux-amd64.tar.gz
cd prometheus-3.5.0.linux-amd64.tar.gz

3. Buat user dan folder baru yang akan digunakan untuk menjalankan dan menyimpan data layanan Prometheus.

useradd --no-create-home --shell /bin/false prometheus

mkdir -p /etc/prometheus
mkdir -p /var/lib/prometheus

chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus

4. Pindahkan binary file prometheus & promtool ke /usr/local/bin/ ini berfungsi agar perintah dapat diakses dari mana saja.

cp prometheus /usr/local/bin/
cp promtool /usr/local/bin/

5. Pindahkan juga file default configurasi prometheus ke /etc/prometheus/ dan set owner ke user prometheus.

cp prometheus.yml /etc/prometheus/
chown prometheus:prometheus /etc/prometheus/prometheus.yml

6. Buat systemd service Prometheus. Ini digunakan supaya layanan prometheus dapat dikelola secara mudah melalui perintah service atau systemctl.

nano /etc/systemd/system/prometheus.service

Isi:

ExecStart=/usr/local/bin/prometheus \
  --config.file=/etc/prometheus/prometheus.yml \
  --storage.tsdb.path=/var/lib/prometheus \
  --web.enable-lifecycle \
  --web.listen-address=":9090"

7. Reload daemon & start service atau layanan prometheus nya.

systemctl daemon-reexec
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus

8. Verifikasi status melalui systemctl dan curl.

systemctl status prometheus
curl http://localhost:9090/metrics

9. Anda juga dapat mencoba mengakses melalui browser web GUI :

http://[IP atau Domain Server]:9090

Menambahkan Node Exporter

Node Exporter berfungsi untuk integrasi prometheus dengan hardware yang ada diserver baik berupa fisik maupun VMs (tergantung jenis server yang anda gunakan).

1. Download & Extract Node Exporter

cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.8.1.linux-amd64.tar.gz
cd node_exporter-1.8.1.linux-amd64.tar.gz

2. Buat user baru yang akan digunakan untuk menjalankan node exporter.

useradd --no-create-home --shell /bin/false node_exporter

3. Pindahkan binary file node exporter ke /usr/local/bin supaya dapat diakses secara global.

cp node_exporter /usr/local/bin/

4. Buat systemd service agar node exporter bisa dikelola dengan mudah sebagai service.

nano /etc/systemd/system/node_exporter.service

Isi:

[Unit]
Description=Prometheus Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

5. Reload Daemon dan jalankan service.

systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
systemctl status node_exporter

6. Daftarkan Node Exporter ke prometheus.yml.

nano /etc/prometheus/prometheus.yml

Tambahkan dibagian scrape_configs:

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

7. Restart service Prometheus.

systemctl restart prometheus

8. Cek melalui Web GUI:

Menambahkan MySQL Exporter

1. Buat user MySQL khusus untuk monitoring.

mysql -u root -p

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'exporter_password';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;

2. Download & Install MySQL Exporter.

cd /tmp
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
tar xvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
cd mysqld_exporter-0.15.1.linux-amd64

cp mysqld_exporter /usr/local/bin/

3. Buat file config atau env untuk otentikasi MySQL.

mkdir -p /etc/mysql_exporter
nano /etc/mysql_exporter/.my.cnf

Isi dan sesuaikan user/password yang anda buat di MySQL:

[client]
user=exporter
password=exporter_password

4. Set Owner dan Permission Folder & File env/config.

chown -R nobody:nogroup /etc/mysql_exporter
chmod 600 /etc/mysql_exporter/.my.cnf

5. Buat systemd service MySQL Exporter.

nano /etc/systemd/system/mysqld_exporter.service

Isi:

[Unit]
Description=Prometheus MySQL Exporter
After=network.target

[Service]
User=nobody
Group=nogroup
ExecStart=/usr/local/bin/mysqld_exporter \
  --config.my-cnf=/etc/mysql_exporter/.my.cnf

[Install]
WantedBy=multi-user.target

6. Reload daemon dan start MySQL Exporter service.

systemctl daemon-reload
systemctl enable mysqld_exporter
systemctl start mysqld_exporter
systemctl status mysqld_exporter

7. Integrasikan atau tambahkan exporter ke prometheus.yml.

nano /etc/prometheus/prometheus.yml

Tambahkan:

scrape_configs:
  - job_name: 'mysql'
    static_configs:
      - targets: ['localhost:9104']

8. Restart service prometheus.

systemctl restart prometheus

9. Cek melalui Web GUI:

Install Grafana

1. Install paket yang dibutuhkan.

sudo apt-get install -y apt-transport-https software-properties-common wget

2. Import kunci GPG (GPG Key)

sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null

3. Tambahkan repository paket.

echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

4. Update paket repository.

sudo apt-get update

5. Install Grafana

sudo apt-get install grafana

6. Akses melalui browser Web GUI:

http://[IP atau Domain Server]:3000

Masukan username/password default:

admin/admin

dan Kemudian ganti password menggunakan password baru.

Mengkoneksikan Data Sources Prometheus ke Grafana

1. Pilih menu Connections > Data Sources > Add new data sources.

2. Pilih Prometheus.

3. Masukan http://[IP atau Domain Server]:9090

4. Save & Test.

Setup Grafana Dashbord untuk Exporter

1. Pilih menu Dashboard > New > Import

2. Cari ID dashboard sesuai dengan jenis exporter kamu di dokumentasi web resmi Grafana:

Copy ID to Clipboard: 1860

3. Paste ID ke Kolom Import Dashboard > Load

4. Pilih Data Soruce > Prometheus > Import

5. Hasil Node Exporter

6. Tambahkan juga ID untuk MySQL Dashboard: 14057

Leave a Reply

Your email address will not be published. Required fields are marked *