Siapkan 2 server:
- Server Prometheus
- Server yang di monitoring
Disini saya menggunakan Ubuntu Server 20.04 LTS, perintah installasi di bawah ini semua menggunakan user root
Alamat IP Server saya:
Server Prometheus | Server Target |
10.23.2.111 | 10.23.2.110 |
Prometheus bisa di download di website resminya https://prometheus.io/download/

Prometheus hasil download dari website berbentuk binary dimana bisa dijalankan secara langsung, namun ada beberapa kekurangan jika kita menjalankannya secara langsung:
- Prometheus berjalan di depan layar(foreground)
- Prometheus tidak otomatis aktif ketika system booting
Oleh karena itu kita akan melakukan installasi Prometheus dan membuat service systemdnya agar bisa berjalan secara otomatis
Download Prometheus dengan menggunakan wget dari server
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
Setelah itu lakukan ekstrak pada file tersebut
tar -xvf prometheus-2.43.0.linux-amd64.tar.gz
Hasil ekstrak dari file tersebut berupa folder, di dalamnya berisi: aplikasi prometheus (executable), konfigurasi file, command line utility
$ ls prometheus-2.43.0.linux-amd64
console_libraries consoles data LICENSE NOTICE prometheus prometheus.yml promtool
Selanjutnya kita membuat user khusus untuk service prometheus
useradd -M -s /sbin/nologin prometheus
Salin file executable ke dalam direktori /usr/local/bin
cd prometheus-2.43.0.linux-amd64
cp prometheus /usr/local/bin/
cp promtool /usr/local/bin
Ubah kepemilikan file tersebut tersebut
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
Lalu buat folder konfigurasi prometheus dan tempat menyimpan datanya
mkdir /etc/prometheus
mkdir /var/lib/prometheus
Salin file konfigurasi ke folder /etc/prometheus
cp -r console_libraries/ /etc/prometheus/
cp prometheus.yml /etc/prometheus/
Ubah kepemilikan folder tersebut
chown -R prometheus:prometheus /etc/prometheus
chown -R prometheus:prometheus /var/lib/prometheus
Buat service systemd baru
vim /etc/systemd/system/prometheus.service
.....
[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
[Install]
WantedBy=multi-user.target
.....
Setelah membuat file systemd service kita perlu melakukan daemon-reload
systemctl daemon-reload
Lalu jalankan service prometheus
systemctl start prometheus
Cek status prometheus
$ systemctl status prometheus
● prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2023-04-03 14:54:46 UTC; 56s ago
Main PID: 19197 (prometheus)
Tasks: 8 (limit: 4612)
Memory: 19.2M
CGroup: /system.slice/prometheus.service
└─19197 /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/li>
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.213Z caller=head.go:658 level=info component=tsdb >
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.213Z caller=head.go:664 level=info component=tsdb >
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.218Z caller=head.go:735 level=info component=tsdb >
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.218Z caller=head.go:772 level=info component=tsdb >
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.225Z caller=main.go:1026 level=info fs_type=EXT4_S>
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.225Z caller=main.go:1029 level=info msg="TSDB star>
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.225Z caller=main.go:1209 level=info msg="Loading c>
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.240Z caller=main.go:1246 level=info msg="Completed>
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.241Z caller=manager.go:974 level=info component="r>
Apr 03 14:54:46 prometheus prometheus[19197]: ts=2023-04-03T14:54:46.241Z caller=main.go:990 level=info msg="Server is >
Enable service prometheus agar dijalankan ketika booting up
systemctl enable prometheus
Prometheus server berhasil di install, selanjutnya kita akan setup exporter
Untuk exporternya kita gunakan node_exporter yang biasanya digunakan untuk monitoring server
Untuk mendownload exporter ada di halaman yang sama https://prometheus.io/download/

Download di server yang mau di monitoring
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
Ekstrak file hasil download
tar -xvf node_exporter-1.5.0.linux-amd64.tar.gz
Nanti di folder hasil ekstrak terdapat file binary executable dengan nama node_exporter, salin file binary tersebut ke direktori /usr/local/bin
cp node_exporter-1.5.0.linux-amd64/node_exporter /usr/local/bin/
Buat user untuk service systemd, lalu ubah permission file binary tadi
useradd -M -s /sbin/nologin node_exporter
chown node_exporter:node_exporter /usr/local/bin/node_exporter
Buat file systemd service untuk node_exporter
vim /etc/systemd/system/node_exporter.service
.....
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
.....
Lakukan daemon-reload dan jalankan service node_exporter
systemctl daemon-reload && systemctl start node_exporter
Cek status node_exporter pastikan sudah running
$ systemctl status node_exporter
● node_exporter.service - Node Exporter
Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2023-04-03 15:12:56 UTC; 5s ago
Main PID: 134291 (node_exporter)
Tasks: 4 (limit: 4612)
Memory: 2.8M
CGroup: /system.slice/node_exporter.service
└─134291 /usr/local/bin/node_exporter
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.307Z caller=node_exporter.go:117 level=info colle>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.317Z caller=tls_config.go:232 level=info msg="Lis>
Apr 03 15:12:56 jenkins node_exporter[134291]: ts=2023-04-03T15:12:56.317Z caller=tls_config.go:235 level=info msg="TLS>
node_exporter berhasil di install, selanjutnya kita konfigurasi prometheus agar bisa mengambil data dari server tersebut
Jalankan perintah dibawah ini di server prometheus!!
Tambahkan job baru untuk monitoring server tersebut, contohnya namanya node-jenkins(bebas) di dalam target isi IP dari server tersebut
vim /etc/prometheus/prometheus.yml
.....
- job_name: "node-jenkins"
static_configs:
- targets: ["10.23.2.110:9100"]
.....
Pastikan menambah konfigurasi job_name dibawah konfigurasi scrape_configs, jika ingin mengubah spesifik interval pengambilan data bisa tambahkan parameter scrape_interval dan scrape_timeout, contoh:
- job_name: "node-jenkins"
scrape_interval: 15s
scrape_timeout: 5s
static_configs:
- targets: ["10.23.2.110:9100"]
! 1 Job name bisa memiliki banyak target
Lakukan restart prometheus server
systemctl restart prometheus
Akses prometheus server dari Web-UI
http://ipserverprometheus:9090
Setelah terbuka, pilih menu Status > Targets

Cek apakah jobs yang kita tambahkan tadi sudah ada

Artikel kali ini sampai itu dulu, di artikel selanjutnya kita akan mencoba untuk membuat autentikasi agar koneksi dari server prometheus ke node yang di monitoring lebih aman, stay tune 🙂