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 módulo completo para la monitorización de Amazon Web Services (AWS), que consta de un conector a AWS y una amplia colección de check plugins que recogen y evalúan diversas métricas y estados por ti.
Además de la información general sobre los costes que genera tu entorno de AWS y el estado actual de AWS en tu región, puedes supervisar los siguientes productos de AWS con todas las ediciones de Checkmk:
Con «
» Checkmk Ultimate también puedes incluir los siguientes productos en tu sistema de monitorización:
Puedes encontrar una lista completa de todos los check plugins disponibles para la monitorización de AWS en nuestro Catálogo de check plugins, y en el artículo Supervisión de Kubernetes te explicamos cómo incluir tus clústeres de Amazon EKS (Amazon Elastic Kubernetes Service) en Checkmk.
2. Configuración de la monitorización mediante la Configuración Rápida (opcional)
La forma más rápida de configurar una monitorización fácil de leer para entornos de AWS es con nuestra Configuración Rápida. Para ello, abre Setup > Quick Setup > Amazon Web Services (AWS) y haz clic en «Add configuration». La Configuración Rápida te guiará paso a paso hasta alcanzar tu objetivo.
Encontrarás instrucciones detalladas sobre cómo realizar los preparativos necesarios en tu entorno AWS en el capítulo Preparando AWS para Checkmk.
La mayor ventaja de la Configuración Rápida es, sin duda, que cualquier error se mostrará inmediatamente durante el proceso de configuración. En el peor de los casos, recibirás una indicación clara y específica de lo que debes corregir antes de poder pasar al siguiente paso.
Si más adelante quieres o necesitas realizar cambios en la configuración creada por la Configuración Rápida, puedes volver a Setup > Quick Setup.
Allí, haz clic en el icono «
» y, a continuación, selecciona el componente que deseas editar.
Los demás capítulos de este artículo solo sirven como referencia para los usuarios de la Configuración Rápida. Sin embargo, si tu entorno de AWS es bastante complejo, te recomendamos que sigas realizando la configuración siguiendo los pasos que se indican a continuación. |
3. Implementación práctica de la monitorización de AWS
3.1. Hosts y servicios
En Checkmk, todos los objetos que se van a 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 la coherencia de Checkmk, seguimos realizando el mapeo de los objetos de AWS según el esquema de host/servicio.
La mejor forma de ilustrar cómo se consigue esto es con un ejemplo: en una región se han configurado varias instancias EC2. Normalmente, a un EC2 se le asigna un EBS. Esta configuración se ve así en Checkmk:
Hay un host que tiene una coincidencia con la cuenta de AWS. Este host ofrece una vista 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 independientes en Checkmk con el nombre
AWS/EBS Disk IOque están asignados a la instancia EC2.
3.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, a diferencia de este, dicho agente se ejecuta localmente en el servidor Checkmk.
4. Preparar AWS para Checkmk
4.1. Crear un usuario
Para habilitar la monitorización a través de Checkmk, lo mejor es crear un usuario especial de AWS bajo tu cuenta de root.
Inicia sesión en AWS como usuario root y ve en All services a Security, Identity, & Compliance > IAM (Gestión de identidades y accesos).
Ve a Users y crea un nuevo usuario con Add user.
Como nombre de usuario, elige, por ejemplo, check-mk.
Es importante que selecciones el Access key - Programmatic access para Select AWS credential type.

4.2. Permisos
El usuario que acabas de crear solo debe utilizarse para la monitorización por parte de Checkmk y solo necesita acceso de solo lectura a AWS.
Te recomendamos que simplemente le asignes la directiva «ReadOnlyAccess» a este usuario.
Para encontrar esta directiva, primero haz clic en «Attach existing policies directly» y, a continuación, escribe «readonlyaccess» en el cuadro de búsqueda.
En la lista que aparece debajo del campo de búsqueda, tendrás que desplazarte bastante hacia abajo, ya que hay bastantes directivas que contienen esta cadena.

4.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 solo se muestra una vez, justo después de su creación.
Por lo tanto, copia la clave sin falta y guárdala, por ejemplo, en el almacén de contraseñas de Checkmk.
También puedes especificarla en texto sin formato como una 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:

4.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 la comprobación 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 checkbox «Read». Tenemos que establecer un permiso adicional. Añade uno mediante el botón «Add additional permissions». En «Select a Service > Service > Choose a Service», selecciona el servicio «Cost Explorer Service». En «Actions», vuelve a marcar la checkbox «Read».

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

5.2. Configuración del agente de AWS
AWS no se puede consultar a través del agente Checkmk habitual, 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 únicamente al host de AWS que acabas de crear.
En el contenido de la regla, lo primero que encontrarás es la información de inicio de sesión.
Aquí introduce el «Access key ID» del usuario de AWS recién creado check-mk.
Elige también aquí si necesitas un proxy para recuperar los datos y qué datos globales quieres realizar la monitorización,
es decir, aquellos que son independientes de una región.
Actualmente, solo son los datos relacionados con los costes:

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

En «Services by region to monitor» (Seleccionar datos de monitorización), especifica qué información quieres recuperar de estas regiones. Por defecto, todos los servicios de AWS y la monitorización de sus límites están activados. En la siguiente imagen, todos menos uno están desactivados para obtener una mejor vista general:

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

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

