El monitoreo de la infraestructura de TI es complejo, pero una herramienta como Checkmk lo hace más fácil.

Muchas organizaciones han agregado tecnologías nativas de la nube a su pila tecnológica para mejorar el rendimiento de sus productos. Al mismo tiempo, a menudo continúan ejecutando sus propias redes e infraestructura local. Este cambio a infraestructuras híbridas debe abordarse en el monitoreo debido a la gran cantidad de métricas que se generan cada segundo para varios componentes, como el sistema operativo, el almacenamiento, el servidor, los entornos de nube, etc. Todos son importantes para garantizar que las aplicaciones funcionen al máximo. rendimiento.

Estas métricas son una señal esencial para equipos de desarrollo y operaciones para entender la salud de su infraestructura. Es por eso que las organizaciones necesitan una solución de monitoreo que les ayude a identificar rápidamente los problemas en producción con métricas, visualizaciones y análisis. Checkmk es una de las herramientas de monitoreo de infraestructura más populares y útiles. En este artículo te contaré por qué Checkmk merece su buena reputación y cómo puedes dar los primeros pasos con él.

What is Checkmk?

Checkmk comprueba constantemente el funcionamiento de cualquier aspecto de los entornos de TI modernos y es especialmente adecuado para infraestructuras híbridas. Por un lado, Checkmk es flexible y admite contenedores, activos en la nube y sistemas locales, como conmutadores y servidores. Por otro lado, es realmente fácil comenzar y administrar su monitoreo, porque Checkmk viene con alertas automáticas basadas en mucha experiencia en TI y otras funciones inteligentes que le ahorrarán mucho tiempo.

Si desea usar Checkmk de forma gratuita, tiene dos opciones: primero, puede optar por Checkmk Raw Edition, que es completamente de código abierto y de uso gratuito sin ninguna limitación. En segundo lugar, está el Edición de prueba de Checkmk Enterprise que tiene todas las características adicionales de Checkmk Enterprise Editions, pero después de 30 días, la cantidad de hosts se limitará a 25.

¿Cómo soluciona Checkmk el problema?

Checkmk puede monitorear aplicaciones, servidores, bases de datos, redes, contenedores, almacenamiento y demás. Proporciona una lista masiva de más de 2,000 complementos de monitoreo. Con estos complementos. Checkmk se puede ampliar para monitorear tecnologías específicas de diferentes proveedores disponibles en el mercado. Algunos complementos populares de Checkmk son para Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Con sus más de 2,000 complementos, Checkmk se destaca como una solución de monitoreo de infraestructura muy prometedora disponible actualmente.

Además, para cualquier solución de monitoreo, es crucial cuán rápido y correctamente pueden leer las métricas y configurar alertas y notificaciones inteligentes. La solución de Checkmk cumple todos estos criterios. Con su función de detección automática, Checkmk puede identificar más del 90 % de los servicios y dispositivos. Ahora, la mayoría de las empresas requieren escalabilidad y automatización. Puede escalar la capacidad de monitoreo de cien hosts a miles de hosts con facilidad en Checkmk y aprovechar sus agentes disponibles para la automatización.

Install Checkmk in a Docker container

En este artículo, voy a instalar Checkmk Raw Edition en un contenedor Docker en un servidor Linux que se ejecuta en Ubuntu 20.04. Desde Dockerhub, puede descargar el Contenedor Checkmk Docker. Tiene casi 5 millones de extracciones hasta el momento, lo que indica cuán popular y ampliamente utilizado es Checkmk.

checkmk dockerhub

Tome la imagen de Docker con la última versión de Checkmk y ejecútela dentro de un contenedor usando el comando docker container run.

docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest

El nombre del contenedor será 'supervisión', el servidor web escuchará el puerto 5000 y se abrirá en el puerto 8080 del nodo. El contenedor utilizará el sistema de archivos temporales y la zona horaria local.

