Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introducción

logo google cloud

Checkmk incluye un módulo completo para la monitorización de Google Cloud Platform (GCP), que consta de un conector a GCP y una impresionante colección de check plugins que recuperan y evalúan diversas métricas y estados por ti.

Además de la información general sobre los costes en que incurre tu Google Cloud y el estado actual de los servicios de Google en tu región, puedes monitorizar los siguientes productos de Google Cloud con todas las ediciones de Checkmk a partir de la versión 2.2.0:

Con Checkmk Cloud y Checkmk MSP también puedes incluir los siguientes productos en tu sistema de monitorización:

Puedes encontrar una lista completa de todos los check plugin disponibles para la monitorización de GCP en nuestro Catálogo de check plugin y describimos cómo incluir tus clústeres GKE (Google Kubernetes Engine) en Checkmk en el artículo Monitorización de Kubernetes.

2. Aplicación concreta de la monitorización de la BPC

2.1. Hosts y servicios

En Checkmk, todos los objetos a monitorizar se organizan en una estructura jerárquica de hosts y servicios. Sin embargo, el concepto de host no existe de esta forma en los servicios basados en la nube. Para preservar la simplicidad y coherencia de Checkmk, mapeamos los objetos de GCP a nuestro esquema de host/servicio. Cada uno de tus proyectos en la nube de Google se asigna a su propio host en Checkmk. Todos los productos en la nube que quieras monitorizar en este proyecto se dividirán entonces en múltiples servicios en este host dedicado.

Un proyecto pequeño en el que sólo se esté ejecutando una máquina virtual Compute Engine puede tener este aspecto en la monitorización de Checkmk:

monitoring gcp example host

2.2. Acceso a GCP

GCP proporciona una API basada en HTTP a través de la cual también se pueden recuperar datos de monitorización. Checkmk accede a esta API a través del agente especial agent_gcp. Éste ocupa el lugar del agente Checkmk, pero -a diferencia de éste- se ejecuta localmente en el servidor Checkmk.

3. Preparación del BPC para Checkmk

3.1. Adquirir un ID de proyecto

Accede a la Consola en la nube de Google. Asegúrate de que en la barra de título está seleccionado el proyecto correcto o selecciona aquí el proyecto que vas a monitorizar.

A continuación, abre el dashboard del proyecto. Aquí deberías encontrar -si el dashboard sigue correspondiendo al estándar- una tarjeta con el Project ID. Copia o anota esta información.

monitoring gcp project info

Si la tarjeta con la información del proyecto ya no aparece en tu dashboard, también puedes encontrar el ID necesario a través de Project settings:

monitoring gcp project settings

3.2. Crear un usuario

A continuación, abre la administración de usuarios en IAM & Admin. En la vista general de la parte izquierda, ahora debes seleccionar Service Accounts y luego, en la parte superior, haz clic en Create Service Account. Aquí elige un nombre para la cuenta de servicio. Te recomendamos que le des a esta cuenta un nombre que deje claro de inmediato para qué sirve, por ejemplo checkmk-monitoring. Además de un nombre descriptivo, puedes introducir opcionalmente una descripción, es decir, una descripción dela cuenta de servicio. Después de hacer clic en Create and continue, tendrás que asignar los dos roles, Visor de monitorización y Visor de activos en la nube a esta cuenta de servicio. Para ello, haz clic en el campo Select a role e introduce el nombre del rol.

Nota: Si introduces Visor de monitorización en el campo, se te mostrarán toda una serie de roles con nombres similares. Ten cuidado de seleccionar realmente Visor de monitorización.

Una vez seleccionados los roles, puedes saltarte el siguiente paso opcional y hacer clic directamente en Done.

3.3. Crear una clave

Para que puedas acceder realmente a los datos de monitorización y de activos en tu nube de Google a través de esta nueva cuenta de servicio, tendrás que crear una clave. Esta clave la guardarás más tarde en la regla correspondiente en Checkmk o en Password store.

En la vista general de Service accounts for project My Project, puedes hacer clic en los tres puntos de la fila junto a tu nueva cuenta de servicio y seleccionar Manage keys. A continuación, haz clic en Add key y luego en Create new key. Asegúrate de seleccionar JSON como formato y haz clic en Create. Este clic en Create-que se pasa por alto fácilmente- descarga un archivo en formato JSON. Guarda este archivo en un lugar seguro por el momento, ya que no podrás volver a descargarlo. No obstante, te recomendamos que borres también este archivo después de almacenar su contenido en Checkmk (consulta Crear una regla para agentes GCP). Si es necesario, crea una nueva clave y descarta por completo la antigua.

