Prometheus adalah sistem pemantauan dan peringatan sumber terbuka yang sangat kuat yang cocok untuk lingkungan dinamis seperti di ruang Cloud. Ini adalah proyek mandiri yang dikelola oleh komunitas dengan banyak perusahaan dan organisasi yang berkontribusi pada kode sumbernya. Sebagian besar komponen Prometheus ditulis dalam Go, membuatnya mudah dibuat dan digunakan sebagai binari statis. Anda jarang perlu mengompilasi aplikasi dari kode.
Prometheus mampu merekam rangkaian waktu numerik murni, baik untuk pemantauan mesin-sentris seperti sistem Linux maupun pemantauan arsitektur berorientasi layanan yang sangat dinamis. Alat visualisasi seperti Grafana mendukung kueri Prometheus dengan sumber data Grafana untuk Prometheus disertakan sejak Grafana 2.5.0.
Dalam panduan ini, kami akan membahas cara menginstal Prometheus di server Ubuntu 18.04.
Komponen Prometheus
Ekosistem Prometheus terdiri dari berbagai komponen yang bersama-sama bekerja untuk menyediakan sistem pemantauan dan peringatan yang lengkap. Sebagian besar komponen bersifat opsional, dan Anda hanya perlu menginstalnya sesuai permintaan. Komponen utamanya adalah:
- Server Prometheus - Ini menggores dan menyimpan data deret waktu dari sistem dan aplikasi klien.
- Eksportir - digunakan dalam mengekspor metrik yang ada dari sistem pihak ketiga sebagai metrik Prometheus.
- Pengelola lansiran yang digunakan untuk menangani lansiran
- Library klien untuk menginstruksikan kode aplikasi
Fitur Prometheus
Fitur utama Prometheus adalah:
- model data multidimensi dengan data deret waktu yang diidentifikasi dengan nama metrik dan pasangan kunci/nilai
- Ia memiliki bahasa kueri yang sangat fleksibel untuk memanfaatkan model multidimensinya
- Node server tunggal bersifat otonom dan tidak bergantung pada penyimpanan terdistribusi.
- Koleksi deret waktu Prometheus menggunakan model tarik melalui protokol HTTP
- Ini memiliki layanan penemuan target otomatis dan file konfigurasi dapat digunakan untuk hal yang sama.
- mendorong deret waktu didukung melalui gateway perantara
- Prometheus memiliki dukungan untuk beberapa mode grafik dan dasbor
Menginstal Prometheus di Ubuntu 18.04
Karena Prometheus ditulis dalam Go, paket-paketnya didistribusikan sebagai binari. Pada tulisan ini, rilis terbaru dari Prometheus adalah v2.2.1 . Anda dapat memeriksa rilis dari halaman Unduhan Resmi. Paket yang disediakan adalah untuk sistem operasi macOS, Linux, dan Windows, jadi pastikan Anda mengunduh paket yang benar.
$ sudo su -
$ export RELEASE="2.2.1"
$ wget https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz
Setelah mengunduh arsip, ekstrak menggunakan tar.
$ tar xvf prometheus-${RELEASE}.linux-amd64.tar.gz
prometheus-2.2.1.linux-amd64/
prometheus-2.2.1.linux-amd64/consoles/
prometheus-2.2.1.linux-amd64/consoles/index.html.example
prometheus-2.2.1.linux-amd64/consoles/node-cpu.html
prometheus-2.2.1.linux-amd64/consoles/node-disk.html
prometheus-2.2.1.linux-amd64/consoles/node-overview.html
prometheus-2.2.1.linux-amd64/consoles/node.html
prometheus-2.2.1.linux-amd64/consoles/prometheus-overview.html
prometheus-2.2.1.linux-amd64/consoles/prometheus.html
prometheus-2.2.1.linux-amd64/console_libraries/
prometheus-2.2.1.linux-amd64/console_libraries/menu.lib
prometheus-2.2.1.linux-amd64/console_libraries/prom.lib
prometheus-2.2.1.linux-amd64/prometheus.yml
prometheus-2.2.1.linux-amd64/LICENSE
prometheus-2.2.1.linux-amd64/NOTICE
prometheus-2.2.1.linux-amd64/prometheus
prometheus-2.2.1.linux-amd64/promtool
Ubah ke direktori yang baru dibuat dari ekstraksi file.
# cd prometheus-${RELEASE}.linux-amd64/
Buat grup sistem Prometheus
Prometheus membutuhkan pengguna dan grupnya sendiri untuk dijalankan.
# groupadd --system prometheus
# grep prometheus /etc/group
prometheus:x:999:
Buat pengguna sistem Prometheus
Sekarang kita memiliki grup Prometheus, mari buat pengguna dan tetapkan grup yang dibuat.
# useradd -s /sbin/nologin -r -g prometheus prometheus
# id prometheus
uid=999(prometheus) gid=999(prometheus) groups=999(prometheus)
Buat konfigurasi dan direktori data untuk Prometheus
Prometheus membutuhkan direktori untuk menyimpan data dan file konfigurasinya. Kami akan membuat /var/lib/prometheus untuk data dan /etc/prometheus untuk file konfigurasi.
# mkdir -p /etc/prometheus/{rules,rules.d,files_sd} /var/lib/prometheus
Salin file biner Prometheus ke direktori di $PATH Anda
Direktori pilihan untuk menempatkan binari pihak ketiga di Linux adalah /usr/local/bin/ karena dalam $PATH secara default dan tidak mengganggu biner sistem.
# cp prometheus promtool /usr/local/bin/
# ls /usr/local/bin/
prometheus promtool
Salin consoles dan console_libraries ke direktori file konfigurasi
File konsol dan pustaka harus ditempatkan di bawah /etc/prometheus/ direktori.
# cp -r consoles/ console_libraries/ /etc/prometheus/
Buat file unit systemd:
Ubuntu 18.04 menggunakan sistem init systemd secara default, kita perlu membuat file unit Layanan untuk mengelola layanan Prometheus. Kami akan meletakkan file di bawah /etc/systemd/system direktori. Nama file harus diakhiri dengan .service
# cat /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus systemd service unit
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
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 \
--web.listen-address=0.0.0.0:9090
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Perhatikan bahwa:
- Kami mengikat layanan ke 0.0.0.0:9090 . Ini akan dapat diakses dari semua antarmuka jaringan di server. Batasi dengan menentukan alamat IP untuk antarmuka yang ingin Anda gunakan, 127.0.0.1 hanya untuk akses lokal.
- File konfigurasi yang ditentukan adalah /etc/prometheus/prometheus.yml . Kami akan membuat file konfigurasi dasar untuk digunakan selanjutnya.
Buat file Konfigurasi Prometheus
Ini akan ditempatkan di /etc/prometheus/ direktori.
# cat /etc/prometheus/prometheus.yml
# Global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds.
evaluation_interval: 15s # Evaluate rules every 15 seconds.
scrape_timeout: 15s # scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
Untuk opsi konfigurasi lainnya, lihat panduan Konfigurasi Prometheus resmi.
Ubah izin direktori menjadi pengguna dan grup Prometheus
Kepemilikan file dan data Prometheus harus menjadi pengguna dan grupnya.
# chown -R prometheus:prometheus /etc/prometheus/ /var/lib/prometheus/
# chmod -R 775 /etc/prometheus/ /var/lib/prometheus/
Mulai dan aktifkan layanan Prometheus
Mulai dan aktifkan layanan Prometheus untuk memulai saat boot.
# systemctl start prometheus
# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /etc/systemd/system/prometheus.service.
Periksa status:
# systemctl status prometheus
Konfirmasikan bahwa port 9090 mendengarkan.
# netstat -tunlp | grep 9090
tcp6 0 0 :::9090 :::* LISTEN 2140/prometheus
# telnet 127.0.0.1 9090
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
If you have a firewall like ufw, Open port 9090 to be able to access it from a remote device.
# ufw allow 9090
Rule added
Rule added (v6)
Untuk mengizinkan jaringan tertentu, gunakan:
# ufw allow from 192.168.10.0/24 to any port 9090
Rule added
# ufw status
Status: active
To Action From
-- ------ ----
9090 ALLOW Anywhere
9090 ALLOW 192.168.10.0/24
9090 (v6) ALLOW Anywhere (v6)
Untuk mendapatkan antarmuka Web, buka http://ip:9090
Hal berikutnya yang mungkin ingin Anda lihat adalah konfigurasi Berbagai eksportir untuk pengumpulan dan visualisasi metrik. Tempat terbaik untuk memulai adalah halaman Instrumen Eksportir.