GNU/Linux >> Belajar Linux >  >> Linux

Pengantar metrik Prometheus dan pemantauan kinerja

Kami akan menjerat kuncup dan bunga dan balok

Yang berkelap-kelip di tepi air mancur, dan membuat

Kombinasi aneh dari hal-hal umum

"Prometheus Tidak Terikat" oleh Percy Bysshe Shelley

Selamat datang di dunia pengumpulan metrik dan pemantauan kinerja. Seperti kebanyakan hal TI, seluruh sektor pasar telah dibangun untuk menjual alat-alat ini. Dan, tentu saja, beberapa utilitas open source melayani tujuan yang sama. Ini adalah salah satu alat sumber terbuka yang akan kami periksa.

Apa itu Prometheus?

Prometheus adalah kumpulan metrik dan alat peringatan yang dikembangkan dan dirilis ke sumber terbuka oleh SoundCloud. Prometheus memiliki desain yang mirip dengan sistem pemantauan Borgmon Google, dan sistem yang relatif sederhana dapat menangani pengumpulan ratusan ribu metrik setiap detik. Disetel dan diterapkan dengan benar, kluster Prometheus dapat mengumpulkan jutaan metrik setiap detik.

Prometheus terdiri dari kira-kira empat bagian:

  • Aplikasi Prometheus utama itu sendiri yang bertanggung jawab untuk menggores metrik, menyimpannya di database, dan (opsional) mengambilnya saat ditanyai.
    • Backend database adalah database Time Series internal. Basis data ini selalu digunakan, tetapi data juga dapat dikirim ke backend penyimpanan jarak jauh.
  • Eksportir adalah program eksternal opsional yang menyerap data dari berbagai sumber dan mengubahnya menjadi metrik yang dapat dikikis oleh Prometheus.
    • Eksportir dibuat khusus untuk bekerja dengan aplikasi dan perangkat keras tertentu.
  • AlertManager adalah sistem manajemen peringatan yang dikirimkan bersama Prometheus.
  • Perpustakaan Klien dapat digunakan untuk melengkapi aplikasi khusus.

Saya katakan "kira-kira" empat bagian karena banyak aplikasi tambahan sering digunakan dengan klaster Prometheus standar. Jika Anda membutuhkan atau menginginkan kemampuan grafik yang lebih baik, aplikasi seperti Grafana dapat digunakan. Jika Anda perlu menyimpan metrik untuk jangka waktu yang lama, backend penyimpanan jarak jauh patut dipertimbangkan. Dan daftarnya terus berlanjut. Namun, untuk artikel ini, kita akan fokus pada Prometheus itu sendiri dengan sedikit jalan memutar ke eksportir.

[ Anda mungkin juga menyukai: 6 keterampilan sysadmin yang dibutuhkan pengembang web ]

Apa itu metrik?

Sebelum kita sampai di sana, kita perlu memahami mengapa sesuatu seperti Prometheus ada. Jadi mari kita mulai dengan sebuah pertanyaan:Apa itu metrik? Sederhananya, metrik mengukur sesuatu. Misalnya, waktu yang Anda perlukan untuk membaca artikel ini adalah metrik. Jumlah kata adalah metrik. Jumlah rata-rata huruf dalam kata-kata artikel ini adalah metrik.

Namun, metrik tersebut cukup statis dan bukan sesuatu yang Anda perlukan untuk sistem seperti Prometheus. Prometheus unggul dalam metrik yang berubah seiring waktu. Misalnya, bagaimana jika Anda ingin tahu berapa banyak "tampilan" artikel ini? Atau bagaimana jika Anda ingin mengetahui berapa banyak lalu lintas yang masuk dan keluar dari jaringan Anda? Atau berapa banyak siklus build dan deploy yang terjadi setiap jam? Semua ini adalah metrik yang dapat dimasukkan ke dalam Prometheus.

Sekarang setelah kita memahami apa itu metrik, mari kita lihat bagaimana Prometheus mendapatkan metrik yang perlu disimpannya. Hal pertama yang dibutuhkan Prometheus adalah target . Target adalah titik akhir yang memasok metrik yang disimpan Prometheus. Titik akhir ini dapat menjadi titik akhir aktual yang dipantau, atau dapat berupa bagian dari middleware yang dikenal sebagai eksportir. Titik akhir dapat diberikan melalui konfigurasi statis atau dapat "ditemukan" melalui proses yang disebut penemuan layanan. Penemuan layanan adalah topik lanjutan untuk artikel mendatang.

Setelah Prometheus memiliki daftar titik akhir, Prometheus dapat mulai mengambil metrik dari mereka. Prometheus mengambil metrik dengan cara yang sangat mudah; permintaan HTTP sederhana. Konfigurasi menunjuk ke lokasi tertentu pada titik akhir yang memasok aliran teks yang mengidentifikasi metrik dan nilainya saat ini. Prometheus membaca aliran teks ini, mengabaikan baris yang dimulai dengan # sebagai komentar, dan menyimpan metrik yang diterimanya dalam database lokal.

Lintasan singkat menuju Eksportir

Prometheus hanya dapat menggunakan HTTP untuk berbicara dengan titik akhir untuk pengumpulan metrik. Apa yang terjadi ketika Anda mencoba memantau router atau sakelar yang hanya berkomunikasi menggunakan SNMP? Atau mungkin Anda ingin memantau layanan cloud yang tidak memiliki titik akhir metrik Prometheus asli? Untungnya, ada solusinya:Eksportir.

