Skip to main content
È disponibile una versione più recente di questo prodotto.
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Monitorare le risorse di Trident Protect

È possibile utilizzare gli strumenti open source kube-state-metrics, Prometheus e Alertmanager per monitorare lo stato di salute delle risorse protette da Trident Protect.

Il servizio kube-state-metrics genera metriche dalla comunicazione API di Kubernetes. Utilizzarlo con Trident Protect espone informazioni utili sullo stato delle risorse nel tuo ambiente.

Prometheus è un toolkit in grado di acquisire i dati generati da kube-state-metrics e presentarli come informazioni facilmente leggibili su questi oggetti. Insieme, kube-state-metrics e Prometheus offrono un modo per monitorare l'integrità e lo stato delle risorse che gestisci con Trident Protect.

Alertmanager è un servizio che acquisisce gli avvisi inviati da strumenti come Prometheus e li instrada verso destinazioni che configuri.

Nota

Le configurazioni e le istruzioni incluse in questi passaggi sono solo esempi; è necessario personalizzarle per adattarle al proprio ambiente. Fare riferimento alla seguente documentazione ufficiale per istruzioni e supporto specifici:

Passaggio 1: installa gli strumenti di monitoraggio

Per abilitare il monitoraggio delle risorse in Trident Protect, è necessario installare e configurare kube-state-metrics, Promethus e Alertmanager.

Installa kube-state-metrics

Puoi installare kube-state-metrics usando Helm.

Passaggi
  1. Aggiungi il grafico Helm kube-state-metrics. Ad esempio:

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
  2. Applica il CRD ServiceMonitor di Prometheus al cluster:

    kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
  3. Crea un file di configurazione per il grafico Helm (ad esempio, metrics-config.yaml). Puoi personalizzare la seguente configurazione di esempio in base al tuo ambiente:

    metrics-config.yaml: configurazione Helm chart kube-state-metrics
    ---
    extraArgs:
      # Collect only custom metrics
      - --custom-resource-state-only=true
    
    customResourceState:
      enabled: true
      config:
        kind: CustomResourceStateMetrics
        spec:
          resources:
          - groupVersionKind:
              group: protect.trident.netapp.io
              kind: "Backup"
              version: "v1"
            labelsFromPath:
              backup_uid: [metadata, uid]
              backup_name: [metadata, name]
              creation_time: [metadata, creationTimestamp]
            metrics:
            - name: backup_info
              help: "Exposes details about the Backup state"
              each:
                type: Info
                info:
                  labelsFromPath:
                    appVaultReference: ["spec", "appVaultRef"]
                    appReference: ["spec", "applicationRef"]
    rbac:
      extraRules:
      - apiGroups: ["protect.trident.netapp.io"]
        resources: ["backups"]
        verbs: ["list", "watch"]
    
    # Collect metrics from all namespaces
    namespaces: ""
    
    # Ensure that the metrics are collected by Prometheus
    prometheus:
      monitor:
        enabled: true
  4. Installa kube-state-metrics distribuendo il grafico Helm. Ad esempio:

    helm install custom-resource -f metrics-config.yaml prometheus-community/kube-state-metrics --version 5.21.0
  5. Configura kube-state-metrics per generare metriche per le risorse personalizzate utilizzate da Trident Protect seguendo le istruzioni nel "documentazione delle risorse personalizzate kube-state-metrics".

Installa Prometheus

È possibile installare Prometheus seguendo le istruzioni nel "Documentazione di Prometheus".

Installa Alertmanager

È possibile installare Alertmanager seguendo le istruzioni nel "Documentazione di Alertmanager".

Passaggio 2: configura gli strumenti di monitoraggio affinché funzionino insieme

Dopo aver installato gli strumenti di monitoraggio, è necessario configurarli affinché funzionino insieme.

Passaggi
  1. Integra kube-state-metrics con Prometheus. Modifica il file di configurazione Prometheus (prometheus.yaml e aggiungi le informazioni sul servizio kube-state-metrics. Ad esempio:

    prometheus.yaml: integrazione del servizio kube-state-metrics con Prometheus
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: prometheus-config
      namespace: trident-protect
    data:
      prometheus.yaml: |
        global:
          scrape_interval: 15s
        scrape_configs:
          - job_name: 'kube-state-metrics'
            static_configs:
              - targets: ['kube-state-metrics.trident-protect.svc:8080']
  2. Configura Prometheus per indirizzare gli avvisi ad Alertmanager. Modifica il file di configurazione di Prometheus (prometheus.yaml e aggiungi la seguente sezione:

    prometheus.yaml: Invia avvisi ad Alertmanager
    alerting:
      alertmanagers:
        - static_configs:
            - targets:
                - alertmanager.trident-protect.svc:9093
Risultato

Prometheus ora può raccogliere metriche da kube-state-metrics e inviare avvisi ad Alertmanager. Ora sei pronto per configurare quali condizioni attivano un avviso e dove devono essere inviati gli avvisi.

Passaggio 3: Configura gli avvisi e le destinazioni degli avvisi

Dopo aver configurato gli strumenti affinché funzionino insieme, è necessario configurare quale tipo di informazioni attiva gli avvisi e dove devono essere inviati.

Esempio di avviso: errore di backup

L'esempio seguente definisce un avviso critico che viene attivato quando lo stato della risorsa personalizzata di backup è impostato su Error per 5 secondi o più. È possibile personalizzare questo esempio in base al proprio ambiente e includere questo frammento YAML nel file di configurazione prometheus.yaml:

rules.yaml: Definisci un avviso Prometheus per i backup non riusciti
rules.yaml: |
  groups:
    - name: fail-backup
        rules:
          - alert: BackupFailed
            expr: kube_customresource_backup_info{status="Error"}
            for: 5s
            labels:
              severity: critical
            annotations:
              summary: "Backup failed"
              description: "A backup has failed."

Configura Alertmanager per inviare avvisi ad altri canali

È possibile configurare Alertmanager per inviare notifiche ad altri canali, come e-mail, PagerDuty, Microsoft Teams o altri servizi di notifica, specificando la rispettiva configurazione nel alertmanager.yaml file.

L'esempio seguente configura Alertmanager per inviare notifiche a un canale Slack. Per personalizzare questo esempio in base al tuo ambiente, sostituisci il valore della api_url chiave con l'URL del webhook Slack utilizzato nel tuo ambiente:

alertmanager.yaml: invia avvisi a un canale Slack
data:
  alertmanager.yaml: |
    global:
      resolve_timeout: 5m
    route:
      receiver: 'slack-notifications'
    receivers:
      - name: 'slack-notifications'
        slack_configs:
          - api_url: '<your-slack-webhook-url>'
            channel: '#failed-backups-channel'
            send_resolved: false