[email protected]:~$ sudo docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v/omd/sites --name monitoring -v/etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
Unable to find image 'checkmk/check-mk-raw:2.0.0-latest' locally
2.0.0-latest: Pulling from checkmk/check-mk-raw
33847f680f63: Pull complete
474905f2790b: Pull complete
1804f0e63047: Pull complete
f36fe6334464: Pull complete
03c68dfa69cf: Pull complete
b60cfdb78e96: Pull complete
Digest: sha256:7788fa2e31c7270be201d75285c13ccc7a74f67f991872ea63ba0cfa6708cac6
Status: Downloaded newer image for checkmk/check-mk-raw:2.0.0-latest
9729e323a840a08b0e758cfa9e6dbf76ba5dab4b2ecc4eea5174b8ee1a5cfbcf

Puede verificar si la imagen de Docker se descargó ejecutando el comando docker images.

[email protected]:~$ sudo docker images
REPOSITORY              TAG            IMAGE ID       CREATED        SIZE
bitnami/node-exporter   latest         ba0f519ca49b   34 hours ago   104MB
checkmk/check-mk-raw    2.0.0-latest   097319702432   13 days ago    1.03GB
hello-world             latest         feb5d9fea6a5   7 weeks ago    13.3kB

Ejecuta el comando docker ps para ver si el contenedor Checkmk se está ejecutando.

[email protected]:~$ sudo docker ps
CONTAINER ID   IMAGE                               COMMAND                  CREATED              STATUS                             PORTS                                                 NAMES
9729e323a840   checkmk/check-mk-raw:2.0.0-latest   "/docker-entrypoint.…"   About a minute ago   Up 59 seconds (health: starting)   6557/tcp, 0.0.0.0:8080->5000/tcp, :::8080->5000/tcp   monitoring
3d3a95ed3c25   bitnami/node-exporter:latest        "/opt/bitnami/node-e…"   25 hours ago         Up 25 hours                        9100/tcp                                              node-exporter

Para obtener los detalles de inicio de sesión para la interfaz web de Checkmk, imprima el registro del contenedor de Checkmk.

[email protected]:~$ sudo docker container logs 9729e323a840 
### CREATING SITE 'cmk'
Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
Going to set TMPFS to off.
Temporary filesystem already mounted
Updating core configuration...
Generating configuration for core (type nagios)...Precompiling host checks...OK
OK
Executing post-create script "01_create-sample-config.py"...OK
Created new site cmk with version 2.0.0p15.cre.

  The site can be started with omd start cmk.
  The default web UI is available at http://9729e323a840/cmk/

  The admin user for the web applications is cmkadmin with password: ClFxBPre
  For command line administration of the site, log in with 'omd su cmk'.
  After logging in, you can change the password for cmkadmin with 'htpasswd etc/htpasswd cmkadmin'.

### STARTING XINETD
[ ok ] Starting internet superserver: xinetd.
### STARTING SITE
Temporary filesystem already mounted
Starting mkeventd...OK
Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting apache...OK
Starting redis...OK
Initializing Crontab...OK
### STARTING CRON
### CONTAINER STARTED

El contenedor Checkmk Docker se ejecutará de forma predeterminada en https://localhost:8080/cmk/check_mk. El resultado del comando anterior le dice que el nombre de usuario es cmkadmin y la contraseña, en mi caso, la contraseña es ClFxBPre. Abra la dirección en un navegador web y use sus credenciales para iniciar sesión.

iniciar sesión

Una vez que inicie sesión, este es el 'Panel principal' que aparecerá. Está vacío porque aún no agregó ningún host.

tablero de control

Monitorear Docker usando Checkmk

Por lo general, instalaría el agente Checkmk en su máquina que aloja sus contenedores Docker y luego usaría el complemento Checkmk para Docker para monitorear todos los contenedores. Este complemento (mk_docker.py) utiliza la API de Python de Docker para realizar un seguimiento de los contenedores de Docker y obtener una visibilidad completa de su estado y rendimiento en tiempo real. Puedes leer más detalles sobre Supervisión de Docker con Checkmk en el sitio web de Checkmk.

