![]() |
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

Checkmk incluye un amplio módulo para la monitorización de Amazon Web Services (AWS), que consiste en un conector a AWS y una completa colección de check plugins que recuperan y evalúan diversas métricas y estados para ti.
Además de la información general sobre los costes en los que incurre tu entorno de AWS y el estado actual de AWS en tu región, puedes monitorizar los siguientes productos de AWS con todas las ediciones de Checkmk:
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 AWS en nuestro Catálogo de check plugin y describimos cómo incluir tus clústeres de Amazon EKS (Amazon Elastic Kubernetes Service) en Checkmk en el artículo Monitorización de Kubernetes.
2. Aplicación concreta de la monitorización del sistema AWS
2.1. Hosts y servicios
En Checkmk, todos los objetos que hay que monitorizar se organizan en una estructura jerárquica de hosts y servicios. El concepto de host no existe en los servicios basados en la nube. Sin embargo, para mantener la simplicidad y coherencia de Checkmk, seguimos mapeando los objetos de AWS según el esquema host/servicio.
La mejor forma de lograrlo es con un ejemplo: En una región se han configurado varias instancias EC2. Una EC2 suele estar asignada a EBS. Esta constelación tiene el siguiente aspecto en Checkmk:
Hay un host que coincide con la cuenta de AWS. Este host ofrece una visión general de todas las instancias EC2 y su estado como servicio.
Las propias instancias EC2 son sus propios hosts.
En estos hosts EC2 puedes encontrar servicios con las métricas reales.
Los EBS se interpretan como un tipo de disco duro, y en consecuencia proporcionan métricas de E/S (por ejemplo, el número de bytes leídos o escritos). Para ello, en cada EBS hay servicios separados en Checkmk con el nombre
AWS/EBS Disk IO
que se asignan a la instancia EC2.
2.2. Acceso a AWS
AWS proporciona una API basada en HTTP a través de la cual también están disponibles los datos de monitorización. Checkmk accede a esta API a través del agente especial agent_aws
-que sustituye al agente Checkmk-, pero en cambio este agente se ejecuta localmente en el servidor Checkmk.
3. Preparación de AWS para Checkmk
3.1. Crear un usuario
Para habilitar la monitorización a través de Checkmk, lo mejor es conseguirlo creando un usuario especial de AWS bajo tu cuenta raíz.Accede a AWS como usuario raíz y navega en All services hasta Security, Identity, & Compliance > IAM (Gestión de Identidad y Acceso). Ve a Users y crea un nuevo usuario con Add user. Como nombre de usuario elige, por ejemplo, check-mk
. Es importante que selecciones Access key - Programmatic access para Select AWS credential type.

3.2. Permisos
El usuario que acabas de crear sólo debe utilizarse para la monitorización por parte de Checkmk y sólo necesita acceso de sólo lectura a AWS. Te recomendamos que simplemente asignes la directiva ReadOnlyAccess a este usuario. Para encontrar esta directiva, primero haz clic en Attach existing policies directly y luego escribe readonlyaccess
en la caja de búsqueda. En la lista que aparece debajo del campo de búsqueda, aún tienes que desplazarte bastante hacia abajo, porque hay bastantes directivas que contienen esta cadena.

3.3. Claves
Una vez completada la creación del usuario, se generará automáticamente una clave de acceso para ti.Importante: El secreto de la clave sólo se muestra una vez, directamente después de su creación. Por tanto, copia sin falta la clave y guárdala, por ejemplo, en el almacén de contraseñas de Checkmk. También puedes especificarla en texto plano como regla (ver más abajo). Para Checkmk necesitas el Access key ID además del secreto. El nombre del usuario (en nuestro ejemplo check-mk
) no importa aquí.

Si por alguna razón perdieras el secreto, puedes crear una nueva clave de acceso para el usuario y obtener un nuevo secreto:

3.4. Acceso a la información de facturación
Si quieres que Checkmk tenga acceso de lectura a la información de facturación (para realizar el check global de Costs and Usage ), necesitas otra directiva para tu usuario de AWS, una directiva que tú mismo debes definir primero.
En Security, Identity, & Compliance > IAM > Policies, selecciona el botón Create Policy. En Select a Service > Service > Choose a Service, selecciona el servicio Billing. En Actions, marca la casilla de verificación Read. Tenemos que establecer un permiso adicional. Añádelo mediante el botón Add additional permissions. En Select a Service > Service > Choose a Service, selecciona el servicio Cost Explorer Service. En Actions, marca de nuevo la casilla de verificación Read.

Haz clic en Review para ir al segundo paso. Establece BillingViewAccess
como Name, y guárdalo con el botón Create policy.
Ahora debes añadir esta nueva directiva al usuario. Ve de nuevo a Security, Identity, & Compliance > IAM > Policies- en la caja de búsqueda de Filter Policies busca BillingViewAccess
, selecciónalo haciendo clic en el círculo de la izquierda, y luego ve a Policy actions > Attach. Aquí encontrarás tu usuario check-mk
, selecciónalo y confírmalo con Attach policy.
4. Configuración de la monitorización en Checkmk
4.1. Crear un host para AWS
Ahora crea un host para monitorizar AWS en Checkmk. Puedes asignarle el nombre del host que desees. Importante: Dado que AWS, como servicio, no tiene dirección IP ni nombre DNS (el acceso lo concede el propio agente especial), debes configurar IP address family en No IP.

4.2. Configurar el agente de AWS
AWS no puede consultarse a través del agente Checkmk normal, así que a continuación configura el agente especial de AWS. Para ello, en Setup > Agents > VM, cloud, container > Amazon Web Services (AWS) añade una regla cuyas condiciones se apliquen sólo al host de AWS recién creado.
En el contenido real de la regla, encontrarás primero la información para el inicio de sesión. Introduce aquí el "ID de la clave de acceso" para el usuario de AWS recién creado check-mk
. Elige también aquí si necesitas un proxy para obtener los datos y qué datos globales quieres monitorizar, es decir, los que son independientes de una región. Actualmente, sólo los datos relativos a los costes:

En la imagen anterior también puedes ver la opción Use STS AssumeRole to assume a different IAM role. Si utilizas diferentes cuentas en AWS, puedes utilizar un único usuario de monitorización para monitorizar también las demás cuentas.
Pero los datos realmente interesantes se asignan a regiones. Por tanto, selecciona aquí tu(s) región(es) de AWS:

En Services by region to monitor especifica qué información quieres recuperar de estas regiones. Por defecto están activados todos los servicios de AWS y la monitorización de sus límites. En la siguiente imagen están desactivados todos menos uno para tener una mejor visión de conjunto:

Ahora puedes restringir los datos recuperados por servicio web o globalmente con Restrict monitoring services by one of these AWS tags. La restricción global se sobrescribirá, si restringes por servicio web. Además, no sólo tienes la opción de restringir por tags de AWS, sino también de especificar los nombres explícitos:

No olvides asignar el agente especial al host creado previamente introduciendo ese nombre del host en Conditions > Explicit hosts.
4.3. Servicios en el propio host de AWS
Ahora pasa al descubrimiento de servicios del host AWS recién creado en Checkmk, donde Checkmk debería encontrar ahora varios servicios. Después de añadir los servicios y tras activar cambios, en la monitorización se verá algo parecido a esto:

4.4. Crear hosts para las instancias EC2
Los servicios que se asignan a las instancias EC2 no se asignan al host AWS, sino a los llamados hosts piggyback. Esto funciona de tal manera que los datos recuperados del host AWS se distribuyen a estos hosts piggyback, que funcionan sin sus propios agentes de monitorización. Se asigna un host piggyback a cada instancia EC2.
Para el nombre de estos host piggyback, puedes elegir entre dos esquemas al configurar el agente especial. Por un lado, puedes nombrar los host según su nombre DNS IP privado o puedes elegir la denominación algo más larga pero única según la IP, la región y el ID de instancia. Esta última variante es nuestra configuración por defecto a partir de Checkmk 2.2.0. La variante sin región ni ID de instancia sigue ofreciéndose sólo por motivos de compatibilidad. Así, un host piggyback de este tipo podría llamarse 172.23.1.123-ap-northeast-2-i-0b16121900a32960c
, por ejemplo. 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áquinas virtuales 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, debe activarse la opción Restrict source hosts. Introduce aquí tu host GCP de la sección Crear un host para AWS.
A modo de ejemplo, la configuración de una conexión de este tipo podría tener el siguiente aspecto:

