Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Supervisa los recursos de Trident Protect

Puedes usar las herramientas de código abierto kube-state-metrics, Prometheus y Alertmanager para monitorear la salud de los recursos protegidos por Trident Protect.

El servicio kube-state-metrics genera métricas a partir de la comunicación de la API de Kubernetes. Si lo usas con Trident Protect, te muestra información útil sobre el estado de los recursos en tu entorno.

Prometheus es un conjunto de herramientas que puede ingerir los datos generados por kube-state-metrics y presentarlos como información fácilmente legible sobre estos objetos. Juntos, kube-state-metrics y Prometheus te ofrecen una forma de monitorear la salud y el estado de los recursos que estás gestionando con Trident Protect.

Alertmanager es un servicio que ingiere las alertas enviadas por herramientas como Prometheus y las dirige a los destinos que tú configures.

Nota

Las configuraciones y orientaciones incluidas en estos pasos son solo ejemplos; necesitas personalizarlas para que coincidan con tu entorno. Consulta la siguiente documentación oficial para instrucciones y soporte específicos:

Paso 1: instala las herramientas de supervisión

Para habilitar la supervisión de recursos en Trident Protect, necesitas instalar y configurar kube-state-metrics, Promethus y Alertmanager.

Instala kube-state-metrics

Puedes instalar kube-state-metrics usando Helm.

Pasos
  1. Agrega el Helm chart de kube-state-metrics. Por ejemplo:

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
  2. Aplica el CRD de Prometheus ServiceMonitor al clúster:

    kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
  3. Crea un archivo de configuración para el Helm chart (por ejemplo, metrics-config.yaml). Puedes personalizar el siguiente ejemplo de configuración para que se ajuste a tu entorno:

    metrics-config.yaml: configuración del Helm chart de 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. Instala kube-state-metrics desplegando el chart de Helm. Por ejemplo:

    helm install custom-resource -f metrics-config.yaml prometheus-community/kube-state-metrics --version 5.21.0
  5. Configura kube-state-metrics para generar métricas para los recursos personalizados usados por Trident Protect siguiendo las instrucciones en el "documentación de recursos personalizados de kube-state-metrics".

Instala Prometheus

Puedes instalar Prometheus siguiendo las instrucciones en el "Documentación de Prometheus".

Instala Alertmanager

Puedes instalar Alertmanager siguiendo las instrucciones en "Documentación de Alertmanager".

Paso 2: configura las herramientas de supervisión para que funcionen juntas

Después de instalar las herramientas de supervisión, necesitas configurarlas para que funcionen juntas.

Pasos
  1. Integra kube-state-metrics con Prometheus. Edita el archivo de configuración de Prometheus (prometheus.yaml y añade la información del servicio kube-state-metrics. Por ejemplo:

    prometheus.yaml: integración del servicio 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 para enrutar las alertas a Alertmanager. Edita el archivo de configuración de Prometheus (prometheus.yaml y agrega la siguiente sección:

    prometheus.yaml: enviar alertas a Alertmanager
    alerting:
      alertmanagers:
        - static_configs:
            - targets:
                - alertmanager.trident-protect.svc:9093
Resultado

Prometheus puede ahora recopilar métricas de kube-state-metrics y puede enviar alertas a Alertmanager. Ahora estás listo para configurar qué condiciones activan una alerta y a dónde se deben enviar las alertas.

Paso 3: Configura las alertas y los destinos de alertas

Después de configurar las herramientas para que funcionen juntas, necesitas configurar qué tipo de información activa las alertas y a dónde se deben enviar.

Ejemplo de alerta: fallo de backup

El siguiente ejemplo define una alerta crítica que se activa cuando el estado del recurso personalizado de copia de seguridad se establece en Error durante 5 segundos o más. Puedes personalizar este ejemplo para adaptarlo a tu entorno e incluir este fragmento YAML en tu prometheus.yaml archivo de configuración:

rules.yaml: define una alerta Prometheus para copias de seguridad fallidas
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 para enviar alertas a otros canales

Puedes configurar Alertmanager para enviar notificaciones a otros canales, como correo electrónico, PagerDuty, Microsoft Teams u otros servicios de notificación especificando la configuración respectiva en el archivo alertmanager.yaml.

El siguiente ejemplo configura Alertmanager para enviar notificaciones a un canal de Slack. Para adaptar este ejemplo a tu entorno, reemplaza el valor de la clave api_url con la URL del webhook de Slack que usas en tu entorno:

alertmanager.yaml: enviar alertas a un canal de 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