0

Cara install prometheus di instance EC2 AWS

Disini kita akan menginstall prometheus pada instance EC2 di Cloud AWS menggunakan OS ubuntu.

Cara kerja Prometheus

Prometheus digunakan untuk memonitor sistem dengan mengscrape / mengambil data dari berbagai macam exporter. Contohnya nginx exporter, apache exporter, node exporter dan lainnya. Data tersebut (dalam bentuk metrics) kemudian disimpan dalam bentuk time series.

Seperti contoh diatas, prometheus mengambil data dari nginx exporter melalui protokol HTTP/HTTPS, kemudian data (metrics) tersebut disimpan ke storage EBS dalam bentuk time series.

Metricsnya seperti apa?

Buat yang belum tahu seperti apa metrics yang digenerate oleh exporter, berikut penampakannya:

curl -X GET http://<ip exporter>:9113/metrics

Contoh diatas adalah nginx exporter dan 9113 adalah port exporternya. Setiap exporter memiliki port default masing-masing (atau kita bisa custom portnya).

Time seriesnya seperti apa?

Data metrics yang sudah discrape / diambil oleh prometheus akan disimpan difolder prometheus/data seperti berikut:

Data tersebut kemudian bisa ditampilkan dalam bentuk grafik (time series data) pada dashboard prometheus:


Prerequisites

Beberapa hal yang perlu dipersiapkan untuk menginstall prometheus:

  • Instance dengan tipe t2.medium
  • OS Ubuntu 22.04
  • Prometheus 24.5.1

Cara install Prometheus

Masuk ke instance melalui SSH, lalu buat folder prometheus di /home/ubuntu. Kita akan simpan installer prometheusnya di folder tersebut.

cd /home/ubuntu
mkdir prometheus
cd prometheus

Buka halaman website prometheus, cari installernya yang LTS (Long Term Support) – prometheus 2.45.1

https://prometheus.io/download/

Copy link tersebut, kita akan mendownloadnya lewat terminal menggunakan wget. Masih didalam folder prometheus jalankan command berikut:

wget https://github.com/prometheus/prometheus/releases/download/v2.45.1/prometheus-2.45.1.linux-amd64.tar.gz

Extract .tar.gz tersebut menggunakan command tar

tar -xvzf prometheus-2.45.1.linux-amd64.tar.gz

Akan ada folder baru (prometheus-2.45.1.linux-amd64) jika kita cek dengan ls -al

Masuk ke folder prometheus-2.45.1.linux-amd64

cd prometheus-2.45.1.linux-amd64
ls -al

Struktur folder prometheusnya seperti diatas. Ada 2 yang penting disini

  • prometheus, merupakan file executable untuk menjalankan prometheus
  • prometheus.yml, merupakan konfigurasi prometheus

Menjalankan prometheus

Kita bisa jalankan prometheus dengan:

./prometheus

Defaultnya, prometheus akan berjalan pada port 9090. Jika kalian ingin mengganti portnya atau mengcustom prometheus, bisa baca link berikut: prometheus flag

Kita bisa akses prometheus melalui browser melalui port 9090 (pastikan port 9090 sudah diallow di inbound rule)

http://<ip public server>:9090

Membuat systemd untuk prometheus

Sebelumnya kita sudah menjalankan prometheus dengan:

./prometheus

Cara tersebut tidak bagus, karena prometheus akan berhenti ketika server direstart.

Cara yang benar kita buat daemon systemd untuk prometheus. Jadi prometheus akan berjalan dibelakang layar.

vi /etc/systemd/system/prometheus.service

Masukkan konfigurasi berikut:

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

[Service]
User=root
Restart=on-failure
ExecStart=/home/ubuntu/prometheus/prometheus-2.45.1.linux-amd64/prometheus --config.file=/home/ubuntu/prometheus/prometheus-2.45.1.linux-amd64/prometheus.yml --storage.tsdb.path=/home/ubuntu/prometheus/prometheus-2.45.1.linux-amd64/data

[Install]
WantedBy=multi-user.target

  • ExecStart, akan menjalankan file prometheus, kita harus set absolute pathnya (path lengkap) -> /home/ubuntu/prometheus/prometheus-2.45.1.linux-amd64/prometheus
  • --config.file, path untuk meload konfigurasi prometheus.yml
  • --storage.tsdb.path, path untuk menyimpan timeseries databasenya

Save dan reload systemd

sudo systemctl daemon-reload

Jalankan service prometheus dan enablekan servicenya agar autostart

sudo systemctl start prometheus.service
sudo systemctl enable prometheus.service

Cek apakah servicenya sudah berjalan

sudo systemctl status prometheus.service

Servicenya sudah running.

Buka lagi prometheus lewat browser, harusnya sudah bisa dibuka lagi:

Prometheus sudah bisa diakses :).

Note: defaultnya prometheus tidak menyediakan halaman login. Kalian bisa tambahkan authentikasinya sendiri menggunakan basic auth.

Contoh query prometheus

Untuk melihat metrics yang tersedia kita bisa klik tombol open metrics explorer (warna hijau)

Akan muncul beberapa metrics

Kita bisa test untuk melihat storage prometheus yang terpakai, lalu klik execute

prometheus_tsdb_storage_blocks_bytes 


Sampai sini kita hanya bisa meng-query server prometheus itu sendiri, karena belum ada metrics yang kita scrape dari server lain. Tutorial scrapingnya nanti akan saya buatkan ditutorial terpisah. Akan saya update linknya disini.



Demikian tutorial cara install prometheus di instance EC2 AWS menggunakan OS ubuntu. Selamat mencoba!

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

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

Time limit is exhausted. Please reload the CAPTCHA.