Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Monitor Trident protege recursos

Colaboradores netapp-aruldeepa

Você pode usar as ferramentas de código aberto kube-state-metrics, Prometheus e Alertmanager para monitorar a integridade dos recursos protegidos pelo Trident Protect.

O serviço kube-state-metrics gera métricas a partir da comunicação da API do Kubernetes. Ao utilizá-lo com o Trident Protect, você obtém informações úteis sobre o estado dos recursos em seu ambiente.

O Prometheus é um conjunto de ferramentas que pode ingerir os dados gerados pelo kube-state-metrics e apresentá-los como informações facilmente legíveis sobre esses objetos. Em conjunto, o kube-state-metrics e o Prometheus oferecem uma maneira de monitorar a integridade e o status dos recursos que você está gerenciando com o Trident Protect.

O Alertmanager é um serviço que recebe os alertas enviados por ferramentas como o Prometheus e os encaminha para destinos que você configura.

Observação

As configurações e orientações incluídas nestas etapas são apenas exemplos; você precisa personalizá-las para que correspondam ao seu ambiente. Consulte a seguinte documentação oficial para obter instruções específicas e suporte:

Passo 1: Instale as ferramentas de monitoramento

Para habilitar o monitoramento de recursos no Trident Protect, você precisa instalar e configurar o kube-state-metrics, o Promethus e o Alertmanager.

Instale o kube-state-metrics

Você pode instalar o kube-state-metrics usando o Helm.

Passos
  1. Adicione o gráfico Helm kube-state-metrics. Por exemplo:

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
  2. Aplique o Prometheus ServiceMonitor CRD ao cluster:

    kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
  3. Crie um arquivo de configuração para o gráfico Helm (por exemplo, metrics-config.yaml ). Você pode personalizar a seguinte configuração de exemplo para corresponder ao seu ambiente:

    metrics-config.yaml: configuração do gráfico Helm 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. Instale o kube-state-metrics implantando o gráfico Helm. Por exemplo:

    helm install custom-resource -f metrics-config.yaml prometheus-community/kube-state-metrics --version 5.21.0
  5. Configure o kube-state-metrics para gerar métricas para os recursos personalizados usados ​​pelo Trident Protect, seguindo as instruções em "Documentação do recurso personalizado kube-state-metrics" .

Instalar o Prometheus

Você pode instalar o Prometheus seguindo as instruções em "Documentação do Prometheus" .

Instalar o Alertmanager

Você pode instalar o Alertmanager seguindo as instruções em "Documentação do Alertmanager" .

Etapa 2: Configure as ferramentas de monitoramento para funcionarem em conjunto.

Após instalar as ferramentas de monitoramento, você precisa configurá-las para que funcionem em conjunto.

Passos
  1. Integre o kube-state-metrics com o Prometheus. Edite o arquivo de configuração do Prometheus(prometheus.yaml ) e adicione as informações do serviço kube-state-metrics. Por exemplo:

    prometheus.yaml: integração do serviço kube-state-metrics com o 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. Configure o Prometheus para encaminhar alertas para o Alertmanager. Edite o arquivo de configuração do Prometheus(prometheus.yaml ) e adicione a seguinte seção:

    prometheus.yaml: Enviar alertas para o Alertmanager
    alerting:
      alertmanagers:
        - static_configs:
            - targets:
                - alertmanager.trident-protect.svc:9093
Resultado

O Prometheus agora pode coletar métricas do kube-state-metrics e enviar alertas para o Alertmanager. Agora você está pronto para configurar quais condições acionam um alerta e para onde os alertas devem ser enviados.

Etapa 3: Configurar alertas e destinos de alerta

Depois de configurar as ferramentas para funcionarem em conjunto, você precisa configurar que tipo de informação aciona os alertas e para onde os alertas devem ser enviados.

Exemplo de alerta: falha no backup

O exemplo a seguir define um alerta crítico que é acionado quando o status do recurso personalizado de backup é definido como Error por 5 segundos ou mais. Você pode personalizar este exemplo para corresponder ao seu ambiente e incluir este trecho de YAML no seu arquivo de configuração. prometheus.yaml arquivo de configuração:

rules.yaml: Defina um alerta do Prometheus para backups com falha.
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."

Configure o Alertmanager para enviar alertas para outros canais.

Você pode configurar o Alertmanager para enviar notificações para outros canais, como e-mail, PagerDuty, Microsoft Teams ou outros serviços de notificação, especificando a respectiva configuração no arquivo de configuração. alertmanager.yaml arquivo.

O exemplo a seguir configura o Alertmanager para enviar notificações para um canal do Slack. Para adaptar este exemplo ao seu ambiente, substitua o valor de api_url Chave com a URL do webhook do Slack usada em seu ambiente:

alertmanager.yaml: Enviar alertas para um canal do 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