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. 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 conjunto de operações do Google Cloud. 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 o código-fonte e as configurações nos respectivos repositórios de origem.

Como ativar o monitoramento de integridade

Por padrão, o agente do Detector de problemas de nós está desativado 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 marco do Container-Optimized OS 88 e posterior, o Detector de problemas de nós também pode ser ativado ao definir 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 instance-name \
    --image-family cos-stable \
    --image-project cos-cloud \
    --metadata=google-monitoring-enabled=true

Para ativar o monitoramento em uma instância atual:

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

Após a execução, o serviço nó-detect-detector 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 clique no 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 por meio do cloud-config ou do script de inicialização, remova a etapa systemctl start node-problem-detector. Em seguida, reinicialize a instância do Container-Optimized OS. Se ativada por metadata, verifique se a chave google-monitoring-enabled está definida como false.