Debido a que en mi entorno Docker solo hay un contenedor Docker en ejecución, mi contenedor Checkmk Docker, solo usaré el agente Checkmk que se ejecuta en el contenedor Docker y no instalaré Checkmk en mi host Docker. El agente está preinstalado en el contenedor Checkmk, por lo tanto, solo tengo que agregar mi contenedor Checkmk como host.

Obtengamos la dirección IP en la que se ejecuta el servicio Docker usando ifconfig en la terminal.

[email protected]:~$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:59ff:fe8a:8ba8  prefixlen 64  scopeid 0x20<link>
        ether 02:42:59:8a:8b:a8  txqueuelen 0  (Ethernet)
        RX packets 5559  bytes 7230215 (7.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4164  bytes 614703 (614.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.108  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::144a:4682:35e7:bb2  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:91:82:82  txqueuelen 1000  (Ethernet)
        RX packets 699491  bytes 1044235622 (1.0 GB)
        RX errors 0  dropped 7  overruns 0  frame 0
        TX packets 101260  bytes 7555470 (7.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 20655  bytes 8446042 (8.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20655  bytes 8446042 (8.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth44ba5ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::145f:1fff:fee9:a7b0  prefixlen 64  scopeid 0x20<link>
        ether 16:5f:1f:e9:a7:b0  txqueuelen 0  (Ethernet)
        RX packets 5559  bytes 7308041 (7.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4173  bytes 616263 (616.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vetha82ee43: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::585c:6fff:fe0a:a79b  prefixlen 64  scopeid 0x20<link>
        ether 5a:5c:6f:0a:a7:9b  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 92  bytes 9799 (9.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

En mi caso, el servicio Docker se ejecuta en 172.17.0.1. El siguiente paso es agregar el servicio Docker como host en Checkmk para que pueda ser monitoreado.

  • Vaya a Checkmk y haga clic en Configuración -> Hosts.

anfitriones checkmk

  • Haga clic en "Agregar host".

checkmk agregar host

  • Ahora proporcione el nombre de host y la dirección IP y haga clic en 'Guardar e ir a la configuración del servicio'.

ventana acoplable del host checkmk

  • Una vez que haga eso, Checkmk iniciará el descubrimiento del servicio automáticamente.

servicio docker checkmk

Desplácese hacia abajo para ver los servicios de supervisión que se ejecutan en el host de Docker. Puede ver que los servicios no se están monitoreando actualmente. Si desea monitorear todo, la solución más fácil es hacer clic en 'Reparar todo'. Si desea configurar qué servicios deben monitorearse, también puede hacerlo en detalle. Clickea en el + firme si desea monitorear un servicio.

lista de servicios de la ventana acoplable checkmk

Una vez que seleccione los servicios que desea monitorear, aparecerán en la pestaña 'Servicios monitoreados'. Obtendrá todos los detalles del estado de cada servicio que esté monitoreando. Si hace clic en ? firmar, ese servicio pasará a la lista de servicios indecisos. Si hace clic en el X firmar, el servicio se moverá a la pestaña 'Servicios deshabilitados'.

servicios monitoreados checkmk

He desactivado cuatro servicios, así que puedo verlos en la pestaña de servicios desactivados.

checkmk servicios deshabilitados

Cuando haya terminado de agregar los servicios, debe activar los cambios antes de que entren en producción.

  • Haga clic en el campo resaltado con el signo de exclamación amarillo (!) en la esquina superior derecha para ver los cambios pendientes.
  • Haga clic en Activar en sitios seleccionados.

¡Ha monitoreado con éxito los servicios de Docker usando Checkmk!

Conclusión

Eso fue todo sobre Checkmk, una herramienta de monitoreo de infraestructura. Es una herramienta muy fácil de usar que debes probar para monitorear tus entornos de producción. Recomiendo probar el Edición gratuita de Checkmk para iniciar su seguimiento.