Esta página mostra como criar políticas de alerta para clusters do Google Distributed Cloud.
Antes de começar
Tem de ter as seguintes autorizações para criar políticas de alerta:
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.update
Tem estas autorizações se tiver uma das seguintes funções:
monitoring.alertPolicyEditor
monitoring.editor
- Editor de projetos
- Proprietário do projeto
Para criar uma política de alertas baseada em registos
através da Google Cloud CLI, também tem de ter a função
serviceusage.serviceUsageConsumer
.
Para verificar as suas funções, aceda à página IAM na Google Cloud consola.
Criar uma política de exemplo: servidor de API indisponível
Neste exercício, vai criar uma política de alerta para servidores da API Kubernetes. Com esta política em vigor, pode fazer com que receba uma notificação sempre que o servidor da API de um cluster estiver indisponível.
Transfira o ficheiro de configuração da política: apiserver-unavailable.json.
Crie a política:
gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
Substitua POLICY_CONFIG pelo caminho do ficheiro de configuração que acabou de transferir.
Veja as suas políticas de alerta:
Consola
Na Google Cloud consola, aceda à página Monitorização.
No lado esquerdo, selecione Alertas.
Em Políticas, pode ver uma lista das suas políticas de alerta.
Na lista, selecione Servidor de API do cluster do Anthos indisponível (crítico) para ver detalhes sobre a sua nova política. Em Condições, pode ver uma descrição da política. Por exemplo:
Policy violates when ANY condition is met Anthos cluster API server uptime is absent for 5m
gcloud
gcloud alpha monitoring policies list
O resultado mostra informações detalhadas sobre a política. Por 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 - resource.label.pod_name perSeriesAligner: ALIGN_MAX duration: 300s filter: resource.type = "k8s_container" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") trigger: count: 1 displayName: Anthos cluster API server uptime is absent for 5m name: projects/…/alertPolicies/…/conditions/… displayName: Anthos cluster API server unavailable (critical) enabled: true mutationRecord: mutateTime: … mutatedBy: … name: projects/…/alertPolicies/…
Crie políticas de alerta adicionais
Esta secção fornece descrições e ficheiros de configuração para um conjunto de políticas de alerta recomendadas.
Para criar uma política, siga os mesmos passos que usou no exercício anterior:
Clique no link na coluna do lado direito para transferir o ficheiro de configuração.
Opcionalmente, ajuste as condições para se adaptarem melhor às suas necessidades específicas. Por exemplo, pode adicionar filtros adicionais para um subconjunto de clusters ou ajustar os valores de limite para equilibrar a variância e a criticidade.
Execute
gcloud alpha monitoring policies create
para criar a política.
Disponibilidade dos componentes do plano de controlo
Nome do alerta | Descrição | Definição da política de alertas no Cloud Monitoring |
---|---|---|
Servidor da API indisponível (crítico) | A métrica de tempo de atividade do servidor da API não está disponível | apiserver-unavailable.json |
Agendador indisponível (crítico) | A métrica de tempo de atividade do programador não está disponível | scheduler-unavailable.json |
O gestor de comandos está indisponível (crítico) | A métrica de tempo de atividade do gestor de controladores não está disponível | controller-manager-unavailable.json |
Sistema Kubernetes
Nome do alerta | Descrição | Definição da política de alertas no Cloud Monitoring |
---|---|---|
Ciclo de falhas de sistema do agrupamento (aviso) | O pod continua a reiniciar e pode estar num estado de loop de falhas | pod-crash-looping.json |
O agrupamento não está pronto durante mais de uma hora (crítico) | O agrupamento está num estado não pronto há mais de uma hora | pod-not-ready-1h.json |
A utilização da CPU do contentor excede 80 por cento (aviso) | A utilização da CPU do contentor é superior a 80% do limite | container-cpu-usage-high-reaching-limit.json |
A utilização de memória do contentor excede 85 por cento (aviso) | A utilização de memória do contentor está acima de 85% do limite | container-memory-usage-high-reaching-limit.json |
Utilização elevada do volume persistente (crítico) | O volume persistente reivindicado tem menos de 3% de espaço livre | persistent-volume-usage-high.json |
A utilização da CPU do nó excede 80 por cento (aviso) | A utilização da CPU do nó é superior a 80% do total alocável durante 5 minutos | node-cpu-usage-high.json |
A utilização do disco do nó excede 85% (aviso) | Menos de 15% está livre por ponto de montagem do disco durante 10 minutos | node-disk-usage-high.json |
A utilização de memória do nó excede 80 por cento (aviso) | A utilização de memória do nó é superior a 80% do total alocável durante 5 minutos | node-memory-usage-high.json |
O nó não está pronto há mais de uma hora (crítico) | O nó está num estado não pronto há mais de uma hora | node-not-ready-1h.json |
Desempenho do Kubernetes
Nome do alerta | Descrição | Definição da política de alertas no Cloud Monitoring |
---|---|---|
A taxa de erros do servidor da API excede 20% (crítico) | O servidor da API devolve erros 5xx ou 429 em mais de 20% de todos os pedidos por verbo durante 15 minutos | apiserver-error-ratio-high.json |
A alteração do líder do ETCD ou a falha da proposta é demasiado frequente (aviso) | O líder do grupo etcd muda ou as falhas de propostas ocorrem com demasiada frequência |
etcd-leader-changes-or-proposal-failures-frequent.json |
O servidor ETCD não está em quorum (crítico) | Nenhuma proposta de servidor etcd confirmada durante 5 minutos, pelo que podem ter perdido o quórum |
etcd-server-not-in-quorum.yaml |
O armazenamento ETCD excede o limite de 90 por cento (aviso) | A utilização de armazenamento de etcd é superior a 90% do limite |
etcd-storage-usage-high.json |
Políticas de alerta com PromQL
As consultas nas políticas de alerta também podem ser expressas em PromQL em vez de MQL.
Por exemplo, a versão PromQL da política API server error ratio exceeds 20
percent (critical)
está disponível para transferência: apiserver-error-ratio-high-promql.json.
Para mais informações, consulte a documentação Usar o serviço gerido para Prometheus do Google Distributed Cloud e a documentação Políticas de alerta baseadas em PromQL do Cloud Monitoring.
Receber notificações
Depois de criar uma política de alerta, pode definir um ou mais canais de notificação para a política. Existem vários tipos de canais de notificação. Por exemplo, pode receber uma notificação por email, num canal do Slack ou numa app para dispositivos móveis. Pode escolher os canais que se adequam às suas necessidades.
Para ver instruções sobre como configurar canais de notificação, consulte o artigo Gerir canais de notificação.