Como criar políticas de alerta

Nesta página, mostramos como criar políticas de alertas para clusters do GKE no VMware.

Antes de começar

Para criar políticas de alertas, é necessário ter as seguintes permissões:

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.update

Você terá essas permissões se tiver um dos seguintes papéis:

  • monitoring.alertPolicyEditor
  • monitoring.editor
  • Editor do projeto
  • Proprietário de projetos

Para verificar seus papéis, acesse a página do IAM no console do Google Cloud.

Como criar uma política: servidor da API de cluster do administrador indisponível

Neste exercício, você cria uma política de alertas para os servidores da API Kubernetes dos clusters de administrador. Com essa política em vigor, é possível ser notificado sempre que o servidor da API de um cluster de administrador ficar inativo.

  1. Faça o download do arquivo de configuração da política: admin-cluster-apiserver-unavailable.json.

  2. Crie a política:

    gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
    

    Substitua POLICY_CONFIG pelo caminho do arquivo de configuração que você acabou de receber.

  3. Veja suas políticas de alertas:

    Console

    1. No Console do Google Cloud, acesse a página Monitoring.

      Acessar Monitoring

    2. À esquerda, selecione Alertas.

    3. Em Políticas, é possível ver uma lista das suas políticas de alertas.

      Na lista, selecione Servidor da API de cluster de administrador do GKE On-Prem inativo (crítico) para ver detalhes sobre a nova política. Em Condições, você pode ver uma descrição da política. Exemplo:

      Policy violates when ANY condition is met
      
      GKE on-prem admin cluster API server uptime is absent
      
      GKE on-prem admin cluster API server uptime is less than 99.99% per minute
      

    gcloud

    gcloud alpha monitoring policies list

    A resposta mostra informações detalhadas sobre a política. Exemplo:

    combiner: OR
    conditions:
    - conditionAbsent:
        aggregations:
        - alignmentPeriod: 60s
          crossSeriesReducer: REDUCE_MEAN
          groupByFields:
          - resource.label.project_id
          - resource.label.location
          - resource.label.cluster_name
          - resource.label.namespace_name
          - resource.label.container_name
          perSeriesAligner: ALIGN_MAX
        duration: 300s
        filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system"
          AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver")
        trigger:
          count: 1
      displayName: GKE on-prem admin cluster API server uptime is absent
      name: projects/…/alertPolicies/17065318077071152828/conditions/17065318077071154437
    - conditionThreshold:
        aggregations:
        - alignmentPeriod: 120s
          crossSeriesReducer: REDUCE_MEAN
          groupByFields:
          - resource.label.project_id
          - resource.label.location
          - resource.label.cluster_name
          - resource.label.namespace_name
          - resource.label.container_name
          perSeriesAligner: ALIGN_MAX
        comparison: COMPARISON_LT
        duration: 300s
        filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system"
          AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver")
        thresholdValue: 119.0
        trigger:
          count: 1
      displayName: GKE on-prem admin cluster API server uptime is less than 99.99% per
        minute
      name: projects/…/alertPolicies/17065318077071152828/conditions/17065318077071151950
    creationRecord:
      mutateTime: 
      mutatedBy: 
    displayName: GKE on-prem admin cluster API server unavailable (critical)
    enabled: true
    mutationRecord:
      mutateTime: 
      mutatedBy: 
    name: projects/xxxxxx/alertPolicies/17065318077071152828
    

Como criar outras políticas de alertas

Nesta seção, fornecemos descrições e arquivos de configuração para um conjunto de políticas de alertas recomendadas.

Para criar uma política, siga as mesmas etapas usadas no exercício anterior:

  1. Clique no link na coluna à direita para fazer o download do arquivo de configuração.

  2. Execute gcloud alpha monitoring policies create para criar a política.

