Escreva regras de alerta personalizadas em PromQL para monitorar nós do cluster, hosts, réplicas de contêiner e cargas de trabalho.
Pré-requisitos
Antes de começar, verifique se você tem:
Monitoramento do Prometheus ativado para o seu cluster ACK. Use Alibaba Cloud Prometheus Monitoring (recomendado) ou open source Prometheus monitoring
Configurar regras de alerta com PromQL personalizado
Tanto o Alibaba Cloud Prometheus quanto o Prometheus de código aberto suportam regras de alerta personalizadas baseadas em PromQL, que acionam notificações ao atender às condições.
Alibaba Cloud Prometheus
Para criar uma regra de alerta do Prometheus usando PromQL personalizado, consulte Create a Prometheus alert rule.
Prometheus de código aberto
Configure uma política de notificação de alerta. O Prometheus de código aberto suporta webhooks, DingTalk e e-mail. Defina o método de notificação por meio do parâmetro
receiverno ack-prometheus-operator. Consulte Alerting configuration.-
Crie uma regra de alerta. Implante um CRD PrometheusRule no cluster para definir as regras de alerta (consulte Deploying Prometheus rules). O exemplo a seguir dispara quando o uso de CPU do nó excede 90% em uma janela de 2 minutos. O campo
exprespecifica a expressão PromQL e a condição de acionamento.apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: labels: # Labels must match ruleSelector.matchLabels in the Prometheus CRD. prometheus: example role: alert-rules name: prometheus-example-rules spec: groups: - name: example.rules rules: - alert: ExampleAlert # expr: PromQL query and trigger condition. # Refer to the PromQL configuration column in the alert rule tables below. expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 90 -
Verifique se a regra de alerta está ativa.
Execute o seguinte comando para encaminhar o service do Prometheus para a porta 9090 na sua máquina local:
kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoringAbra
localhost:9090no seu navegador.Escolha Status > Rules. Se a regra de alerta aparecer na página Rules, ela está ativa.
Referência de regras de alerta
O ACK fornece regras de alerta recomendadas com base na experiência em O&M, abrangendo a estabilidade do cluster, o uso de recursos de nós e hosts, réplicas de contêiner, cargas de trabalho, armazenamento e rede.
Níveis de severidade:
Critical: Afeta o cluster, o aplicativo ou os negócios. Requer ação imediata.
Warning: Afeta o cluster, o aplicativo ou os negócios. Investigue prontamente.
Normal: Indica uma alteração importante em um recurso.
A coluna Rule description usa a aba Alert Rules na página Alerts como ponto de entrada. Para acessar: acesse o ACK console , clique em seu cluster na lista Clusters e, em seguida, escolha Operations > Alerts > Alert Rules .
Réplicas de contêiner anormais
|
Descrição |
Severidade |
PromQL |
Limiar |
Janela |
Descrição da regra |
Solução de problemas |
|
Status anormal do pod |
Critical |
|
> 0 |
5 min |
Dispara quando um pod permanece no status Pending, Unknown ou Failed por 5 minutos. Configure por meio de Alert Rule Set for Pod Exceptions > Pod anomaly. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Falha na inicialização do pod |
Critical |
|
> 3 reinicializações |
5 min |
Dispara quando um pod reinicia mais de 3 vezes em 5 minutos. Configure por meio de Alert Rule Set for Pod Exceptions > Pod startup failures. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Mais de 1.000 pods com falha de agendamento por 10 minutos contínuos |
Critical |
|
> 1.000 pods |
10 min |
Dispara quando mais de 1.000 pods permanecem no estado Pending devido a falhas de agendamento por mais de 10 minutos contínuos. |
Pode indicar pressão excessiva de agendamento. O ACK Pro Edition fornece agendamento aprimorado e um SLA. Consulte Overview of ACK managed cluster Pro Edition. |
|
Throttling frequente de CPU do contêiner |
Warning |
|
> 25% de tempo com throttling |
3 min |
Dispara quando o tempo de CPU com throttling excede 25% em 3 minutos. O throttling reduz as fatias de tempo, aumentando o tempo de execução do processo e desacelerando a lógica do aplicativo. |
Verifique se o |
|
Uso de CPU do pod > 85% do limite |
Warning |
|
>= 85% do limite do pod |
1 min |
Dispara quando o uso de CPU do pod excede 85% do seu limite. Sem efeito se não houver um limite configurado. Limiar padrão: 85% — ajuste conforme necessário. Para filtrar, substitua |
O alto uso de CPU causa throttling e reduz as fatias de tempo. Verifique se o |
|
Uso de memória do pod > 85% do limite |
Warning |
|
>= 85% do limite do pod |
— |
Dispara quando o uso de memória do pod excede 85% do seu limite. Sem efeito se não houver um limite configurado. Limiar padrão: 85% — ajuste conforme necessário. |
O alto uso de memória pode causar OOM kills e reinicializações do pod. Verifique se o |
Cargas de trabalho anormais
|
Descrição |
Severidade |
PromQL |
Limiar |
Janela |
Descrição da regra |
Solução de problemas |
|
Incompatibilidade de réplicas do Deployment |
Critical |
|
Qualquer incompatibilidade |
— |
Dispara quando as réplicas disponíveis do Deployment não correspondem à contagem desejada. Configure por meio de Alert Rule Set for Workload Exceptions > Deployment pod anomaly. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Incompatibilidade de réplicas do DaemonSet |
Critical |
|
> 0 |
— |
Dispara quando as réplicas disponíveis do DaemonSet não correspondem à contagem desejada. Configure por meio de Alert Rule Set for Workload Exceptions > DaemonSet pod anomaly. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Erro de agendamento do DaemonSet |
Critical |
|
> 0 |
— |
Dispara quando uma réplica do DaemonSet é executada em um nó incorreto. Configure por meio de Alert Rule Set for Workload Exceptions > DaemonSet pod scheduling errors. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Falha no Job |
Critical |
|
> 0 |
— |
Dispara quando um Job falha. Configure por meio de Alert Rule Set for Workload Exceptions > Job execution failures. Consulte Manage alerts in ACK. |
Verifique os logs do pod com falha para obter detalhes do erro. Consulte Troubleshoot pod exceptions. |
Exceções de armazenamento
|
Descrição |
Severidade |
PromQL |
Limiar |
Janela |
Descrição da regra |
Solução de problemas |
|
Status anormal do PersistentVolume (PV) |
Critical |
|
> 0 |
— |
Dispara quando um PV entra no estado Failed ou Pending. Configure por meio de Alert Rule Set for Storage Exceptions > PV anomaly. Consulte Manage alerts in ACK. |
Consulte a seção de montagem de disco em FAQ about disk PVs. |
|
Uso de disco do host > 85% |
Critical |
|
>= 85% |
— |
Dispara quando o espaço livre em disco do nó é inferior a 15%. Configure por meio de Alert Rule Set for Resource Exceptions > Node - Disk usage >= 85%. Consulte Manage alerts in ACK. |
Escale o nó horizontalmente ou expanda seu disco. Consulte FAQ about disk PVs. |
Status anormal do nó
|
Descrição |
Severidade |
PromQL |
Limiar |
Janela |
Descrição da regra |
Solução de problemas |
|
Nó NotReady por 3 minutos |
Critical |
|
> 0 |
3 min |
Dispara quando um nó permanece no estado NotReady por 3 minutos. Configure por meio de Alert Rule Set for Node Exceptions > Node changes to the unschedulable state. Consulte Manage alerts in ACK. |
Determine se o estado NotReady é esperado (por exemplo, substituição ou manutenção do nó). Se for inesperado, verifique se os pods do aplicativo foram afetados e evacue-os se necessário. Verifique as condições do nó para causas como pressão de memória ou disco cheio. |
Uso anormal de recursos do host
As métricas de recursos do host medem os recursos da máquina física ou virtual. Uso = uso de recursos de todos os processos / capacidade máxima do host.
| Descrição | Severidade | PromQL | Limiar | Janela | Descrição da regra | Solução de problemas |
|---|---|---|---|---|---|---|
| Uso de memória do host > 85% | Warning | (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 85 |
>= 85% | — |
Dispara quando o uso de memória do host excede 85%. Configure por meio de
Alert Rule Set for Resource Exceptions
>
Node - Memory usage >= 85%
. Consulte
Manage alerts in ACK
. Limiar padrão: 85% — ajuste conforme necessário.
Nota
As regras de alerta do ACK são fornecidas pelo Cloud Monitor, com métricas consistentes com as regras do Prometheus. |
Libere recursos: verifique a alocação de recursos do pod com cost analysis e dimensione corretamente as solicitações de memória com resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
| Uso de memória do host > 90% | Critical | (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 90 |
>= 90% | — | Dispara quando o uso de memória do host excede 90%. | Libere recursos com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
| Uso de CPU do host > 85% | Warning | 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 85 |
>= 85% | 2 min |
Dispara quando o uso de CPU do host excede 85%. Configure por meio de
Alert Rule Set for Resource Exceptions
>
Node - CPU usage >= 85%
.
Nota
O ACK usa métricas do CloudMonitor ECS, equivalentes a esta regra do Prometheus. Limiar padrão: 85% — ajuste conforme necessário. Consulte Manage alerts in ACK. |
Libere recursos com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
| Uso de CPU do host > 90% | Critical | 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 90 |
>= 90% | 2 min | Dispara quando o uso de CPU do host excede 90%. | Libere recursos com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
Recursos anormais do nó
As métricas de recursos do nó medem o consumo de recursos do contêiner em relação à capacidade alocável do nó, e não à capacidade da máquina física.
Recursos consumidos (numerador) : Total de recursos de todos os contêineres no nó, incluindo memória do conjunto de trabalho (working set), cache de página, entre outros.
Recursos alocáveis (denominador) : Recursos disponíveis para contêineres após subtrair as reservas do nó. Consulte Node resource reservation policy .
O agendamento de pods é baseado em solicitações de recursos, e não no uso real.
|
Descrição |
Severidade |
PromQL |
Limiar |
Janela |
Descrição da regra |
Solução de problemas |
|
Uso de CPU do nó > 85% |
Warning |
|
>= 85% |
1 min |
Dispara quando o uso de CPU do nó excede 85% dos recursos alocáveis. Fórmula: Uso de recursos do nó / Total de recursos alocáveis no nó. |
Libere recursos com cost analysis e resource profiling para distribuir pods entre os nós. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
|
Taxa de alocação de recursos de CPU do nó > 85% |
Normal |
|
>= 85% |
— |
Dispara quando a taxa de alocação de recursos de CPU excede 85% dos recursos alocáveis. Fórmula: Total de solicitações de recursos de pods agendados / Total de recursos alocáveis no nó. |
Recursos insuficientes para agendar mais pods. Verifique se há desperdício de recursos (uso real muito abaixo das solicitações) com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
|
Taxa de overselling de CPU do nó > 300% |
Warning |
|
>= 300% |
— |
Dispara quando a taxa de overselling de CPU excede 300% dos recursos alocáveis. Fórmula: Total de limites de recursos de pods agendados / Total de recursos alocáveis no nó. O limiar de 300% é o padrão recomendado — ajuste conforme necessário. |
Os limites totais de CPU excedem em muito os recursos alocáveis. Durante picos de tráfego, a contenção e o throttling podem desacelerar as respostas. Dimensione corretamente as solicitações e limites de CPU com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
|
Uso de memória do nó > 85% |
Warning |
|
>= 85% |
— |
Dispara quando o uso de memória do nó excede 85% dos recursos alocáveis. Fórmula: Uso de recursos do nó / Total de recursos alocáveis no nó. |
Libere recursos com cost analysis e resource profiling para distribuir pods entre os nós. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
|
Taxa de alocação de recursos de memória do nó > 85% |
Normal |
|
>= 85% |
— |
Dispara quando a taxa de alocação de recursos de memória excede 85% dos recursos alocáveis. Fórmula: Total de solicitações de recursos de pods agendados / Total de recursos alocáveis no nó. |
Recursos insuficientes para agendar mais pods. Verifique se há desperdício de recursos (uso real muito abaixo das solicitações) com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
|
Taxa de overselling de memória do nó > 300% |
Warning |
|
>= 300% |
— |
Dispara quando a taxa de overselling de memória excede 300% dos recursos alocáveis. Fórmula: Total de limites de recursos de pods agendados / Total de recursos alocáveis no nó. O limiar de 300% é o padrão recomendado — ajuste conforme necessário. |
Os limites totais de memória excedem em muito os recursos alocáveis. Durante picos de tráfego, a memória pode atingir o limite do nó, causando OOM kills que interrompem as cargas de trabalho. Dimensione corretamente as solicitações e limites de memória com cost analysis e resource profiling. Escale os nós horizontalmente — consulte Scale nodes in an ACK cluster. |
Exceções de rede
|
Descrição |
Severidade |
PromQL |
Limiar |
Janela |
Descrição da regra |
Solução de problemas |
|
A contagem de solicitações do CoreDNS cai para zero |
Critical |
|
<= 0 |
1 min |
Detectável apenas em clusters gerenciados pelo ACK (edições Pro e Basic). |
Verifique se os pods do CoreDNS no cluster estão sendo executados normalmente. |
|
Exceção de panic do CoreDNS |
Critical |
|
> 0 |
3 min |
Detectável apenas em clusters gerenciados pelo ACK (edições Pro e Basic). |
Verifique se os pods do CoreDNS no cluster estão sendo executados normalmente. |
|
Certificado do Ingress controller expirando em 14 dias |
Warning |
|
< 14 dias |
— |
Requer que o componente ACK Ingress controller esteja instalado com o recurso Ingress ativado. |
Reemita o certificado do Ingress controller. |
Exceções do Auto Scaling
| Descrição | Severidade | PromQL | Limiar | Janela | Descrição da regra | Solução de problemas |
|---|---|---|---|---|---|---|
| Contagem de réplicas do HPA no máximo | Warning | max(kube_horizontalpodautoscaler_spec_max_replicas) by (namespace, horizontalpodautoscaler) - max(kube_horizontalpodautoscaler_status_current_replicas) by (namespace, horizontalpodautoscaler) <= 0 |
<= 0 de diferença | — |
Dispara quando as réplicas atuais do HPA atingem o máximo configurado.
Nota
Ative primeiro as métricas do |
Verifique se a política do HPA atende às expectativas. Se a carga de trabalho permanecer alta, aumente maxReplicas ou otimize o desempenho do aplicativo. |
Próximos passos
Consulte os dados do Prometheus no console ou na API: Query Prometheus monitoring data using PromQL.
Identifique problemas de rede em contêineres: Use KubeSkoop to locate network issues.
Problemas comuns do Alibaba Cloud Prometheus: Observability FAQ