Instal dan Atur Prometheus di Ubuntu 20.04

Dalam panduan ini, kita akan belajar cara menginstal Prometheus di Ubuntu 20.04. Prometheus  adalah sistem sumber terbuka dan sistem pemantauan service. Ini mengumpulkan metrik dari target yang dikonfigurasi melalui panggilan HTTP pada interval tertentu, mengevaluasi ekspresi aturan, menampilkan hasil, dan dapat memicu peringatan jika beberapa kondisi terpenuhi.

Beberapa fitur utama Prometheus meliputi;

  • model data multidimensi   dengan data deret waktu yang diidentifikasi dengan nama metrik dan pasangan kunci/nilai
  • PromQL,  bahasa kueri yang fleksibel  untuk memanfaatkan dimensi ini
  • tidak bergantung pada penyimpanan terdistribusi; node server tunggal bersifat otonom
  • pengumpulan deret waktu terjadi melalui model tarik melalui HTTP
  • mendorong deret waktu  didukung melalui gateway perantara
  • target ditemukan melalui penemuan service atau konfigurasi statis
  • beberapa mode grafik dan dukungan dasbor

Instal dan Atur Prometheus di Ubuntu 20.04

Prometheus terdiri dari berbagai komponen;

  • Server Prometheus utama   yang menggores dan menyimpan data deret waktu
  • Pustaka client  untuk menginstruksikan kode aplikasi
  • Push gateway  untuk mendukung pekerjaan berumur pendek
  • Eksportir  untuk mengekspor metrik yang ada dari sistem pihak ketiga sebagai metrik Prometheus dalam kasus di mana tidak layak untuk menginstrumentasikan sistem tertentu dengan metrik Prometheus secara langsung misalnya dalam service seperti HAProxy, StatsD, Graphite, dll.
  • Alertmanager  untuk menangani peringatan.

Prometheus tersedia di repo default Ubuntu 20.04;

apt-cache policy prometheus
prometheus: Installed: (none) Candidate: 2.15.2+ds-2 Version table: 2.15.2+ds-2 500 500 http://ke.archive.ubuntu.com/ubuntu focal/universe amd64 Packages

Namun, seperti yang mungkin telah Anda catat, versi rilis Prometheus yang disediakan oleh repo fokus default tidak mutakhir. Versi 2.18 adalah versi rilis stabil saat ini dari Prometheus.

Instal Prometheus Menggunakan Binari Pra-kompilasi di Ubuntu 20.04

Untuk memastikan bahwa Anda menginstal Prometheus versi rilis terbaru, gunakan pre-compiledbinari yang dapat didownload langsung dari bagian downloadan Prometheus .

Prasyarat

Sebelum Anda dapat melanjutkan dan menginstal Prometheus menggunakan binari yang telah dikompilasi sebelumnya di Ubuntu 20.04;

Buat Pengguna dan Grup Sistem Prometheus

Jalankan perintah di bawah ini untuk membuat user dan grup sistem Prometheus;

useradd -M -r -s /bin/false prometheus
Buat Direktori Prometheus

Selanjutnya, Anda perlu membuat direktori yang akan digunakan untuk menyimpan file konfigurasi Prometheus dan data lainnya.

mkdir /etc/prometheus /var/lib/prometheus
Download Prometheus Biner

Selanjutnya, navigasikan ke bagian downloadan Prometheus  dan ambil Prometheus versi terbaru. Anda cukup menggunakan wget untuk mengdownload biner Prometheus untuk Linux seperti yang ditunjukkan di bawah ini;

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

Verifikasi integritas file biner yang didownload dengan menghitung hash SHA256.

sha256sum prometheus-2.18.1.linux-amd64.tar.gz
5fcc35b78bd0a1b84afae6de94248a4bea3cdb4daf0d54a37b5491cb86b014d7 prometheus-2.18.1.linux-amd64.tar.gz

Bandingkan hash yang dihasilkan dengan hash yang disediakan di halaman downloadan. Pastikan mereka cocok.

Instal Prometheus di Ubuntu 20.04

Ekstrak biner Prometheus yang didownload;

tar xzf prometheus-2.18.1.linux-amd64.tar.gz

Copy prometheus dan promtool binari di bawah folder arsip Prometheus yang diekstraksi ke  /usr/local/bin direktori.

cp prometheus-2.18.1.linux-amd64/{prometheus,promtool} /usr/local/bin/

Setelah menyalin, atur kepemilikan user dan grup dari binari ini ke prometheus.

chown prometheus:prometheus /usr/local/bin/{prometheus,promtool}

Selanjutnya, copy   direktori consoles and  console_librarieske direktori konfigurasi Prometheus,  /etc/prometheus.

cp -r prometheus-2.18.1.linux-amd64/{consoles,console_libraries} /etc/prometheus/

Buat file Konfigurasi Prometheus

Contoh file konfigurasi Prometheus tersedia di folder arsip yang diekstrak. Untuk mempermudah pekerjaan kita, cukup copy ke direktori konfigurasi Prometheus.

cp prometheus-2.18.1.linux-amd64/prometheus.yml /etc/prometheus/