3.4. Activar las API en el proyecto GCP

En la página de vista general de tu proyecto GCP también encontrarás el elemento de menú APIs & Services. En esta vista general, comprueba si Cloud Asset API aparece en la lista de Enabled APIs & services. Si no es así, activa esta API mediante el botón Enable APIs and services. Tras la activación, pasarán unos minutos hasta que la API sea realmente accesible.

3.5. Monitorización de la información de facturación

En Google Cloud Platform, la información de facturación se almacena separada de los recursos. Por regla general, se crean proyectos separados para el análisis de costes en GCP, en los que también se recopila la información de facturación de otros proyectos. Para poder monitorizar esta información con Checkmk, es esencial que estos datos se exporten a BigQuery dentro de GCP. Sólo se puede acceder de forma remota a los datos que están disponibles en las tablas de BigQuery y, por tanto, con Checkmk. En el documento Exportar datos de facturación de la nube a BigQuery de las páginas de ayuda de GCP se explica detalladamente cómo configurar dicha exportación dentro de GCP.

Si has configurado BigQuery o ya lo estás utilizando, encontrarás una lista de sus tablas incluidas en el proyecto de contabilidad en SQL workspace. Abre la tabla del proyecto de contabilidad y haz clic en la pestaña Details. En Table ID encontrarás la información que tendrás que introducir al crear la regla en Checkmk en Costs > BigQuery table ID.

El servicio de monitorización de costes de proyectos está diseñado como una visión general. Sólo se muestran y monitorizan los costes mensuales de los proyectos individuales. Puedes definir valores umbrales para estos costes mensuales con la regla GCP Cost.

4. Configuración de la monitorización en Checkmk

4.1. Crear un host para GCP

Crea ahora un host para la monitorización de GCP en Checkmk. Puedes asignar el nombre del host que desees. Si quieres monitorizar más de un proyecto en GCP, debes crear un host distinto en Checkmk para cada proyecto.

Importante: Puesto que GCP como servicio no tiene ni dirección IP ni nombre DNS (el agente especial realiza el acceso por sí mismo), debes configurar IP address family en No IP.

monitoring gcp no ip

4.2. Configurar el agente de GCP

Como se ha mencionado al principio de este artículo, los proyectos en Google Cloud Platform son monitorizados por un agente especial. Este agente se configura con una regla, que puedes encontrar a través de Setup > Agents > VM, cloud, container > Google Cloud Platform (GCP).

En el campo correspondiente, introduce el Project ID que has buscado previamente en tu proyecto.

En JSON credentials for service account, debes introducir a continuación la clave que creaste anteriormente para tu cuenta de servicio, en la que tendrás que copiar todo el objeto JSON (incluidas las llaves).

monitoring gcp id and key

En GCP services to monitor puedes seleccionar ahora qué productos de GCP deben ser monitorizados por el agente especial. Para que las consultas a la API sean lo más económicas posible, te recomendamos que sólo selecciones los productos que se utilizan realmente en tu proyecto.

4.3. Servicios en el propio host de GCP

Inicia ahora un descubrimiento de servicios del host GCP recién creado, en el que Checkmk debería encontrar bastantes servicios. Cuando hayas añadido los servicios, tendrá este aspecto después de activar los cambios en la monitorización:

monitoring gcp services

4.4. Crear hosts para las instancias VM de Compute Engine

Los servicios que se asignan a las instancias VM de Compute Engine no se asignan al host GCP, sino a los llamados hosts piggyback. Esto funciona de tal manera que los datos recuperados del host GCP se distribuyen a estos hosts piggyback, que funcionan sin sus propios agentes de monitorización. Se asigna un host piggyback a cada instancia VM. Los nombres de estos host piggyback se componen del ID de tu proyecto, un guión bajo y el nombre completo de la instancia. Por ejemplo, si tu proyecto tiene el ID de proyecto my-project-19001216 y monitorizas una máquina virtual con el nombre my-instance01, el host piggyback se llamará my-project-19001216_my-instance01. Puedes crear estos host manualmente o -si es posible- dejar esta tarea a la administración dinámica del host.

