Prometheus adalah sistem pemantauan sumber terbuka yang memungkinkan Anda mengumpulkan metrik dari sistem target yang dikonfigurasi. Prometheus mengimplementasikan model data multidimensi dengan kueri yang kuat, visualisasi yang bagus, peringatan yang akurat, dan dilengkapi dengan banyak integrasi.
Prometheus awalnya dibuat oleh SoundCloud pada tahun 2012, tetapi sekarang telah menjadi proyek open source independen yang dikelola secara independen oleh komunitas open source - semua komponen tersedia di bawah Lisensi Apache 2 di Github.
Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi Prometheus dan node_exporter. Kami akan menginstal sistem pemantauan Prometheus dan kemudian mengkonfigurasi node_exporter untuk mengumpulkan metrik dari server. Kami akan menggunakan server CentOS 8 terbaru untuk panduan tutorial ini.
Prasyarat
- Server CentOS 8
- Hak istimewa root
Apa yang akan kita lakukan?
- Buat pengguna baru dan unduh Prometheus
- Konfigurasikan Prometheus Sebagai Layanan Systemd
- Konfigurasi Firewalld
- Instal dan Konfigurasi node_exporter
- Tambahkan node_exporter ke Server Prometheus
- Pengujian
Langkah 1 - Buat Pengguna baru dan Unduh Prometheus
Dalam tutorial ini, layanan Prometheus akan berjalan sebagai pengguna non-root. Jadi kita perlu membuat pengguna non-root baru di sistem. Kami akan membuat pengguna baru bernama 'prometheus', dan semua layanan prometheus akan berjalan di bawah pengguna prometheus.
Buat pengguna 'prometheus' baru menggunakan perintah di bawah ini.
useradd -m -s /bin/bash prometheus
Pengguna baru telah dibuat. Sekarang masuk ke pengguna dan unduh prometheus menggunakan perintah wget.
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz
Ekstrak file prometheus-xx.x.x.tar.gz dan ganti nama direktori menjadi 'prometheus'.
tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/
Setelah itu, buat direktori 'data' baru yang akan digunakan sebagai penyimpanan 'tsdb'.
mkdir -p ~/prometheus/data
Sekarang prometheus diunduh ke server, dan semua file prometheus berada di direktori '/home/prometheus/prometheus'.
Langkah 2 - Konfigurasikan Prometheus Sebagai Layanan Systemd
Pada langkah ini, kami akan mengonfigurasi prometheus sebagai layanan systemd. Kami akan membuat file layanan baru prometheus.service pada direktori '/etc/systemd/system'.
Buka direktori '/etc/systemd/system/' dan buat file layanan baru 'prometheus.service' menggunakan editor vim.
cd /etc/systemd/system/
vim prometheus.service
Tempelkan konfigurasi layanan prometheus di bawah.
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target
Simpan dan keluar.
Sekarang muat ulang sistem systemd menggunakan perintah systemctl di bawah ini.
systemctl daemon-reload
Mulai layanan prometheus dan aktifkan untuk diluncurkan setiap kali sistem dimulai.
systemctl start prometheus
systemctl enable prometheus
Prometheus sekarang berjalan sebagai layanan systemd, periksa menggunakan perintah di bawah ini.
systemctl status prometheus
Pastikan Anda mendapatkan status layanan 'Berjalan'.
Atau periksa menggunakan perintah netstat di bawah ini.
netstat -plntu
Pastikan Anda mendapatkan hasil seperti gambar di bawah ini.
Prometheus berjalan secara default di bawah port '9090'.
Langkah 3 - Konfigurasi Firewalld
Jika Anda menggunakan Firewalld di sistem Anda, tambahkan port 9090 ke daftar port Firewalld.
Buka port 9090 untuk akses Prometheus menggunakan perintah firewall-cmd di bawah ini.
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
Sekarang periksa aturan firewalld.
firewall-cmd --list-all
Dan Anda akan mendapatkan port TCP '9090' pada daftar.
Selanjutnya, buka browser web Anda dan ketik alamat IP server dengan port 9090.
http://10.5.5.15:9090/graph
Ketik 'prometheus_http_requests_total' di bidang kueri dan klik tombol 'Jalankan'.
Dan Anda akan melihat permintaan HTTP ke server prometheus dengan semua info tentang waktu, kode status HTTP, dan metode, dll.
Langkah 4 - Instal dan Konfigurasi node_exporter
node_exporter adalah pengekspor metrik mesin yang dapat berjalan di *Nix dan sistem Linux.
Dalam tutorial ini, kita akan menginstal node_exporter pada server yang sama prometheus. Kami akan memantau dan mendapatkan metrik server prometheus.
Masuk ke pengguna prometheus dan unduh 'node_exporter' menggunakan perintah wget.
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
Ekstrak node_exporter dan ganti nama direktori menjadi 'node_exporter'.
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
Selanjutnya, kita akan membuat file layanan baru untuk node_exporter. Kembali ke shell root, masuk ke direktori '/etc/systemd/system' dan buat file layanan node_exporter baru 'node_exporter.service' menggunakan vim.
cd /etc/systemd/system/
vim node_exporter.service
Tempelkan konfigurasi berikut.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
Simpan dan keluar.
Sekarang muat ulang sistem systemd.
systemctl daemon-reload
Kemudian mulai layanan node_exporter dan aktifkan untuk diluncurkan setiap saat saat startup sistem.
systemctl start node_exporter
systemctl enable node_exporter
Layanan node_exporter sekarang berjalan di server - periksa menggunakan perintah netstat.
systemctl status node_exporter
netstat -plntu
Dan Anda akan mendapatkan node-exporter aktif dan berjalan pada port default 9100.
Langkah 5 - Tambahkan node_exporter ke Server Prometheus
Pada langkah ini, kita akan menambahkan node_exporter ke server prometheus. Login ke pengguna prometheus dan edit file konfigurasi 'prometheus.yml'.
Masuk ke pengguna prometheus.
su - prometheus
Buka direktori 'prometheus' dan edit file konfigurasi 'prometheus.yml'.
cd ~/prometheus/
vim prometheus.yml
Di bawah baris 'scrape_config', tambahkan job_name node_exporter baru dengan menyalin-menempelkan konfigurasi di bawah ini.
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Simpan dan keluar.
Sekarang restart layanan prometheus.
systemctl restart prometheus
node_exporter telah ditambahkan ke server prometheus.
Langkah 6 - Menguji Prometheus dan node_exporter
Buka browser web Anda lalu masukkan alamat IP server.
http://10.5.5.15:9090/
Ketik kolektor meminfo 'node_memory_MemAvailable_bytes' di bidang kueri dan klik tombol 'Jalankan'.
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Anda akan mendapatkan memori yang tersedia pada instance server 'localhost:9100', dan job_name 'node-exporter'.
Atau jika Anda ingin mengakses data mentah node_exporter, Anda perlu menambahkan port node_exporter 9100 ke firewalld.
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload
Dan kemudian ketik alamat IP server dengan port 9100.
http://10.5.5.15:9100/metrics
Dan Anda akan mendapatkan data mentah node_exporter seperti yang ditunjukkan di bawah ini.
Hasilnya, instalasi dan konfigurasi sistem pemantauan prometheus dengan node_exporter di Server CentOS 8 telah berhasil diselesaikan.