Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Monitoraggio
Prometheus, un progetto CNCF laureato
L'architettura di alto livello della raccolta di metriche di Prometheus è mostrata di seguito:

Prometheus utilizza un meccanismo pull e raccoglie le metriche dagli obiettivi utilizzando gli esportatori e dall'API Kubernetes utilizzando le metriche dello stato di kube.
Un esportatore ti consente di utilizzare metriche di terze parti come metriche in formato Prometheus. Un esportatore Prometheus viene in genere distribuito su ogni nodo. Per un elenco completo degli esportatori, consulta gli esportatori di Prometheus.
In un cluster EKS a nodi misti con nodi Windows, quando si utilizza la tabella di comando stabile Prometheus
Per configurare il monitoraggio di Prometheus per i nodi Windows, è necessario scaricare e installare l'esportatore WMI sul server Windows stesso e quindi configurare i target all'interno della configurazione scrape del file di configurazione Prometheus. La pagina delle versioni
Puoi consultare la sezione sulle migliori pratiche di pianificazione di questa guida che suggerisce l'uso taints/tolerations o RuntimeClass la distribuzione selettiva di node Exporter solo su nodi Linux, mentre l'esportatore di Windows viene installato sui nodi Windows durante l'avvio del nodo o utilizzando uno strumento di gestione della configurazione a tua scelta (ad esempio chef, Ansible, SSM ecc.).
Si noti che, a differenza dei nodi Linux in cui l'esportatore di nodi è installato come demonset, nei nodi Windows l'esportatore WMI è installato sull'host stesso. L'esportatore esporterà metriche come l'utilizzo della CPU, della memoria e del disco I/O e può essere utilizzato anche per monitorare i siti e le applicazioni IIS, le interfacce e i servizi di rete.
Per impostazione predefinita, windows_exporter esporrà tutte le metriche dei raccoglitori abilitati. Questo è il metodo consigliato per raccogliere le metriche per evitare errori. Tuttavia, per un uso avanzato, a windows_exporter può essere passato un elenco opzionale di raccoglitori per filtrare le metriche. Il parametro collect [], nella configurazione di Prometheus, consente di farlo.
I passaggi di installazione predefiniti per Windows includono il download e l'avvio dell'esportatore come servizio durante il processo di avvio con argomenti, ad esempio i raccoglitori da filtrare.
> 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"
Per impostazione predefinita, è possibile eseguire lo scraping delle metriche nell'endpoint /metrics sulla porta 9182. A questo punto, Prometheus può utilizzare le metriche aggiungendo il seguente scrape_config alla configurazione di 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', ...]
La configurazione di Prometheus viene ricaricata utilizzando
> ps aux | grep prometheus > kill HUP <PID>
Un modo migliore e consigliato per aggiungere obiettivi consiste nell'utilizzare una definizione di risorsa personalizzata chiamata ServiceMonitor, che fa parte dell'operatore Prometheus
Il ServiceMonitor, che specifica in modo dichiarativo come devono essere monitorati i gruppi di servizi Kubernetes, viene utilizzato per definire un'applicazione da cui desideri acquisire le metriche dall'interno di Kubernetes. All'interno ServiceMonitor specifichiamo le etichette Kubernetes che l'operatore può utilizzare per identificare il servizio Kubernetes, che a sua volta identifica i Pod che desideriamo monitorare.
Per sfruttare il ServiceMonitor, crea un oggetto Endpoint che punti a obiettivi Windows specifici, un servizio headless e un per i nodi Windows. ServiceMontor
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
Per maggiori dettagli sull'operatore e sull'utilizzo di ServiceMonitor, consulta la documentazione ufficiale dell'operatore.