Alertas

Um Alertmanager é instalado no cluster de administrador para coletar e entregar alertas. Consulte Políticas de alerta predefinidas para regras de alerta predefinidas.

Configurar os canais de notificação

  1. Crie um configmap com as configurações do alertmanager no namespace kube-system com o rótulo logmon: system_metrics. A configuração do alertmanager tem a mesma sintaxe das regras de configuração do alertmanager e deve ser adicionada a alertmanager.yml no campo data. Veja as amostras de arquivos de configuração.

    • Siga a configuração do alertmanager para definir os canais de notificação na configuração do Alertmanager.

    • (Opcional) Se você quiser usar webhooks do Slack, consulte Webhooks do Slack para informações sobre como ativar o webhook.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-alertmanager-configmap-name>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_metrics
    data:
      # The file name must be alertmanager.yml
      alertmanager.yml: |
        # Add the customized alertmanager configuration here
    
  2. Execute o comando a seguir para abrir o recurso personalizado LogMon em um editor de linha de comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. No recurso personalizado LogMon, adicione o campo alertmanagerConfigurationConfigmaps ao campo spec/system_metrics/outputs/default_prometheus/deployment/alertmanager.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                  alertmanagerConfigurationConfigmaps:
                  # The name should match the configmap name created in step 1.
                  - "<customized-alertmanager-configmap-name>"
    
  4. Para salvar as alterações no recurso personalizado LogMon, salve e saia do editor de linha de comando.

[Opcional] Personalizar políticas de alertas

  1. Crie um configmap com regras do Prometheus no namespace kube-system com o logmon: system_metrics label. No Prometheus, a definição de regras tem a mesma sintaxe das regras de alerta e das regras de gravação. É possível incluir vários arquivos de regras do Prometheus no configmap. Veja as amostras de arquivos de configuração.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-prometheus-rules-configmap-name>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_metrics
    data:
      # The file name must be unique across all customized prometheus rule files.
      <a-unique-file-name>: |
      # Add customized recording rules here
       
    
      # The file name must be unique across all customized prometheus rule files.
      <a-unique-file-name>: |
      # Add customized alerting rules here
      
    
  2. Execute o comando a seguir para abrir o recurso personalizado LogMon em um editor de linha de comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. No recurso personalizado LogMon, adicione o campo prometheusRulesConfigmaps ao campo spec/system_metrics/outputs/default_prometheus/deployment/prometheus.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                prometheus:
                  prometheusRulesConfigmaps:
                  # The name should match the configmap name created in step 1.
                  - "<customized-prometheus-rules-configmap-name>"
    
  4. Para salvar as alterações no recurso personalizado LogMon, salve e saia do editor de linha de comando.

Painel da visão geral de alertas

Um painel de visão geral de alertas está disponível nos painéis do Monitoring:

Painel da visão geral de alertas

Políticas de alerta predefinidas

Veja a seguir as regras de alerta pré-instaladas no Prometheus.

Nome Descrição
KubeAPIDown (crítico) A KubeAPI desapareceu da descoberta de destino do Prometheus por 15 minutos.
KubeClientErrors (aviso) Proporção de erros do cliente do servidor da API Kubernetes > 0,01 por 15 minutos.
KubeClientErrors (crítico) Proporção de erros do cliente do servidor da API Kubernetes > 0,1 por 15 minutos.
KubePodCrashLooping (aviso) O pod está no estado de loop de falha há mais de 15 minutos.
KubePodNotReady (aviso) O pod está em estado não pronto há mais de 15 minutos.
KubePersistentVolumeFillingUp (crítico) Bytes livres de um PersistentVolume solicitado < 0,03.
KubePersistentVolumeFillingUp (aviso) Bytes livres de um PersistentVolume solicitado < 0,15.
KubePersistentVolumeErrors (crítico) O volume permanente está na fase "Com falha" ou "Pendente" por cinco minutos.
KubeNodeNotReady (aviso) O nó está inativo há mais de 15 minutos.
KubeNodeCPUUsageHigh (crítico) O uso da CPU do nó é > 80%.
KubeNodeMemoryUsageHigh (crítico) O uso da memória do nó é > 80%.
NodeFilesystemSpaceFillingUp (aviso) O uso do sistema de arquivos de nós é > 60%.
NodeFilesystemSpaceFillingUp (crítico) O uso do sistema de nós do nó é > 85%.
CertManagerAbsent (crítico) O cert-manager desaparece do Prometheus por 10 minutos. É possível que os certificados não estejam criando / renovando corretamente.
CertManagerCertExpirySoon (aviso) O certificado expira em 21 dias.
CertManagerCertNotReady (crítico) Um certificado não está pronto para ser usado para exibir tráfego após 10 minutos.
CertManagerHittingRateLimits (crítico) Foi alcançado um limite de taxa para a criação / renovação de certificados por cinco minutos.