Operator Prometheus menyediakan penerapan asli Kubernetes dan pengelolaan Prometheus serta komponen pemantauan terkait. Tujuan dari proyek ini adalah untuk menyederhanakan dan mengotomatisasi konfigurasi tumpukan pemantauan berbasis Prometheus untuk cluster Kubernetes.
Operator Prometheus mencakup, namun tidak terbatas pada, fitur berikut:
Sumber Daya Kustom Kubernetes : Gunakan sumber daya khusus Kubernetes untuk menerapkan dan mengelola Prometheus, Alertmanager, dan komponen terkait.
Konfigurasi Penerapan yang Disederhanakan : Konfigurasikan dasar-dasar Prometheus seperti versi, persistensi, kebijakan penyimpanan, dan replika dari sumber daya asli Kubernetes.
Konfigurasi Target Prometheus : Secara otomatis menghasilkan konfigurasi target pemantauan berdasarkan kueri label Kubernetes yang sudah dikenal; tidak perlu mempelajari bahasa konfigurasi khusus Prometheus.
Untuk pengenalan tentang Operator Prometheus, lihat panduan memulai.
Operator itu sendiri dianggap siap produksi. Silakan lihat versi Custom Resource Definition (CRD) untuk mengetahui status setiap CRD:
monitoring.coreos.com/v1
: CRD dan API stabil , perubahan dilakukan dengan cara yang kompatibel dengan versi sebelumnya.
monitoring.coreos.com/v1beta1
: CRD dan API tidak stabil , perubahan dapat terjadi tetapi tim fokus untuk menghindarinya. Kami mendorong penggunaan dalam produksi bagi pengguna yang menerima risiko gangguan perubahan.
monitoring.coreos.com/v1alpha1
: CRD dan API tidak stabil , perubahan dapat sering terjadi, dan kami menyarankan untuk menghindari penggunaannya pada lingkungan yang sangat penting.
Operator Prometheus menggunakan sumber daya khusus Kubernetes untuk menyederhanakan penerapan dan konfigurasi Prometheus, Alertmanager, dan komponen pemantauan terkait.
kube-prometheus memberikan contoh konfigurasi untuk tumpukan pemantauan klaster lengkap berdasarkan Prometheus dan Operator Prometheus. Hal ini mencakup penerapan beberapa instans Prometheus dan Alertmanager, pengekspor metrik seperti node_exporter untuk mengumpulkan metrik node, konfigurasi target scrape yang menghubungkan Prometheus ke berbagai titik akhir metrik, dan contoh aturan peringatan untuk pemberitahuan potensi masalah di klaster.
Bagan Helm prometheus-community/kube-prometheus-stack menyediakan fitur serupa yang diatur ke kube-prometheus. Bagan ini dikelola oleh komunitas Prometheus. Untuk informasi lebih lanjut, silakan lihat readme grafik
Operator Prometheus memerlukan setidaknya Kubernetes versi 1.16.0
. Jika Anda baru memulai dengan Operator Prometheus, sangat disarankan untuk menggunakan rilis stabil terbaru.
Fitur inti dari Operator Prometheus adalah memantau server API Kubernetes untuk mengetahui perubahan pada objek tertentu dan memastikan bahwa penerapan Prometheus saat ini cocok dengan objek tersebut. Operator bertindak berdasarkan Definisi Sumber Daya Kustom (CRD) berikut:
Prometheus
, yang menentukan penerapan Prometheus yang diinginkan.
PrometheusAgent
, yang menentukan penerapan Prometheus yang diinginkan, tetapi berjalan dalam mode Agen.
Alertmanager
, yang menentukan penerapan Alertmanager yang diinginkan.
ThanosRuler
, yang menentukan penerapan Thanos Ruler yang diinginkan.
ServiceMonitor
, yang secara deklaratif menentukan bagaimana kelompok layanan Kubernetes harus dipantau. Operator secara otomatis menghasilkan konfigurasi scrape Prometheus berdasarkan status objek saat ini di server API.
PodMonitor
, yang secara deklaratif menentukan bagaimana sekelompok pod harus dipantau. Operator secara otomatis menghasilkan konfigurasi scrape Prometheus berdasarkan status objek saat ini di server API.
Probe
, yang secara deklaratif menentukan bagaimana kelompok ingresses atau target statis harus dipantau. Operator secara otomatis menghasilkan konfigurasi scrape Prometheus berdasarkan definisi.
ScrapeConfig
, yang secara deklaratif menentukan konfigurasi scrape yang akan ditambahkan ke Prometheus. CustomResourceDefinition ini membantu mengambil sumber daya di luar cluster Kubernetes.
PrometheusRule
, yang mendefinisikan serangkaian aturan peringatan dan/atau pencatatan Prometheus yang diinginkan. Operator menghasilkan file aturan, yang dapat digunakan oleh instance Prometheus.
AlertmanagerConfig
, yang secara deklaratif menentukan subbagian konfigurasi Alertmanager, mengizinkan perutean peringatan ke penerima khusus, dan menyetel aturan penghambat.
Operator Prometheus secara otomatis mendeteksi perubahan di server API Kubernetes pada salah satu objek di atas, dan memastikan penerapan dan konfigurasi yang cocok tetap sinkron.
Untuk mempelajari lebih lanjut tentang CRD yang diperkenalkan oleh Operator Prometheus, lihat halaman desain.
Untuk mencegah aturan peringatan dan pencatatan Prometheus yang tidak valid menyebabkan kegagalan dalam instans Prometheus yang diterapkan, webhook masuk disediakan untuk memvalidasi sumber daya PrometheusRule
pada pembuatan atau pembaruan awal.
Untuk informasi lebih lanjut tentang fitur ini, lihat panduan pengguna.
Catatan: mulai cepat ini tidak menyediakan seluruh tumpukan pemantauan; jika itu yang Anda cari, lihat proyek kube-prometheus. Jika kamu menginginkan seluruh tumpukan, namun sudah menerapkan bundle.yaml
, hapus bundelnya terlebih dahulu ( kubectl delete -f bundle.yaml
).
Untuk segera mencoba Operator Prometheus di dalam klaster, pilih rilis dan jalankan perintah berikut yang menyebarkan operator di namespace default
:
kubectl buat -f bundel.yaml
Jika Anda ingin menerapkan operator Prometheus di namespace yang berbeda, Anda juga memerlukan kustomize
:
NAMESPACE=my_namespace kustomisasi edit setel namespace $NAMESPACE && kubectl create -k .
Catatan: pastikan untuk mengadaptasi namespace di ClusterRoleBinding jika diterapkan di namespace selain namespace default.
Untuk menjalankan Operator di luar cluster:
membuat scripts/run-external.sh
Untuk menghapus operator dan Prometheus, pertama-tama hapus semua sumber daya khusus yang Anda buat di setiap namespace. Operator akan secara otomatis mematikan dan menghapus pod Prometheus dan Alertmanager, serta ConfigMaps terkait.
untuk n di $(kubectl get namespaces -o jsonpath={..metadata.name}); Mengerjakan kubectl delete --all --namespace=$n prometheus,servicemonitor,podmonitor,alertmanagerdone
Setelah beberapa menit Anda dapat melanjutkan dan menghapus operator itu sendiri.
kubectl delete -f bundle.yaml
Operator secara otomatis membuat layanan di setiap namespace tempat Anda membuat sumber daya Prometheus atau Alertmanager, dan menentukan tiga definisi sumber daya kustom. Anda dapat membersihkannya sekarang.
untuk n di $(kubectl get namespaces -o jsonpath={..metadata.name}); Mengerjakan kubectl delete --ignore-not-found --namespace=$n layanan alertmanager-operateddonekubectl yang dioperasikan prometheus delete --ignore-not-found customresourcedefinitions prometheuses.monitoring.coreos.com servicemonitors.monitoring.coreos.com podmonitors.monitoring.coreos.com alertmanagers.monitoring.coreos.com prometheusrules.monitoring.coreos.com alertmanagerconfigs.monitoring.coreos.com scrapeconfigs.monitoring.coreos.com
Lihat PENGUJIAN
Lihat KONTRIBUSI.
Jika Anda menemukan kerentanan keamanan yang terkait dengan Operator Prometheus, mohon jangan melaporkannya dengan membuka masalah GitHub, melainkan kirimkan email ke pengelola proyek yang ditemukan di file MAINTAINERS.md.
Periksa dokumentasi pemecahan masalah untuk masalah umum dan pertanyaan umum (FAQ).
logo organisasi operator prometheus dibuat dan disumbangkan oleh Bianca Cheng Costanzo.