Creación manual de hosts para instancias EC2
Como alternativa, puedes crear manualmente hosts para los datos piggyback. Al hacerlo, es importante que los nombres de los hosts 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
172.23.1.123-ap-northeast-2-i-0b16121900a32960c
172.23.1.124-ap-northeast-2-i-0b32960a16121900c
Configura los hosts para estas instancias EC2 sin dirección IP (de forma análoga al host de AWS) 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.

4.5. Hosts para el ELB (Classic Load Balancer)
Los servicios para el ELB también se asignan a host piggyback. Los nombres corresponden a sus nombres DNS.
4.6. Monitorización de las estadísticas de tráfico de los buckets S3
Con Checkmk puedes monitorizar el tráfico de cada uno de tus buckets S3. En Checkmk sólo tienes que activar la opción Request metrics debajo de Simple Storage Service (S3).

En AWS, se requiere un poco más de trabajo. Aquí todavía tienes que configurar estas métricas de solicitud para los buckets que deseas monitorizar. AWS describe cómo funciona esto en detalle en el artículo Crear una configuración de métricas de CloudWatch para todos los objetos de tu bucket.
Durante la configuración en AWS, se te pedirá que crees un filtro. Tienes que nombrar este filtro EntireBucket
para que sea reconocido por Checkmk. Cualquier filtro con un nombre diferente será ignorado por Checkmk. Así que eres libre de definir otros filtros para este cubo sin que ello afecte a la funcionalidad en Checkmk.

También depende de ti cómo elijas el llamado (filtro) Scope en AWS. En la mayoría de los casos, sin embargo, tendrá sentido incluir en el filtro todos los objetos del bucket.
Después de configurar las métricas de solicitud, pasarán unos minutos antes de que se almacene ninguna métrica en absoluto. AWS especifica que este tiempo es de 15 minutos.
Importante: Mientras los gráficos de la consola de S3 sigan vacíos, tampoco llegará nada a Checkmk a través del agente especial. Sólo cuando se hayan registrado las métricas, Checkmk podrá crear los servicios correspondientes. Si es necesario, vuelve a realizar un descubrimiento de servicios en el host de AWS.
4.7. Límites de monitorización
Algunos servicios web de AWS tienen límites y Checkmk puede monitorizarlos. Aquí tienes algunos ejemplos:
Tan pronto como dicho plugin de check crea servicios y los comprueba posteriormente, el agente especial siempre obtendrá todos los elementos del servicio web. Sólo así Checkmk puede calcular razonablemente la carga de trabajo actual en estos límites y comprobar los umbrales. Lo mismo ocurre aunque restrinjas los datos obtenidos mediante algunas etiquetas o nombres en la configuración.
La comprobación de los límites está activada por defecto para cada servicio web monitorizado. Si quieres restringir los datos obtenidos en la regla del agente especial para limitar la cantidad de datos transferidos, también tienes que desactivar los límites.
4.8. Otros servicios
Los demás servicios web de AWS se asignan como sigue:
Servicio | Asignación | |
---|---|---|
CE |
Costes y utilización |
En el host de AWS |
EBS |
Almacenamientos en bloque |
En la instancia EC2 si pertenece a la instancia, en caso contrario en el host de AWS |
S3 |
Almacenamientos simples |
En el host de AWS |
RDS |
Bases de datos relacionales |
En el host de AWS |
5. Cuadros de mando
Para iniciarte cómodamente en la monitorización de AWS, Checkmk incluye a partir de Checkmk Cloud los dos dashboards integrados, AWS EC2 instances y AWS S3. 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 EC2, donde puedes comparar el estado actual en el lado izquierdo y el historial cronológico de las métricas más importantes en el lado derecho:

El dashboard de los buckets S3 tiene una estructura bastante similar. En la parte izquierda encontrarás la carga de memoria actual de los respectivos buckets. En la derecha, las métricas más importantes se muestran de nuevo cronológicamente.
