Monitorar implantações

Saiba como monitorar a integridade, o tempo de atividade e os upgrades das suas implantações do Google Distributed Cloud conectado, incluindo cargas de trabalho compatíveis. Para mais informações sobre como configurar o monitoramento e as métricas disponíveis, consulte Registros e métricas.

Monitorar a integridade e o tempo de atividade da carga de trabalho

Você é responsável por monitorar a integridade e o tempo de atividade das cargas de trabalho (contêineres e máquinas virtuais) em execução na implantação conectada do Distributed Cloud.

Cargas de trabalho de contêiner

Para monitorar a integridade e o tempo de atividade das cargas de trabalho conteinerizadas que você implanta, recomendamos usar a solução de métricas do Prometheus. É possível configurar o Prometheus para coletar métricas dos pods e serviços. Os serviços do sistema gerenciados pelo Google são monitorados e gerenciados automaticamente pelo Google. Para mais informações sobre como configurar o Prometheus, consulte Coletar métricas com o Prometheus.

Use as seguintes métricas principais para monitorar as cargas de trabalho de contêiner. Se você usa o Prometheus, é responsável por implantar e gerenciar o Kube State Metrics para expor essas métricas específicas para suas cargas de trabalho:

  • kube_pod_status_phase: monitora pods nas fases Failed ou Unknown.
  • kube_pod_container_status_waiting_reason: identifique pods travados em CrashLoopBackOff ou ImagePullBackOff.
  • container_cpu_usage_seconds_total e container_memory_working_set_bytes (do cAdvisor): monitoram o consumo de recursos para evitar problemas de falta de memória (OOM).

Cargas de trabalho de máquina virtual

No Distributed Cloud conectado, as máquinas virtuais (VMs) são executadas em pods padrão do Kubernetes, normalmente prefixados com virt-launcher-. Monitore a integridade e o status da VM principalmente verificando o status do recurso personalizado VirtualMachine ou monitorando as métricas do aplicativo na VM.

Use as métricas de pod do virt-launcher como indicadores secundários para os seguintes detalhes:

  • Uso de recursos: monitore o consumo de CPU e memória dos pods de inicialização para garantir que as VMs tenham recursos suficientes.
  • Fase do pod: acompanhe as fases do pod de inicialização para identificar VMs que não são iniciadas ou que falham.

Para ajustar os recursos atribuídos a uma VM, modifique a especificação do recurso personalizado da VM. Não modifique os YAMLs do pod virt-launcher subjacentes diretamente, porque eles são gerenciados pela plataforma. Todas as mudanças diretas serão substituídas ou vão causar erros de reconciliação.

Para resolver problemas de VMs travadas em um estado pendente, consulte Resolver problemas de máquinas virtuais travadas no estado pendente.

Monitorar upgrades do Distributed Cloud conectado

Monitore o progresso e o status dos upgrades de software do Distributed Cloud conectado usando as métricas do Cloud Monitoring e os comandos gcloud. Os upgrades são programados e executados pelo Google. O monitoramento serve apenas para visibilidade e planejamento da migração de cargas de trabalho.

Para instruções detalhadas sobre como verificar se um upgrade está em andamento, monitorar o status dele e resolver problemas de upgrades com falha, consulte Resolver problemas de upgrades de software.

Monitorar a integridade do armazenamento local

O Distributed Cloud conectado monitora continuamente a integridade dos dispositivos de armazenamento e alerta o Google quando uma unidade física precisa ser substituída. O Google vai trabalhar com você para agendar uma visita e substituir a unidade com falha. É possível monitorar a integridade do armazenamento usando alertas de condição do Kubernetes, como DiskPressure.

Monitorar a integridade do armazenamento do sistema

É possível monitorar a integridade do armazenamento do sistema conectado do Distributed Cloud usando um dos seguintes métodos:

  • Prometheus com Kube State Metrics (PromQL). Implante e gerencie o Kube State Metrics no cluster para expor as métricas de condição do Kubernetes.

  • Métricas do Cloud Monitoring. Criar políticas de alertas com base em métricas no nível do host exportadas para o Cloud Monitoring.

