A partir da versão 77, o SO otimizado para contentores inclui o agente Node Problem Detector. Pode usar esta funcionalidade para monitorizar o estado de funcionamento do sistema das instâncias do COS. O Node Problem Detector monitoriza o estado da instância e comunica métricas relacionadas com o estado ao Cloud Monitoring, incluindo métricas de capacidade e de erro que pode, em seguida, visualizar com os painéis de controlo do Google Cloud Observability. As métricas recolhidas a partir da configuração predefinida são gratuitas. A Google vai usar métricas agregadas para compreender os problemas dos nós e melhorar a fiabilidade do SO otimizado para contentores.
O agente está pré-configurado com o conjunto de métricas a exportar. De momento, a personalização das métricas comunicadas para o agente incorporado não é suportada. O Node Problem Detector é um software de código aberto. Pode rever o respetivo código-fonte e configurações nos respetivos repositórios de origem.
Ativar a monitorização do estado
O agente Node Problem Detector está desativado por predefinição no momento do arranque. Pode ativar esta funcionalidade através de:
Usar um script de arranque
Pode ativar o Node Problem Detector através de um script de arranque.
Usar o cloud-init
O exemplo cloud-init
explica as noções básicas da configuração de uma instância do SO otimizado para contentores. Pode usar cloud-init
para ativar a monitorização do estado com o seguinte cloud-config
exemplo:
#cloud-config
runcmd:
- systemctl start node-problem-detector
Usar metadados
No SO otimizado para contentores Milestone 88 e posterior, o Node Problem Detector também pode ser ativado definindo o valor de google-monitoring-enabled
como true
na secção de metadados personalizados.
Para ativar a monitorização ao criar uma instância:
gcloud compute instances create VM_NAME \ --image=IMAGE \ --image-project=cos-cloud \ --metadata=google-monitoring-enabled=true
Substitua o seguinte:
VM_NAME
: nome da nova VMIMAGE
: uma versão específica de uma imagem pública do SO otimizado para contentores. Por exemplo,--image=cos-113-18244-85-29
.
Para ativar a monitorização numa instância existente:
gcloud compute instances add-metadata VM_NAME \ --metadata=google-monitoring-enabled=true
Substitua VM_NAME
pelo nome da VM.
A partir do marco 97, a monitorização pode ser ativada nos metadados do projeto:
gcloud compute project-info add-metadata \
--metadata google-monitoring-enabled=true
Após a execução, o serviço node-problem-detector é ativado.
Usar políticas de convidados definidas pelo utilizador
O SO otimizado para contentores inclui o agente de configuração do SO, que usa utilitários do sistema do SO para manter o estado da VM especificado na política de convidado. Para ver detalhes sobre as políticas de convidados, consulte os artigos Ative o agente de configuração do SO e Crie uma política de convidados. A seguinte política de hóspedes ativa o agente Node problem detector em todas as instâncias.
recipes:
- name: recipe-enable-npd
desiredState: INSTALLED
installSteps:
- scriptRun:
interpreter: SHELL
script: |-
#!/bin/bash
systemctl start node-problem-detector
Ver as métricas recolhidas
O Node Problem Detector comunica uma lista de métricas em relação a um recurso monitorizado da instância do Compute Engine.
As métricas estão documentadas na
lista de métricas de monitorização, com o prefixo
compute.googleapis.com/guest/
. Pode ver as métricas recolhidas
através do
Explorador de métricas de monitorização:
Na Google Cloud consola, aceda a Monitorização ou use o seguinte botão:
No painel de navegação Monitorização, clique em Explorador de métricas.
Para o tipo de recurso, selecione Instância de VM do Compute Engine.
Selecione uma métrica, por exemplo, "Número de problemas".
Deve ver gráficos e estatísticas no lado direito. Para ver o resultado de uma instância específica do SO otimizado para contentores, defina o filtro como
"instance_id=[INSTANCE_ID]"
, substituindo [INSTANCE_ID] pelo ID da instância pretendida.
Desativar a monitorização do estado
Para desativar o serviço que já foi ativado através do cloud-config
ou através do script de arranque,
remova o passo systemctl start node-problem-detector
e, em seguida, reinicie a instância do
Container-Optimized OS. Se estiver ativada por metadados, certifique-se de que a chave google-monitoring-enabled
está definida como false
.