Ubah file konfigurasi sesuai dengan kebutuhan Anda. Dalam hal ini, kita hanya pergi dengan default.

vim /etc/prometheus/prometheus.yml
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # 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']

Dalam konfigurasi default hanya ada satu pekerjaan, yang disebut prometheus , yang mengikis data deret waktu exposed oleh Prometheus server. Pekerjaan berisi satu, dikonfigurasi secara statis, target, localhost di port 9090.

Selanjutnya, atur kepemilikan user dan grup dari direktori konfigurasi Prometheus, /etc/prometheus ke prometheus.

chown -R prometheus:prometheus /etc/prometheus

Setelah selesai, atur kepemilikan user dan grup dari direktori data Prometheus, /var/lib/prometheus/ ke prometheus.

chown prometheus:prometheus /var/lib/prometheus

Menjalankan Prometheus

Paling tidak, Prometheus sekarang sudah siap dan siap dijalankan. Namun, pada titik ini kami tidak memiliki file konfigurasi service Prometheus dan karenanya, kami dapat menjalankannya seperti yang ditunjukkan di bawah ini;

prometheus --config.file=/etc/prometheus/prometheus.yml
... level=info ts=2020-05-29T08:32:47.317Z caller=main.go:678 msg="Starting TSDB …" level=info ts=2020-05-29T08:32:47.320Z caller=head.go:575 component=tsdb msg="Replaying WAL, this may take awhile" level=info ts=2020-05-29T08:32:47.320Z caller=web.go:523 component=web msg="Start listening for connections" address=0.0.0.0:9090... level=info ts=2020-05-29T08:32:47.326Z caller=main.go:695 msg="TSDB started" level=info ts=2020-05-29T08:32:47.326Z caller=main.go:799 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml level=info ts=2020-05-29T08:32:47.731Z caller=main.go:827 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml level=info ts=2020-05-29T08:32:47.731Z caller=main.go:646 msg="Server is ready to receive web requests."

Mengakses Prometheus dari Interface Web

Buka port Prometheus di firewall (UFW) jika sedang berjalan. Secara default, ia mendengarkan pada port TCP 9090.

ufw allow 9090/tcp

Prometheus sekarang sia
p menerima permintaan web. Anda dapat mengaksesnya dari browser menggunakan alamat, http://server-IP-or-Hostname:9090.

Untuk memeriksa status simpul Anda, navigasikan ke Status > Targets.

Untuk melihat metrik yang dihapus, navigasikan ke, http://<server_IP>:9090/metrics

Untuk memeriksa statistik memori, misalnya, memori bebas yang tersedia, pilih go_memstats_frees_totalkueri dan klik jalankan dan lihat hasilnya diconsole tab.

Untuk melihat grafik statistik memori, klik Graph tab.

Buat File Layanan Prometheus Systemd

Untuk menjalankan Prometheus sebagai service, Anda dapat membuat file konfigurasi service systemd seperti yang ditunjukkan di bawah ini;

vim /etc/systemd/system/prometheus.service
[Unit] Description=Prometheus Time Series Collection and Processing Server 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

Selanjutnya, reload file konfigurasi systemd dan mulai dan aktifkan Prometheus untuk berjalan pada boot sistem.

systemctl daemon-reload systemctl enable --now prometheus

Untuk memeriksa status service Prometheus;

systemctl status prometheus
● prometheus.service - Prometheus Time Series Collection and Processing Server Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-29 08:56:32 UTC; 18s ago Main PID: 105588 (prometheus) Tasks: 6 (limit: 2281) Memory: 17.1M CGroup: /system.slice/prometheus.service └─105588 /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/promethe> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.655Z caller=main.go:678 msg="Starting TSDB..." May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.657Z caller=head.go:575 component=tsdb msg="Replaying WAL, this may tak> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.657Z caller=web.go:523 component=web msg="Start listening for connectio> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.660Z caller=head.go:624 component=tsdb msg="WAL segment loaded" segment> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.660Z caller=head.go:627 component=tsdb msg="WAL replay completed" durat> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.662Z caller=main.go:694 fs_type=EXT4_SUPER_MAGIC May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.662Z caller=main.go:695 msg="TSDB started" May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.662Z caller=main.go:799 msg="Loading configuration file" filename=/etc/> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.710Z caller=main.go:827 msg="Completed loading of configuration file" f> May 29 08:56:33 freeradius.kifarunix-demo.com prometheus[105588]: level=info ts=2020-05-29T08:56:33.711Z caller=main.go:646 msg="Server is ready to receive web requests."

Itu dia tentang cara menginstal dan mengatur Prometheus di Ubuntu 20.04. Anda dapat menjelajahi alat yang luar biasa ini lebih jauh. Menikmati!

Bacaan lebih lanjut;

Prometheus Memulai

Tutorial Terkait Lainnya

Pantau Metrik Sistem Linux dengan Pengekspor Node Prometheus

Instal Graylog 3.0 pada CentOS 7

Pantau Log Akses Squid dengan Server Graylog

Pantau log Squid dengan Grafana dan Graylog