Monitorar a integridade do armazenamento do sistema com o Prometheus

Para monitorar a integridade do armazenamento do sistema com o Prometheus com o Kube State Metrics (PromQL), configure os seguintes alertas:

  1. Alertar imediatamente quando uma condição de nó entrar no estado DiskPressure:

    kube_node_status_condition{condition="DiskPressure",status="true"} == 1
    
  2. Receba alertas proativos antes que os limites de remoção sejam violados, verificando quando a utilização do disco excede um limite operacional:

    (1 - (node_filesystem_avail_bytes{mountpoint="/mnt/shared_lpvs"} / node_filesystem_size_bytes{mountpoint="/mnt/shared_lpvs"})) > THRESHOLD
    

    Substitua THRESHOLD pelo limite operacional de destino no intervalo de 0.00 a 1.00. O Google recomenda definir esse valor como 0.85.

Monitorar a integridade do armazenamento do sistema com o Cloud Monitoring

Para monitorar a integridade do armazenamento do sistema com as métricas do Cloud Monitoring, crie uma política de alertas com os seguintes parâmetros:

  • Métrica:edgecontainer.googleapis.com/machine/disk/utilization
  • Escopo:essa métrica informa especificamente a utilização do disco do sistema de arquivos da partição do sistema local do nó (/dev/mapper/shared_lpvs_encrypted).
  • Limite:configure um limite de alerta para quando o uso do disco for maior que 85%. Isso vai detectar a saturação do disco do sistema antes que ocorra um evento de nó DiskPressure.

Monitorar a integridade do armazenamento de cargas de trabalho

É possível monitorar a integridade do armazenamento de cargas de trabalho usando métricas de volume do Kubelet ou diretamente usando a telemetria no nível do aplicativo, dependendo do modo de volume usado pela carga de trabalho.

  • Modo de volume Filesystem. É possível monitorar volumes de sistemas de arquivos usando o Prometheus coletando as seguintes métricas de volume do Kubelet:

    • kubelet_volume_stats_capacity_bytes
    • kubelet_volume_stats_available_bytes
    • kubelet_volume_stats_used_bytes
    • kubelet_volume_stats_inodes_used
    • kubelet_volume_stats_inodes_free
  • Modo de volume Block. Os volumes de blocos brutos são invisíveis para o Kubelet. Para monitorar a integridade deles, use métricas no nível do aplicativo ou do Symcloud Storage.

Monitoramento de vários clusters

Se você gerencia muitos clusters conectados do Distributed Cloud, recomendamos usar o Cloud Monitoring para agregar e filtrar métricas.

  • Usar rótulos de recursos: as métricas exportadas para o Cloud Monitoring incluem rótulos que identificam a origem. Os rótulos disponíveis dependem do tipo de recurso:

    • Para métricas de cluster e contêiner, como k8s_container, os rótulos de chave incluem os seguintes valores:

      • project_id: o projeto do Google Cloud que hospeda o cluster.
      • location: a região do Google Cloud em que o cluster está registrado.
      • cluster_name: o nome do cluster.
    • Para métricas de hardware, como edgecontainer.googleapis.com/machine, os rótulos de chave incluem os seguintes valores:

      • resource_container: o projeto do Google Cloud associado ao hardware.
      • location: a região do Google Cloud em que a zona do Distributed Cloud conectado está registrada.
      • machine_id: o identificador da máquina.

      As métricas de hardware não incluem um rótulo cluster_name diretamente.

  • Criar painéis personalizados: crie painéis que mostrem os principais indicadores de integridade em toda a frota. Os principais indicadores de integridade incluem conectividade, status da VM e uso de recursos. Para mostrar dados de vários clusters em um único gráfico, use caracteres curinga ou operações de agrupamento.

  • Configurar alertas de vários clusters: configure políticas de alertas que se aplicam a vários clusters. Por exemplo, é possível criar um alerta que é acionado se qualquer máquina em qualquer cluster perder a conectividade.

