Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memantau
Prometheus, proyek CNCF yang lulus sejauh ini
Arsitektur tingkat tinggi dari koleksi metrik Prometheus ditunjukkan di bawah ini:
Prometheus menggunakan mekanisme tarik dan mengikis metrik dari target menggunakan eksportir dan dari API Kubernetes menggunakan metrik status kube. https://github.com/kubernetes/kube-state-metrics
Eksportir memungkinkan Anda menggunakan metrik pihak ketiga sebagai metrik berformat Prometheus. Eksportir Prometheus biasanya dikerahkan pada setiap node. Untuk daftar lengkap eksportir, silakan merujuk ke eksportir Prometheus.
Dalam cluster EKS simpul campuran dengan node Windows saat Anda menggunakan bagan helm Prometheus yang stabil
Untuk mengatur pemantauan Prometheus untuk node Windows, Anda perlu mengunduh dan menginstal eksportir WMI di server Windows itu sendiri dan kemudian mengatur target di dalam konfigurasi scrape file konfigurasi Prometheus. Halaman rilis
Anda dapat melihat bagian praktik terbaik penjadwalan dari panduan ini yang menyarankan penggunaan taints/tolerations atau RuntimeClass untuk menyebarkan eksportir node secara selektif hanya ke node linux, sementara eksportir Windows diinstal pada node Windows saat Anda mem-bootstrap node atau menggunakan alat manajemen konfigurasi pilihan Anda (contoh chef, Ansible, SSM dll).
Perhatikan bahwa, tidak seperti node linux di mana eksportir node diinstal sebagai daemonset, pada node Windows eksportir WMI diinstal pada host itu sendiri. Eksportir akan mengekspor metrik seperti penggunaan CPU, memori dan I/O penggunaan disk dan juga dapat digunakan untuk memantau situs dan aplikasi IIS, antarmuka jaringan dan layanan.
windows_importer akan mengekspos semua metrik dari kolektor yang diaktifkan secara default. Ini adalah cara yang disarankan untuk mengumpulkan metrik untuk menghindari kesalahan. Namun, untuk penggunaan lanjutan windows_importer dapat diteruskan daftar kolektor opsional untuk memfilter metrik. Parameter Collect [], dalam konfigurasi Prometheus memungkinkan Anda melakukannya.
Langkah-langkah instalasi default untuk Windows termasuk mengunduh dan memulai eksportir sebagai layanan selama proses bootstrap dengan argumen, seperti kolektor yang ingin Anda filter.
> Powershell Invoke-WebRequest https://github.com/prometheus-community/windows_exporter/releases/download/v0.13.0/windows_exporter-0.13.0-amd64.msi -OutFile <DOWNLOADPATH> > msiexec /i <DOWNLOADPATH> ENABLED_COLLECTORS="cpu,cs,logical_disk,net,os,system,container,memory"
Secara default, metrik dapat dikikis pada titik akhir /metrics pada port 9182. Pada titik ini, Prometheus dapat menggunakan metrik dengan menambahkan scrape_config berikut ke konfigurasi Prometheus
scrape_configs: - job_name: "prometheus" static_configs: - targets: ['localhost:9090'] ... - job_name: "wmi_exporter" scrape_interval: 10s static_configs: - targets: ['<windows-node1-ip>:9182', '<windows-node2-ip>:9182', ...]
Konfigurasi Prometheus dimuat ulang menggunakan
> ps aux | grep prometheus > kill HUP <PID>
Cara yang lebih baik dan direkomendasikan untuk menambahkan target adalah dengan menggunakan Definisi Sumber Daya Kustom yang disebut ServiceMonitor, yang datang sebagai bagian dari operator Prometheus
The ServiceMonitor, yang secara deklaratif menentukan bagaimana grup layanan Kubernetes harus dipantau, digunakan untuk menentukan aplikasi yang ingin Anda kikis metrik dari dalam Kubernetes. Di dalamnya ServiceMonitor kami menentukan label Kubernetes yang dapat digunakan operator untuk mengidentifikasi Layanan Kubernetes yang pada gilirannya mengidentifikasi Pod, yang ingin kami pantau.
Untuk memanfaatkan ServiceMonitor, buat objek Endpoint yang menunjuk ke target Windows tertentu, layanan tanpa kepala, dan ServiceMontor untuk node Windows.
apiVersion: v1 kind: Endpoints metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: kube-system subsets: - addresses: - ip: NODE-ONE-IP targetRef: kind: Node name: NODE-ONE-NAME - ip: NODE-TWO-IP targetRef: kind: Node name: NODE-TWO-NAME - ip: NODE-THREE-IP targetRef: kind: Node name: NODE-THREE-NAME ports: - name: http-metrics port: 9182 protocol: TCP --- apiVersion: v1 kind: Service ##Headless Service metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: kube-system spec: clusterIP: None ports: - name: http-metrics port: 9182 protocol: TCP targetPort: 9182 sessionAffinity: None type: ClusterIP --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor ##Custom ServiceMonitor Object metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: monitoring spec: endpoints: - interval: 30s port: http-metrics jobLabel: k8s-app namespaceSelector: matchNames: - kube-system selector: matchLabels: k8s-app: wmiexporter
Untuk detail lebih lanjut tentang operator dan penggunaannya ServiceMonitor, periksa dokumentasi