TUTORIAL

Cara Install Prometheus di Linux Ubuntu

Cara Install Prometheus di Linux Ubuntu
Cara Install Prometheus di Linux Ubuntu Teknomid

Table of Contents


Pengantar

Prometheus adalah sebuah sistem Monitoring opensource yang powerfull dimana tugasnya mengumpulkan metrik dari services dan menyimpannya dalam database time-series. Ini menawarkan model data multi-dimensi, bahasa kueri yang fleksibel, dan kemungkinan visualisasi yang beragam melalui applikasi web seperti Grafana.

Secara default, Prometheus hanya mengekspor metrik tentang dirinya sendiri (misalnya jumlah permintaan yang diterima, konsumsi memorinya, dll.). Namun, Anda dapat memperluas Prometheus dengan menginstal exporters, program opsional yang menghasilkan metrik tambahan.

Exporters - baik yang official yang dikelola oleh tim Prometheus maupun yang dikontribusikan oleh komunitas - memberikan informasi tentang segala hal mulai dari infrastruktur, database, dan server web hingga sistem messanging, API, dan banyak lagi.

Beberapa pilihan yang paling populer meliputi:

  • node_exporter - Ini menghasilkan metrik tentang infrastruktur, termasuk CPU saat ini, penggunaan memori dan disk, serta statistik I/O dan jaringan, seperti jumlah byte yang dibaca dari disk atau beban rata-rata server.
  • blackbox_exporter - Ini menghasilkan metrik yang berasal dari protokol pemeriksaan seperti HTTP dan HTTPS untuk menentukan ketersediaan titik akhir, waktu respons, dan banyak lagi.
  • mysqld_exporter - Ini mengumpulkan metrik yang terkait dengan server MySQL, seperti jumlah kueri yang dieksekusi, waktu respons kueri rata-rata, dan status replikasi cluster.
  • rabbitmq_exporter - Ini menampilkan metrik tentang sistem pesan RabbitMQ, termasuk jumlah pesan yang diterbitkan, jumlah pesan yang siap dikirim, dan ukuran semua pesan dalam antrian.
  • nginx-vts-exporter - Ini menyediakan metrik tentang server web Nginx menggunakan modul Nginx VTS, termasuk jumlah koneksi terbuka, jumlah respons yang dikirim (dikelompokkan berdasarkan kode respons), dan ukuran total permintaan yang dikirim atau diterima dalam byte .

Lebih lengkapnya bisa di lihat dari Prometheus.

Step 1 — Membuat User Service

Untuk tujuan keamanan, kita akan mulai dengan membuat dua Account User baru, prometheus dan node_exporter. Kita akan menggunakan akun ini sepanjang tutorial untuk mengisolasi Ownership pada file dan direktori Core Prometheus.

Create dua user ini, dan gunakan opsi --no-create-home dan --shell /bin/false sehingga User ini tidak dapat Login ke server dan tugasnya hanya untuk service-service yang di peuntukkan saja.

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

Sebelum kita mengunduh binari Prometheus, buat direktori yang diperlukan untuk menyimpan file dan data Prometheus. Mengikuti konvensi standar Linux, kita akan membuat direktori di /etc untuk file konfigurasi Prometheus dan direktori di /var/lib untuk datanya.

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Sekarang, atur ownership user dan grup pada direktori baru ke user prometheus.

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

Step 2 — Downloading Prometheus

Setelah membuat ownership pada directory, kita sekarang dapat mengunduh Prometheus dan kemudian membuat file konfigurasi minimal untuk menjalankan Prometheus untuk pertama kalinya.

cd ~
curl -LO https://github.com/prometheus/prometheus/releases/download/
v2.32.0/prometheus-2.32.0.linux-amd64.tar.gz

Selanjutnya, gunakan perintah sha256sum untuk menghasilkan checksum dari file yang diunduh:

sha256sum prometheus-2.32.0.linux-amd64.tar.gz

Bandingkan output dari perintah ini dengan checksum pada halaman unduhan Prometheus untuk memastikan bahwa file Anda asli dan tidak rusak.

Output:

e12917b25b32980daee0e9cf879d9ec197e2893924bd1574604eb0f550034d46
prometheus-2.32.0.linux-amd64.tar.gz

Jika checksum tidak cocok, hapus file yang diunduh dan ulangi langkah sebelumnya untuk mengunduh ulang file.

Sekarang, buka paket arsip yang diunduh.

tar xvf rometheus-2.32.0.linux-amd64.tar.gz

Ini akan membuat direktori bernama rometheus-2.32.0.linux-amd64 yang berisi dua file biner (prometheus dan promtool), direktori consoles dan console_libraries yang berisi file antarmuka web, lisensi, pemberitahuan, dan beberapa file contoh.

Salin dua binari ke direktori /usr/local/bin.

sudo cp rometheus-2.32.0.linux-amd64/prometheus /usr/local/bin/
sudo cp rometheus-2.32.0.linux-amd64/promtool /usr/local/bin/

Tetapkan Ownership user dan grup pada binari ke user prometheus yang dibuat pada Step 1.

sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

Tetapkan user and group ownership pada direktori ke user prometheus. Menggunakan flag -R akan memastikan bahwa ownership juga diatur pada file di dalam direktori.

sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Terakhir, hapus file hasil unduhan di home atau tempat unduhan Anda, karena tidak lagi diperlukan.