Estratégia de alertas

O monitoramento e a manutenção do Distributed Cloud conectado são uma responsabilidade compartilhada. Nesta seção, explicamos o que os Alertas do Google monitoram e como você pode configurar suas próprias políticas de alertas.

O que os Alertas do Google alertam

O Google monitora continuamente a infraestrutura relacionada. Ele toma medidas e notifica você, se necessário, nas seguintes situações:

  • Falhas de hardware: falhas na fonte de alimentação, falhas no ventilador, superaquecimento ou falhas no disco, como um disco que atinge o limite de reserva ou o fim da vida útil. O Google monitora continuamente a integridade dos dispositivos de armazenamento interno e aciona uma substituição automática quando um dispositivo de armazenamento falha.
  • Problemas de conectividade: perda total de conexão entre a zona conectada do Distributed Cloud e o Google Cloud.
  • Integridade do plano de controle: falhas no plano de controle do Kubernetes ou nos serviços do sistema gerenciados pelo Google.
  • Falhas de upgrade: processos de upgrade automatizados que travam ou falham.

Configurar alertas

Configure suas próprias políticas de alertas no Cloud Monitoring ou no Prometheus para problemas que afetam as cargas de trabalho ou o ambiente local.

É possível configurar alertas para os seguintes problemas:

Problema Descrição sistema de monitoramento Detalhes
Inatividade da carga de trabalho Falha na inicialização ou no loop de falha de pods ou VMs Prometheus Para cargas de trabalho de contêiner, crie alertas em kube_pod_status_phase para detectar pods nas fases Failed ou Unknown. Também é possível alertar sobre kube_pod_container_status_waiting_reason quando ele for igual a CrashLoopBackOff ou ImagePullBackOff.
Cloud Monitoring Para cargas de trabalho de VM em execução em pods, configure alertas usando métricas padrão de contêiner do Kubernetes no Cloud Monitoring para acompanhar o status dos pods virt-launcher.
Esgotamento de recursos da carga de trabalho Uso do disco se aproximando da capacidade ou alto uso de memória ou CPU em cargas de trabalho Prometheus Para cargas de trabalho de contêiner, defina alertas de limite em container_cpu_usage_seconds_total e container_memory_working_set_bytes (do cAdvisor) para identificar pods que estão se aproximando dos limites de recursos.
Cloud Monitoring Para o armazenamento da máquina, monitore a métrica de utilização do disco da máquina edgecontainer.googleapis.com/machine/disk/utilization para detectar quando o armazenamento do nó está se aproximando da capacidade.
Problemas na rede local Quedas de interface de rede em máquinas Cloud Monitoring Monitore se a métrica de rede da máquina edgecontainer.googleapis.com/machine/network/up é false.
Perda de conexão de internet Cloud Monitoring Monitore se a métrica de conectividade de rede edgecontainer.googleapis.com/machine/network/connectivity é false.
Reinicializações de máquina Reinicializações ou desligamentos inesperados da máquina Cloud Monitoring Configure alertas com as métricas edgecontainer.googleapis.com/machine/uptime e edg/1.13.0/docs/ogleapis.com/machine/restart_count. Para mais informações, consulte Resolver problemas de reinicialização de máquinas.
Esgotamento do armazenamento do sistema O armazenamento do sistema fica sem espaço Cloud Monitoring Configure alertas com o edgecontainer.googleapis.com/machine/disk/utilization/1.13.0/docs/mais informações, consulte Monitorar a integridade do armazenamento do sistema.

O hardware do Distributed Cloud conectado é gerenciado pelo Google. Você não tem acesso SSH às máquinas nem controle sobre o sistema operacional do host. Se os alertas baseados em métricas no nível da máquina forem acionados, como conectividade de rede ou reinicializações, as ações necessárias serão limitadas a verificar a energia física, o cabo de alimentação e as configurações de rede local e firewall ou encaminhar o problema ao Suporte do Google.