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 prometheusprometheus.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!