Como criar políticas de alerta

Nesta página, mostramos como criar políticas de alertas para clusters do Anthos em clusters bare metal.

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 indisponível

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

  1. Faça o download do arquivo de configuração da política: apiserver-down.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 do Anthos em bare metal indisponível (crítico) para ver detalhes sobre a nova política. Em Condições, você pode ver uma descrição da política. Por exemplo:

      Policy violates when ANY condition is met
      Anthos on baremetal API server is up
      

    gcloud

    gcloud alpha monitoring policies list

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

    ---
    combiner: OR
    conditions:
    - conditionMonitoringQueryLanguage:
        duration: 0s
        query: |-
          { t_0:
              fetch k8s_container
              | metric 'kubernetes.io/anthos/up'
              | filter (resource.container_name =~ 'kube-apiserver')
              | align mean_aligner()
              | group_by 1m, [value_up_mean: mean(value.up)]
              | every 1m
              | group_by [resource.project_id, resource.location, resource.cluster_name],
                  [value_up_mean_aggregate: aggregate(value_up_mean)]
          ; t_1:
              fetch k8s_container::kubernetes.io/anthos/anthos_cluster_info
              | filter (metric.anthos_distribution = 'baremetal')
              | align mean_aligner()
              | group_by [resource.project_id, resource.location, resource.cluster_name],
                  [value_anthos_cluster_info_aggregate:
                     aggregate(value.anthos_cluster_info)]
              | every 1m }
          | join
          | value [t_0.value_up_mean_aggregate]
          | window 1m
          | absent_for 300s
        trigger:
          count: 1
      displayName: Anthos on baremetal API server is up
      name: projects/xxxxxx/alertPolicies/8497323605386949154/conditions/8497323605386950375
    creationRecord:
      mutateTime: '2021-03-17T23:07:18.618778106Z'
      mutatedBy: sharon@example.com
    displayName: Anthos on baremetal API server down (critical)
    enabled: true
    mutationRecord:
      mutateTime: '2021-03-17T23:07:18.618778106Z'
      mutatedBy: sharon@example.com
    name: projects/xxxxxx/alertPolicies/8497323605386949154
    

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 dos componentes do plano de controle

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
Servidor da API do Anthos em bare metal indisponível (crítico) O servidor da API desapareceu da descoberta do alvo de métricas apiserver-down.json
Programador do Anthos em bare metal indisponível (crítico) O programador desapareceu da descoberta do alvo de métricas scheduler-down.json
Gerenciador do controlador do Anthos em bare metal indisponível (crítico) O gerenciador do controlador desapareceu da descoberta do alvo de métricas controller-manager-down.json

Sistema Kubernetes

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
Ciclo de falha do pod do Anthos em bare metal (crítico) O pod está em um status de loop de falha pod-crash-looping.json
O pod do Anthos em bare metal 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
Alto uso do volume permanente do Anthos em bare metal (crítico) Espera-se que o volume permanente requisitado seja preenchido persistent-volume-usage-high.json
O nó do Anthos em bare metal 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
O uso da CPU do nó do Anthos em bare metal excede 80% (crítico) O uso da CPU do nó é superior a 80% node-cpu-usage-high.json
O uso da memória do nó do Anthos em bare metal excede 80% (crítico) O uso da memória do nó é superior a 80% node-memory-usage-high.json
O uso do disco de nós do Anthos em bare metal excede 80% (crítico) O uso do disco de nós é superior a 80% node-disk-usage-high.json

Desempenho do Kubernetes

Nome do alerta Descrição Definição da política de alertas no Cloud Monitoring
A proporção de erros de servidor da API do Anthos em bare metal excede 10% (crítico) O servidor da API está retornando erros para mais de 10% das solicitações api-server-error-ratio-10-percent.json
A proporção de erros de servidor da API do Anthos em bare metal excede 5% (aviso) O servidor da API está retornando erros para mais de 5% das solicitações api-server-error-ratio-5-percent.json
A variante do etcd do Anthos em bare metal muda com muita frequência (crítico). A variante do etcd muda com muita frequência etcd-leader-changes-too-frequent.json
As propostas do etcd do Anthos em bare metal estão falhando com muita frequência (crítico) As propostas do etcd estão falhando com muita frequência etcd-proposals-failed-too-frequent.json
O servidor do etcd do Anthos em bare metal não está no quórum (crítico) O servidor do etcd não está no quórum etcd-server-not-in-quorum.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.