5.4. Creación de hosts para las instancias EC2
Los servicios asignados a las instancias EC2 no se asignan al host de AWS, sino a los llamados hosts piggybacked. Esto funciona de tal manera que los datos recuperados del host de AWS se distribuyen a estos hosts piggybacked, que operan sin sus propios agentes de monitorización. Se asigna un host piggyback a cada instancia EC2.
Para nombrar estos hosts piggyback, puedes elegir entre dos esquemas al configurar el agente especial.
Por un lado, puedes nombrar los hosts según su nombre DNS de IP privada o puedes elegir el nombre algo más largo pero único según la IP, la región y el ID de la instancia.
Esta última variante es nuestra configuración predeterminada a partir de Checkmk 2.2.0.
La variante sin región ni ID de instancia solo se ofrece por motivos de compatibilidad.
Así, un host piggyback de este tipo podría llamarse, por ejemplo, 172.23.1.123-ap-northeast-2-i-0b16121900a32960c.
Crea estos hosts manualmente o, si es posible, deja 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 VM en manos de la administración dinámica del host.
El elemento de menú «Setup > Hosts > Dynamic host management» te lleva a la página de Vista general 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 la ventana «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 hosts de tus instancias de VM. La opción preseleccionada «Host attributes» es básicamente correcta para los hosts piggyback y no es necesario modificarla.
Al activar la opción «Delete vanished hosts», te aseguras de que los hosts piggyback de los que no se reciban datos nuevos durante un periodo de tiempo determinado se eliminen automáticamente.
Como parte de la monitorización de tus proyectos de GCP, debes activar la opción «Restrict source hosts». Introduce tu host de GCP desde la sección «Crear un host para AWS» aquí.
A modo de ejemplo, la configuración de dicha conexión podría tener este aspecto:

Creación manual de hosts para instancias EC2
Como alternativa, puedes crear hosts para los datos piggyback manualmente. Al hacerlo, es importante que los nombres de los hosts se correspondan exactamente con el esquema descrito anteriormente.
Con el comando |
Configura los hosts para estas instancias EC2 sin una dirección IP (análogo al host de AWS) y selecciona No API integrations, no Checkmk agent como agente de monitorización. Si además seleccionas la opción «Always use and expect piggyback data» en «Piggyback», recibirás una advertencia correspondiente si los datos no llegan.

5.5. Hosts para el ELB (Classic Load Balancer)
Los servicios para el ELB también se asignan a hosts piggyback. Los nombres se corresponden con sus nombres DNS.
5.6. Monitorización de las estadísticas de tráfico de los buckets de S3
Con Checkmk puedes realizar la monitorización del tráfico de cada uno de tus buckets de S3. En Checkmk solo tienes que activar la opción «Request metrics» (Monitorización del tráfico de los buckets de S3) en «Simple Storage Service (S3)».

En AWS, se requiere un poco más de trabajo.
Aquí aún tienes que configurar estas métricas de solicitud para los buckets que quieras realizar la monitorización de ellos.
AWS describe cómo funciona esto en detalle en el artículo «Creación de 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.
Debes llamar a este filtro «EntireBucket» para que Checkmk lo reconozca.
Checkmk ignorará cualquier filtro con un nombre diferente.
Así que puedes definir otros filtros para este bucket sin que afecte al funcionamiento de Checkmk.

La forma de elegir el denominado filtro «Scope» en AWS también depende de ti. Sin embargo, en la mayoría de los casos, tendrá sentido incluir todos los objetos del bucket en el filtro.
Tras configurar las métricas de solicitud, pasarán unos minutos antes de que se almacene ninguna métrica. AWS especifica este tiempo en 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. Solo cuando se hayan registrado métricas, Checkmk podrá crear los servicios correspondientes. Si es necesario, vuelve a realizar un descubrimiento de servicios en el host de AWS.
5.7. Límites de monitorización
Algunos servicios web de AWS tienen límites y Checkmk puede realizar la monitorización. Aquí tienes algunos ejemplos:
En cuanto un check plugin de este tipo crea servicios y los comprueba más tarde, el agente especial siempre recuperará todos los elementos del servicio web. Solo así Checkmk puede calcular de forma razonable la carga de trabajo actual en estos límites y comprobar los umbrales. Esto también ocurre aunque restrinjas los datos recuperados mediante algunas etiquetas o nombres en la configuración.
La comprobación de los límites está activada por defecto para cada servicio web supervisado. Si quieres restringir los datos recuperados en la regla del agente especial para limitar la cantidad de datos transferidos, también debes desactivar los límites.
5.8. Otros servicios
Los demás servicios web de AWS se asignan de la siguiente manera:
| Servicio | Asignación | |
|---|---|---|
CE |
Costes y carga |
En el host de AWS |
EBS |
Almacenamiento en bloques |
Se adjunta a la instancia EC2 si pertenece a la instancia; de lo contrario, al host de AWS |
S3 |
Almacenamiento simple |
En el host de AWS |
RDS |
Bases de datos relacionales |
En el host de AWS |
6. Dashboards
Para facilitarte el inicio en la monitorización de AWS, Checkmk incluye en Checkmk Ultimate
dos dashboards integrados: AWS EC2 instances y AWS S3.
Ambos se encuentran como elementos de menú en la sección de 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 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 de S3 tiene una estructura bastante similar. En el lado izquierdo encontrarás la carga actual de memoria de los respectivos buckets. A la derecha, las métricas más importantes se muestran de nuevo en orden cronológico.