Eksportir datang dalam berbagai bentuk dan ukuran. Ini adalah program kecil yang dibuat khusus yang dirancang untuk berdiri di antara Prometheus dan apa pun yang ingin Anda pantau yang tidak secara asli mendukung Prometheus. Beberapa eksportir duduk diam sampai Prometheus mensurvei mereka untuk mendapatkan data. Ketika ini terjadi, eksportir menjangkau perangkat yang dipantaunya, mendapatkan data yang relevan, dan mengonversinya ke format yang dapat diserap oleh Prometheus. Eksportir lain mensurvei perangkat secara otomatis, menyimpan hasil secara lokal untuk diambil Prometheus nanti.

Terlepas dari desainnya, eksportir bertindak sebagai penerjemah antara Prometheus dan titik akhir yang ingin Anda pantau. Kemungkinannya adalah jika Anda mencoba memantau perangkat atau aplikasi umum, ada eksportir di luar sana untuk itu.

Penyimpanan data

Prometheus menggunakan tipe database khusus di bagian belakang yang dikenal sebagai database deret waktu. Sederhananya, database ini dioptimalkan untuk menyimpan dan mengambil data yang diatur sebagai nilai selama periode waktu tertentu. Metrik adalah contoh yang sangat baik dari jenis data yang akan Anda simpan dalam database semacam itu.

Penyimpanan eksternal juga merupakan pilihan. Ada banyak pilihan, seperti Thanos, Cortex, dan VictoriaMetrics yang memberikan beragam manfaat. Salah satu manfaat utama adalah sentralisasi metrik yang dikumpulkan dan penyimpanan jangka panjang. Alat seperti Grafana dapat menanyakan solusi penyimpanan pihak ketiga ini secara langsung.

Jadi, Anda memiliki banyak metrik...

Sekarang setelah Anda menjadi ahli di Prometheus dan Anda memilikinya untuk menyimpan metrik, bagaimana Anda menggunakan data ini? Sama seperti database SQL, Prometheus memiliki bahasa kueri khusus yang dikenal sebagai PromQL. PromQL cukup mudah untuk metrik sederhana tetapi memiliki banyak kerumitan saat dibutuhkan. Memberikan nama metrik akan menampilkan semua "instance" dari metrik tersebut:

Anda juga dapat menggunakan beberapa metode PromQL untuk menghasilkan grafik yang mewakili data yang Anda cari.

Tentu saja, jika Anda serius tentang grafik, ada baiknya mencari paket seperti Grafana. Grafana memungkinkan Anda membuat dasbor metrik, mengirim lansiran, dan banyak lagi.

Peringatan

Meskipun grafik menarik untuk dilihat, metrik dapat melayani tujuan penting lainnya. Mereka dapat digunakan untuk mengirim peringatan. Prometheus menyertakan aplikasi terpisah, yang disebut AlertManager, yang melayani tujuan ini. AlertManager menerima pemberitahuan dari Prometheus dan menangani semua logika yang diperlukan untuk menghilangkan penipuan dan mengirimkan peringatan.

Peringatan dibuat dengan menulis aturan peringatan. Aturan ini hanyalah kueri PromQL yang diaktifkan saat kueri benar. Artinya, jika Anda memiliki kueri yang memeriksa apakah suhu pada CPU lebih dari 80C, kueri tersebut akan diaktifkan untuk setiap metrik yang memenuhi kondisi tersebut.

Aturan lansiran juga dapat mencakup periode waktu di mana aturan harus dievaluasi menjadi benar. Memperluas contoh suhu kami, melebihi 80C tidak apa-apa jika itu adalah periode waktu yang singkat, tetapi jika itu berlangsung lebih dari lima menit, kirim peringatan. Lansiran dapat dikirim melalui email, Slack, Twitter, SMS, dan hampir semua hal lain yang dapat Anda gunakan untuk menulis antarmuka.

[ Mencari lebih banyak tentang otomatisasi sistem? Mulailah dengan The Automated Enterprise, buku gratis dari Red Hat. ] 

Menutup

Pemantauan itu penting. Ini membantu mengidentifikasi ketika ada yang salah, dan itu bisa menunjukkan kapan semuanya berjalan dengan benar. Pemantauan yang tepat dapat digunakan di berbagai disiplin ilmu untuk memeras semua yang Anda bisa dari objek yang dipantau.

Prometheus adalah paket metrik sumber terbuka yang kuat. Ini sangat terukur, kuat, dan sangat cepat. Satu server modern dapat digunakan untuk memantau satu juta metrik atau lebih per detik. Mendistribusikan server Prometheus memungkinkan puluhan dan bahkan ratusan juta metrik untuk dipantau setiap detik.

PromQL menyediakan bahasa query yang kuat yang dapat digunakan untuk grafik serta peringatan. Sistem grafik bawaan sangat bagus untuk visualisasi cepat, tetapi dasbor jangka panjang harus ditangani dalam aplikasi eksternal seperti Grafana.


Linux
  1. Instal dan Gunakan Collectl Performance Monitoring Tool di Ubuntu 18.04 LTS

  2. Pengantar pemantauan akun pengguna Linux

  3. Konfigurasikan pemantauan kinerja Direktori Aktif

  1. MySQL – Penyesuaian dan Pengoptimalan Kinerja

  2. Pemantauan dan manajemen memori

  3. 24 Contoh iostat, vmstat dan mpstat untuk Pemantauan Kinerja Linux

  1. Bagaimana saya menyeimbangkan fitur dan kinerja di terminal Linux saya

  2. Pengantar diff dan patch

  3. 25 Alat Pemantauan dan Debugging Kinerja Linux Terbaik