Monitorar implantações

Saiba como monitorar a integridade, o tempo de atividade e os upgrades das implantações do Google Distributed Cloud conectado, incluindo as cargas de trabalho compatíveis. Para mais informações sobre como configurar o monitoramento e sobre 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 do Distributed Cloud conectado.

Cargas de trabalho de contêiner

Para monitorar a integridade e o tempo de atividade das cargas de trabalho em contêineres que você implanta, recomendamos o uso da solução de métricas do Prometheus. É possível configurar o Prometheus para extrair métricas dos seus pods e serviços. Os serviços de 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 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: monitorar pods nas fases Failed ou Unknown.
  • kube_pod_container_status_waiting_reason: identificar pods presos em CrashLoopBackOff ou ImagePullBackOff.
  • container_cpu_usage_seconds_total e container_memory_working_set_bytes (do cAdvisor): monitorar o consumo de recursos para evitar problemas de memória insuficiente (OOM).

Cargas de trabalho de máquinas virtuais

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 virt-launcher subjacentes como indicadores secundários para os seguintes detalhes:

  • Uso de recursos: monitore o consumo de CPU e memória dos pods do inicializador para garantir que as VMs tenham recursos suficientes.
  • Fase do pod: rastreie as fases do pod do inicializador para identificar VMs que não são iniciadas ou 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 subjacente diretamente, porque eles são gerenciados pela plataforma. Todas as mudanças diretas serão substituídas ou levarão a erros de reconciliação.

Para solucionar problemas de VMs presas em um estado pendente, consulte Solucionar problemas de máquinas virtuais presas 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 é estritamente para visibilidade e planejamento da migração da carga de trabalho.

Para instruções detalhadas sobre como verificar se um upgrade está em andamento, monitorar o status dele e solucionar problemas de upgrades com falha, consulte Solucionar 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 trabalha 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 do Distributed Cloud conectado usando um dos seguintes métodos:

  • Prometheus com métricas de estado do Kube (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. Crie 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 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. Alertar proativamente 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 0.00 ~ 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 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 quando a utilização do disco for maior que 85%. Isso vai detectar a saturação do disco do sistema antes que ocorra um evento DiskPressure de nó rígido.

Monitorar a integridade do armazenamento da carga de trabalho

É possível monitorar a integridade do armazenamento da carga 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 do sistema de arquivos usando o Prometheus extraindo 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, é necessário usar métricas de armazenamento no nível do aplicativo ou do Symcloud.

Monitoramento de vários clusters

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

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

    • Para métricas de cluster e contêiner, como k8s_container, os identificadores principais incluem os seguintes valores:

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

      • resource_container: O Google Cloud projeto associado ao hardware.
      • location: a Google Cloud região 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 identificador 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 curingas 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 alguma máquina em qualquer cluster perder a conectividade.

Estratégia de alerta

O monitoramento e a manutenção do Distributed Cloud conectado são uma responsabilidade compartilhada. Esta seção explica o que o Google alerta e como você pode configurar suas próprias políticas de alertas.

O que o Google alerta

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

  • Falhas de hardware: falhas de fonte de alimentação, falhas de ventoinha, superaquecimento, ou falhas de 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 internos e aciona uma substituição automática quando um dispositivo de armazenamento falha.
  • Problemas de conectividade: perda completa de conexão entre a zona do Distributed Cloud conectado e Google Cloud.
  • Integridade do plano de controle: falhas no plano de controle do Kubernetes ou nos serviços de sistema gerenciados pelo Google.
  • Falhas de upgrade: processos de upgrade automatizados que ficam presos ou falham.

Configurar alertas

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

É possível configurar alertas para os seguintes problemas:

Problema Descrição sistema de monitoramento Detalhes
Tempo de inatividade da carga de trabalho Pods ou VMs que não são iniciados ou que falham 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 em kube_pod_container_status_waiting_reason quando ele é igual a CrashLoopBackOff ou ImagePullBackOff.
Cloud Monitoring Para cargas de trabalho de VM em execução em pods, configure alertas usando métricas de contêiner padrão do Kubernetes no Cloud Monitoring para rastrear o status dos pods virt-launcher.
Esgotamento de recursos da carga de trabalho Uso de disco se aproximando da capacidade ou uso alto 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 se aproximam 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 de 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 conectividade com a Internet Cloud Monitoring Monitore se a métrica de conectividade de rede edgecontainer.googleapis.com/machine/network/connectivity é false.
Reinicializações de máquinas Reinicializações ou desligamentos inesperados de máquinas Cloud Monitoring Configure alertas com as métricas edgecontainer.googleapis.com/machine/uptime e edgecontainer.googleapis.com/machine/restart_count. Para mais informações, consulte Solucionar problemas de reinicializações de máquinas.
Esgotamento do armazenamento do sistema O armazenamento do sistema fica sem espaço Cloud Monitoring Configure alertas com a métrica edgecontainer.googleapis.com/machine/disk/utilization. Para 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 com base em métricas no nível da máquina forem acionados, como conectividade de rede ou reinicializações, seus itens de ação serão limitados à verificação da energia física, da fiação e das configurações de rede local e firewall ou à escalonamento do problema para o suporte do Google.