Configuración de la administración dinámica del host

Como usuario de una de nuestras ediciones comerciales, puedes dejar la creación y eliminación de hosts para tus instancias de máquina virtual a la administración dinámica del host. El elemento de menú Setup > Hosts > Dynamic host management te lleva a la página de resumen de todas las conexiones que ya se han configurado. Haz clic en Add connection y, a continuación, asigna a la conexión un ID y un Title.

No todas las opciones disponibles en Connection properties se tratan a continuación. Consulta la ayuda en línea y el artículo principal enlazado más arriba si tienes alguna duda.

En primer lugar, asegúrate de que la caja Connection properties tiene activado el Modo mostrar más para que se muestren todas las opciones disponibles.

A continuación, en Piggyback creation options haz clic en Add new element. Personaliza la carpeta en la que se crearán los host de tus instancias de máquina virtual. Las Host attributes preseleccionadas son básicamente correctas para los host piggyback y realmente no es necesario modificarlas.

Activando la opción Delete vanished hosts, puedes asegurarte de que los hosts piggyback de los que no se reciban más datos frescos durante un periodo de tiempo especificado se eliminarán automáticamente.

Como parte de la monitorización de tus proyectos GCP, se debe activar la opción Restrict source hosts. Introduce tu host GCP desde la sección Crear un host para GCP en Checkmk aquí.

A modo de ejemplo, la configuración de una conexión de este tipo podría tener este aspecto:

Exemplary configuration of connection properties.

Creación manual de hosts para instancias VM

Alternativamente, puedes crear host para los datos piggyback manualmente. Al hacerlo, es importante que los nombres de los host se correspondan exactamente con el esquema descrito anteriormente.

Consejo: Con el script find_piggy_orphans del directorio de tesoros puedes encontrar todos los hosts piggyback para los que hay datos pero que aún no se han creado como hosts en Checkmk:

OMD[mysite]:~$ share/doc/check_mk/treasures/find_piggy_orphans
my-project-19001216_my-instance01
my-project-19001216_my-instance02

Configura los hosts para estas máquinas virtuales Compute Engine sin dirección IP (de forma análoga al host GCP) y selecciona No API integrations, no Checkmk agent como agente de monitorización. Si también seleccionas la opción Always use and expect piggyback data en Piggyback, se te avisará en consecuencia si no llegan los datos.

monitoring gcp add host for piggyback data

5. Opciones de diagnóstico

5.1. El servicio Excepciones

El servicio Exceptions te ayuda a configurar la monitorización de GCP, y también te ayuda con cualquier problema futuro que surja al comunicarte con la API de Google Cloud. Todos los mensajes de error que la API de Google Cloud devuelve al agente especial se recopilan y procesan aquí. En caso de error, este servicio se convierte en CRIT por defecto y en su Summary proporcionará una indicación de dónde está el problema.

monitoring gcp exceptions

Si haces clic en el nombre del servicio, recibirás un mensaje muy detallado, a menudo con un enlace al lugar exacto de tu proyecto GCP en el que, por ejemplo, necesita una configuración diferente. En el siguiente ejemplo, el Cloud Asset API está desactivado en el proyecto monitorizado.

monitoring gcp exceptions details

Un clic en el globo WWW te llevará entonces a la página exacta de tu proyecto donde se puede habilitar esta API.

6. Cuadros de mando

Para iniciarte cómodamente en la monitorización de GCP, Checkmk incluye a partir de Checkmk Cloud los dos dashboards integrados, GCP GCE instances y GCP storage buckets. Ambos se pueden encontrar como elementos de menú en la monitorización en Monitor > Cloud.

Para que te hagas una idea más clara, a continuación te mostramos dos ejemplos de cómo están estructurados estos dashboards. En primer lugar, el dashboard de las instancias de Compute Engine, donde puedes comparar el estado actual a la izquierda y el historial cronológico de las métricas más importantes a la derecha:

Dashboard for the GCP Compute Engine instances.

El dashboard de los buckets de almacenamiento está estructurado de forma muy similar. A la izquierda, encontrarás los datos actuales de los respectivos buckets. A la derecha, las métricas más importantes se muestran de nuevo cronológicamente:

Dashboard for the GCP storage buckets.
En esta página