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