Como monitorar a integridade do sistema com o detector de problemas do nó

A partir do marco 77, o Container-Optimized OS inclui o agente Detector de problemas de nós. Você pode usar esse recurso para monitorar a integridade do sistema de instâncias do COS. O Node Problem Detector monitora a integridade da instância e informa métricas relacionadas à saúde para o Cloud Monitoring, incluindo métricas de capacidade e erro que podem ser visualizadas com painéis do Google Cloud Observability. As métricas coletadas da configuração padrão são gratuitas. O Google usará métricas agregadas para entender problemas de nós e melhorar a confiabilidade do Container-Optimized OS.

O agente é pré-configurado com o conjunto de métricas a serem exportadas. No momento, não há suporte para a personalização de métricas informadas para o agente integrado. O Detector de problemas de nós é um software de código aberto. Você pode analisar código-fonte e configurações nos respectivos repositórios de origem.

Como ativar o monitoramento de integridade

O agente do detector de problemas de nós fica desativado por padrão no momento da inicialização. Para ativar esse recurso, use:

Como usar um script de inicialização

Ative o Detector de problemas de nós usando um script de inicialização.

Como usar o cloud-init

O exemplo cloud-init explica os conceitos básicos de configuração de uma instância do Container-Optimized OS. Use o cloud-init para ativar o monitoramento de integridade com o seguinte exemplo cloud-config:

#cloud-config

runcmd:
- systemctl start node-problem-detector

Uso de metadados

No Container-Optimized OS Marco 88 e posterior, também é possível ativar o detector de problemas de nós definindo o valor de google-monitoring-enabled como true na seção de metadados personalizados.

Para ativar o monitoramento ao criar uma instância:

gcloud compute instances create VM_NAME \
    --image=IMAGE \
    --image-project=cos-cloud \
    --metadata=google-monitoring-enabled=true

Substitua:

  • VM_NAME: nome da nova VM
  • IMAGE: uma versão específica de uma imagem pública do Container-Optimized OS. Por exemplo, --image=cos-113-18244-85-29.

Para ativar o monitoramento em uma instância atual:

gcloud compute instances add-metadata VM_NAME \
    --metadata=google-monitoring-enabled=true

Substitua VM_NAME pelo nome da VM.

A partir do marco 97, o monitoramento pode ser ativado nos metadados do projeto:

gcloud compute project-info add-metadata \
    --metadata google-monitoring-enabled=true

Após a execução, o serviço de detecção de problemas de nós será ativado.

Como usar políticas de convidado definidas pelo usuário

O SO otimizado para contêiner inclui o agente de configuração do SO, que usa utilitários do sistema para manter o estado da VM especificada na política de convidado. Para detalhes sobre políticas de convidado, consulte Ativar agente de configuração do SO e Criar uma política de convidado. A política de convidado a seguir ativa o agente do detector de problemas do nó em todas as instâncias.

recipes:
- name: recipe-enable-npd
  desiredState: INSTALLED
  installSteps:
  - scriptRun:
      interpreter: SHELL
      script: |-
        #!/bin/bash
        systemctl start node-problem-detector

Como visualizar as métricas coletadas

O Detector de problemas de nós relata uma lista de métricas em relação a um recurso monitorado de instância do Compute Engine. As métricas são documentadas na lista de métricas do Monitoring, com o prefixo compute.googleapis.com/guest/. É possível visualizar as métricas coletadas usando o Monitoring Metrics Explorer:

  1. No Console do Google Cloud, acesse Monitoring ou use o seguinte botão:

    Acessar Monitoring

  2. No painel de navegação do Monitoring, clique em Metrics Explorer.

  3. Para o tipo de recurso, selecione Instância de VM do Compute Engine.

  4. Selecione uma métrica, por exemplo, "Contagem de problemas".

  5. Você verá gráficos e estatísticas no lado direito. Para ver o resultado de uma instância específica do Container-Optimized OS, defina o filtro como "instance_id=[INSTANCE_ID]", substituindo [INSTANCE_ID] pelo ID da instância que você quer ver.

Como desativar o monitoramento de integridade

Para desativar o serviço que já foi ativado pelo cloud-config ou pelo script de inicialização, remova a etapa systemctl start node-problem-detector. e reinicie a instância do Container-Optimized OS. Se ativado por metadados, verifique se a chave google-monitoring-enabled está definida como false.