rm -rf prometheus-2.32.0.linux-amd64.tar.gz prometheus-2.32.0.linux-amd64

Sekarang setelah Prometheus terinstal, kita akan membuat file konfigurasi dan service sebagai persiapan untuk menjalankannya pertama kalinya.

Step 3 — Configuring Prometheus

Di direktori /etc/prometheus, gunakan nano atau editor teks favorit Anda untuk membuat file konfigurasi bernama prometheus.yml. Untuk saat ini, file ini hanya berisi informasi yang cukup untuk menjalankan Prometheus untuk pertama kalinya.

sudo nano /etc/prometheus/prometheus.yml

Peringatan: File konfigurasi Prometheus menggunakan format YAML,
yang secara ketat melarang tab dan membutuhkan "dua spasi"
untuk indentasi. Prometheus akan gagal untuk menjalankan service
jika file konfigurasi tidak sesuai dengan format YAML

Dalam pengaturan global, tentukan interval default untuk metrik scraping. Perhatikan bahwa Prometheus akan menerapkan pengaturan ini ke setiap exporter kecuali pengaturan masing-masing exporter sendiri.

Prometheus config file - /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s

scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']

Simpan file dan keluar dari editor teks Anda.

Sekarang, atur user and group ownership pada file konfigurasi ke user prometheus yang dibuat pada Step 1.

sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

Step 4 — Running Prometheus

Mulai Prometheus dengan user prometheus, menyediakan jalur ke file konfigurasi dan direktori data.

sudo -u prometheus /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

Output berisi informasi tentang Loading Progress Prometheus, file konfigurasi, dan service terkait. Itu juga menegaskan bahwa Prometheus Listen pada port 9090.

Output level=info ts=2017-11-17T18:37:27.474530094Z
caller=main.go:215 msg="Starting Prometheus"
version="(version=2.0.0, branch=HEAD,
re vision=0a74f98628a0463dddc90528220c94de5032d1a0)"
level=info ts=2017-11-17T18:37:27.474758404Z
caller=main.go:216 build_context="(go=go1.9.2,
[email protected], date=20171108- 07:11:59)"
level=info ts=2017-11-17T18:37:27.474883982Z
caller=main.go:217 host_details=
"(Linux 4.4.0-98-generic #121-Ubuntu SMP Tue Oct
10 1 4:24:03 UTC 2017 x86_64 prometheus-update (none))"
level=info ts=2017-11-17T18:37:27.483661837Z
caller=web.go:380 component=web msg="Start
listening for connections" address=0.0.0.0 :9090
level=info ts=2017-11-17T18:37:27.489730138Z
caller=main.go:314 msg="Starting TSDB"
level=info ts=2017-11-17T18:37:27.516050288Z
caller=targetmanager.go:71 component="target
manager" msg="Starting target manager... "
level=info ts=2017-11-17T18:37:27.537629169Z
caller=main.go:326 msg="TSDB started"
level=info ts=2017-11-17T18:37:27.537896721Z
caller=main.go:394 msg="Loading configuration
file" filename=/etc/prometheus/promethe us.yml
level=info ts=2017-11-17T18:37:27.53890004Z
caller=main.go:371 msg="Server is
ready to receive requests."

Jika Anda mendapatkan pesan error, periksa kembali apakah Anda telah menggunakan sintaks YAML di file konfigurasi Anda, lalu ikuti petunjuk di layar untuk menyelesaikan masalah.

Sekarang, hentikan Prometheus dengan menekan CTRL+C, lalu create file service systemd baru.

sudo nano /etc/systemd/system/prometheus.service

File service memberi tahu systemd untuk menjalankan Prometheus sebagai pengguna prometheus, dengan file konfigurasi terletak di direktori /etc/prometheus/prometheus.yml dan untuk menyimpan datanya di direktori /var/lib/prometheus. (Rincian file service systemd berada di luar cakupan tutorial ini, tetapi Anda dapat mempelajari lebih lanjut di Memahami Unit Systemd dan File Unit.)

Salin konten berikut ke dalam file: /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

Finally, save file dan close text editor Anda.
Untuk menggunakan service yang baru dibuat, reload systemd.

sudo systemctl daemon-reload

Anda sekarang bisa Menjalankan service Prometheus menggunakan perintah berikut:

sudo systemctl start prometheus
sudo systemctl status prometheus

Outputnya memberi tahu Anda status Prometheus, pengidentifikasi proses utama (PID), penggunaan memori, dan banyak lagi.

Jika status layanan tidak aktif, ikuti petunjuk di layar dan telusuri kembali langkah-langkah sebelumnya untuk menyelesaikan masalah sebelum melanjutkan tutorial.

Output
● prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service;
disabled; vendor preset: enabled)
Active: active (running) since Fri 2017-07-21 11:40:40 UTC;
3s ago Main PID: 2104 (prometheus)
Tasks: 7
Memory: 13.8M
CPU: 470ms
CGroup: /system.slice/prometheus.service
...

Saat Anda siap untuk melanjutkan, tekan Q untuk keluar dari perintah status.

Terakhir, aktifkan service prometheus auto start up saat system booting.

sudo systemctl enable prometheus

Sekarang setelah Prometheus aktif dan berjalan, kita dapat menginstal exporter tambahan untuk menghasilkan metrik tentang resource server kita.

Related posts