A partir de la versión 77, Container-Optimized OS incluye el agente Node Problem Detector. Puede usar esta función para monitorizar el estado del sistema de las instancias de COS. Node Problem Detector monitoriza el estado de la instancia y envía métricas relacionadas con el estado a Cloud Monitoring, incluidas las métricas de capacidad y de errores, que puedes visualizar con los paneles de control de Google Cloud Observability. Las métricas recogidas de la configuración predeterminada son gratuitas. Google usará métricas agregadas para comprender los problemas de los nodos y mejorar la fiabilidad de Container-Optimized OS.
El agente está preconfigurado con el conjunto de métricas que se van a exportar. Por el momento, no se pueden personalizar las métricas registradas del agente integrado. Node Problem Detector es un software de código abierto. Puedes consultar su código fuente y sus configuraciones en sus respectivos repositorios de origen.
Habilitar la monitorización del estado
El agente Node Problem Detector está inhabilitado de forma predeterminada en el momento del arranque. Puedes habilitar esta función de las siguientes formas:
Usar una secuencia de comandos de inicio
Puedes habilitar Node Problem Detector mediante una secuencia de comandos de inicio.
Usar cloud-init
En el cloud-init
ejemplo
se explica cómo configurar una instancia de Container-Optimized OS. Puedes usar cloud-init
para habilitar la monitorización de salud con el siguiente cloud-config
ejemplo:
#cloud-config
runcmd:
- systemctl start node-problem-detector
Usar metadatos
En Container-Optimized OS Milestone 88 y versiones posteriores, también se puede habilitar Node Problem Detector asignando el valor true
a google-monitoring-enabled
en la sección de metadatos personalizados.
Para habilitar la monitorización al crear una instancia, sigue estos pasos:
gcloud compute instances create VM_NAME \ --image=IMAGE \ --image-project=cos-cloud \ --metadata=google-monitoring-enabled=true
Haz los cambios siguientes:
VM_NAME
: nombre de la nueva VMIMAGE
: una versión específica de una imagen pública de Container-Optimized OS. Por ejemplo,--image=cos-113-18244-85-29
.
Para habilitar la monitorización en una instancia:
gcloud compute instances add-metadata VM_NAME \ --metadata=google-monitoring-enabled=true
Sustituye VM_NAME
por el nombre de la VM.
A partir de la versión 97, se puede habilitar la monitorización en los metadatos del proyecto:
gcloud compute project-info add-metadata \
--metadata google-monitoring-enabled=true
Una vez ejecutado, se habilitará el servicio node-problem-detector.
Usar políticas de invitado definidas por el usuario
Container-Optimized OS incluye el agente de configuración del SO, que usa las utilidades del sistema operativo para mantener el estado de la VM especificado en la política de invitado. Para obtener más información sobre las políticas de invitado, consulta los artículos Habilitar el agente de configuración del SO y Crear una política de invitado. La siguiente política de invitado habilita el agente Node Problem Detector en todas las instancias.
recipes:
- name: recipe-enable-npd
desiredState: INSTALLED
installSteps:
- scriptRun:
interpreter: SHELL
script: |-
#!/bin/bash
systemctl start node-problem-detector
Ver las métricas recogidas
Node Problem Detector informa de una lista de métricas en relación con un recurso monitorizado de instancia de Compute Engine.
Las métricas se documentan en la lista de métricas de monitorización, que tienen el prefijo compute.googleapis.com/guest/
. Puedes ver las métricas recogidas con el explorador de métricas de Monitoring:
En la Google Cloud consola, ve a Monitoring o haz clic en el siguiente botón:
En el panel de navegación de Monitoring, haz clic en Explorador de métricas.
En Tipo de recurso, selecciona Instancia de VM de Compute Engine.
Seleccione una métrica, como "Número de problemas".
Deberías ver gráficos y estadísticas en la parte derecha. Para ver el resultado de una instancia específica de Container-Optimized OS, defina el filtro en
"instance_id=[INSTANCE_ID]"
y sustituya [INSTANCE_ID] por el ID de la instancia que quiera.
Inhabilitar la monitorización del estado
Para inhabilitar el servicio que ya se ha habilitado a través de tu cloud-config
o de tu script de inicio,
elimina el paso systemctl start node-problem-detector
y, a continuación, reinicia la instancia de Container-Optimized OS. Si se ha habilitado mediante metadatos, asegúrate de que la clave google-monitoring-enabled
esté definida como false
.