Disponibilidade de componentes do plano de controle do cluster do administrador

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
Servidor da API de cluster de administrador do GKE On-Prem inativo (crítico) O servidor da API do cluster de administrador não está ativo ou o tempo de atividade é inferior a 99,99% por minuto admin-cluster-apiserver-unavailable.json
Programador de cluster de administrador local do GKE inativo (crítico) O programador do cluster de administrador não está ativo ou o tempo de atividade é inferior a 99,99% por minuto admin-cluster-scheduler-unavailable.json
Gerenciador do controlador de cluster do administrador no GKE On-Prem inativo (crítico) O gerenciador de controladores do cluster de administrador não está ativo ou o tempo de atividade é inferior a 99,99% por minuto admin-cluster-controller-manager-unavailable.json
Cluster de administrador do GKE On-Prem etcd indisponível (crítico) O etcd do cluster de administrador não está ativo ou o tempo de atividade é inferior a 99,99% por minuto admin-cluster-etcd-unavailable.json

Disponibilidade de componentes do plano de controle do cluster do usuário

Os alertas do plano de controle do cluster do usuário são baseados em métricas. Para a maioria das métricas do cluster, o campo cluster_name é o nome do próprio cluster. Mas para métricas de plano de controle do cluster do usuário, o campo cluster_name é o nome do cluster de administrador, e o campo namespace_name é o nome do cluster de usuário.

Você pode ver isso em uma captura de tela em Criar um painel de tempo de atividade do plano de controle.

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
Servidor da API do cluster de usuários do GKE On-Prem inativo (crítico) O servidor da API do cluster de usuário não está ativo ou o tempo de atividade é inferior a 99,99% por minuto user-cluster-apiserver-unavailable.json
Programador de cluster de usuário local do GKE On-Prem inativo (crítico) O programador de cluster de usuário não está ativo ou o tempo de atividade é inferior a 99,99% por minuto user-cluster-scheduler-unavailable.json
Gerenciador do controlador de cluster de usuário do GKE On-Prem inativo (crítico) O gerenciador de controladores de cluster do usuário não está ativo ou o tempo de atividade é inferior a 99,99% por minuto user-cluster-controller-manager-unavailable.json
Etcd do cluster do usuário do GKE On-Prem inativo (crítico) O cluster do usuário etcd não está ativo ou o tempo de atividade é inferior a 99,99% por minuto user-cluster-etcd-unavailable.json

Sistema Kubernetes

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
Ciclo de falha do pod do GKE On-Prem (crítico) O pod está em um status de loop de falha pod-crash-looping.json
O pod do GKE On-Prem está há mais de uma hora em um estado "não pronto" (crítico). O pod leva mais de uma hora para ficar pronto pod-not-ready-1h.json
Uso elevado do volume permanente do GKE On-Prem (crítico) O volume permanente requisitado deve ser preenchido persistent-volume-usage-high.json
O nó do GKE On-Prem está há mais de uma hora em um estado "não pronto" (crítico). O nó leva mais de uma hora para ficar pronto node-not-ready-1h.json

Desempenho do Kubernetes

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
A proporção de erros do servidor da API do cluster de administrador do GKE On-Prem ultrapassa 10% (crítico) O servidor da API do cluster de administrador está retornando erros em mais de 10% das solicitações admin-cluster-apiserver-error-ratio-10-percent.json
A proporção de erros do servidor da API do cluster de administrador do GKE On-Prem ultrapassa 5 por cento (aviso) O servidor da API do cluster de administrador está retornando erros em mais de 5% das solicitações admin-cluster-apiserver-error-ratio-5-percent.json
A proporção de erros do servidor da API do cluster de usuário do GKE On-Prem excede 10% (crítico) O servidor da API do cluster de usuário está retornando erros em mais de 10% das solicitações user-cluster-apiserver-error-ratio-10-percent.json
A proporção de erros do servidor da API do cluster de usuário do GKE On-Prem excede 5% (aviso) O servidor da API do cluster de usuário está retornando erros em mais de 5% das solicitações user-cluster-apiserver-error-ratio-5-percent.json

Como receber notificações

Depois de criar uma política de alertas, é possível definir um ou mais canais de notificação para essa política. Há vários tipos de canais de notificação. Por exemplo, é possível ser notificado por e-mail, um canal do Slack ou um app para dispositivos móveis. Você pode escolher os canais mais adequados.

Para instruções sobre como configurar canais de notificação, consulte Como gerenciar canais de notificação.