![]() |
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. El agente de Windows
Desde sus inicios, la monitorización de servidores Windows ha sido una de las tareas más importantes de Checkmk. Por eso, como para todos los demás sistemas operativos de servidor, Checkmk también proporciona su propio agente para Windows, un programa agente que es a la vez minimalista y seguro.
Con el lanzamiento de la versión 2.1.0 de Checkmk, se añadió a este programa agente un nuevo componente, el Controlador de agentes. El Controlador de agentes se encuentra aguas arriba del programa del agente, lo consulta y se comunica con el servidor Checkmk en lugar del programa del agente. Para ello, el Controlador de agentes se registra en el Receptor del agente, un proceso que se ejecuta en el servidor Checkmk.
Así, por un lado, el agente de Windows se hace cargo del programa del agente y, por tanto, también de sus ventajas; por otro, complementa el programa para poder añadir nuevas funciones, como la encriptación TLS de la comunicación o la compresión de datos.
El modo pull registrado, encriptado y comprimido con el Controlador de agentes está disponible para todas las ediciones de Checkmk, siempre que tanto el servidor Checkmk como el agente tengan al menos la versión 2.1.0. El modo push está disponible a partir de Checkmk Cloud, es decir, en Checkmk Cloud y Checkmk MSP. Invertir la dirección de la comunicación facilita la monitorización de host situados tras cortafuegos. El modo push suele combinarse con el registro automático del agente Checkmk, que también está disponible a partir de Checkmk Cloud.
![]() |
Los paquetes de agentes que utilizan la configuración por defecto abren el puerto 6556 inmediatamente después de la instalación. Emitirán datos del agente sin cifrar a través de este puerto a cualquiera que los solicite. Por tanto, para los host accesibles desde internet, debes asegurarte antes de la instalación, mediante la configuración del cortafuegos, de que sólo los host seleccionados pueden acceder a este puerto. Realiza el registro y la activación asociada del cifrado TLS inmediatamente después de la instalación. |
Por motivos de compatibilidad, el agente sólo admite las versiones actuales de la línea de productos (edición) de Microsoft Windows NT. Puedes consultar cuáles son exactamente en el artículo Notas de la release.
Importante: No se admiten oficialmente otras ediciones de Windows. Esto incluye, por ejemplo, Windows Embedded. Sin embargo, para monitorizar versiones antiguas de Windows como, por ejemplo, Windows Server 2008, puedes utilizar un agente heredado bajo tu propia responsabilidad. Los agentes heredados son agentes de versiones antiguas de Checkmk sin el Controlador de agentes. Por supuesto, esto significa que las funcionalidades ampliadas con el Controlador de agentes, como el cifrado TLS o la compresión, no estarán disponibles. Los agentes heredados se pueden descargar aquí. Para los agentes heredados habrá que tener en cuenta algunos requisitos especiales, que se resumen en el capítulo de instalación.
La instalación, el registro y la configuración del agente pueden realizarse en unos pocos pasos, porque el agente no necesita bibliotecas adicionales para su funcionalidad, por ejemplo. Además, el agente se entrega con una configuración básica que es suficiente para la mayoría de las aplicaciones.
2. Arquitectura del agente
El agente Checkmk está formado por el programa del agente y el Controlador de agentes, que se comunica con el Receptor de agentes del servidor Checkmk. Consulta el artículo general sobre agentes de monitorización para obtener información detallada sobre las arquitecturas comunes del agente Linux y del agente Windows. Este capítulo trata específicamente de la implementación Windows.
El programa del agente check_mk_agent.exe
es responsable de la colección de los datos de monitorización. El programa se inicia como un servicio de Windows bajo la cuenta LocalSystem. Recoge datos sobre el sistema local cuando se le llama y los pone a disposición del Controlador de agentes.
El programa del agente es minimalista, seguro, fácilmente ampliable y completo, y proporciona acceso a datos importantes a los que no se puede acceder a través de WMI o SNMP. En algunos casos, sin embargo, puede ser útil la monitorización a través de SNMP , además del agente Checkmk. Para más información sobre este tema, consulta el artículo sobre monitorización con SNMP. Además, el programa del agente es tan transparente como puede serlo un archivo entregado como ejecutable, porque tienes acceso al código fuente en cualquier momento y, por tanto, a su funcionalidad, y en principio también puedes compilar el agente tú mismo.
El Controlador de agentes cmk-agent-ctl.exe
es el componente dentro del agente que se encarga de transportar los datos recogidos por el programa del agente. Se ejecuta como un proceso en segundo plano bajo la cuenta LocalSystem de Windows. En modo pull, escucha en el puerto TCP 6556 las conexiones entrantes del site de Checkmk y consulta al programa del agente a través de Mailslot.
3. Instalación
Checkmk ofrece varias formas de instalar el agente de Windows: desde la instalación manual del paquete de software hasta el despliegue totalmente automatizado, incluida su función de actualización. Algunos de estos métodos de instalación sólo están disponibles en las ediciones comerciales:
Método | Descripción | Checkmk sin procesar | Ediciones comerciales |
---|---|---|---|
Paquete MSI suministrado |
Instalación sencilla de un agente estándar con configuración manual mediante archivos de configuración. |
X |
X |
Paquete MSI de la Agent bakery |
Configuración mediante GUI, es posible una configuración individual por host. |
X |
|
El paquete de la Agent bakery se instala por primera vez a mano o mediante script y, a partir de ese momento, se actualizará automáticamente. |
X |
Como alternativa, también puedes distribuir el paquete MSI a través de otras rutas, como el Directorio Activo de Microsoft. En este caso, la instalación puede automatizarse completamente utilizando el formato MSI.
3.1. Descargar un paquete MSI
Instalas el agente de Windows instalando el paquete MSI.
Antes de la instalación, tienes que obtener el paquete y llevarlo al host en el que se ejecutará el agente (por ejemplo, con scp
o WinSCP).
Obtener un paquete a través de la GUI de Checkmk
En Checkmk Raw puedes encontrar el paquete Windows del agente a través de Setup > Agents > Windows. En las ediciones comerciales, primero llegas a Agent bakery en el menú Setup a través de Agents > Windows, Linux, Solaris, AIX, donde se encuentran los paquetes horneados. Desde allí, el elemento de menú Related > Windows files te llevará a la lista de archivos del agente:

Todo lo que necesitas se encuentra en la primera caja llamada Packaged Agents: el archivo del paquete MSI listo check_mk_agent.msi
para instalar el agente de Windows con su configuración predeterminada.
Obtener un paquete a través de la API-REST
La API-REST de Checkmk proporciona los siguientes métodos para descargar paquetes de agentes del servidor Checkmk:
Descarga del agente proporcionado.
Descarga de un agente bakeado por nombre del host y sistema operativo.
Descarga de un agente bakeado por hash del agente y sistema operativo.
A través de la API-REST, tienes la opción de obtener el paquete del servidor Checkmk directamente en la máquina de destino. Por ejemplo, el paquete MSI con el agente Windows se puede obtener con el siguiente comando curl
. En las versiones más recientes de Windows, curl
ya está incluido; en versiones anteriores, tendrás que instalar primero el entorno de comandos curl
por separado a través de curl para Windows.
C:\Users\hhirsch\Downloads\> curl -OJG "http://mycmkserver/mysite/check_mk/api/1.0/domain-types/agent/actions/download/invoke" ^
--header "Accept: application/octet-stream" ^
--header "Authorization: Bearer automation myautomationsecret" ^
--data-urlencode "os_type=windows_msi"
Nota: El comando anterior se ha dividido en cuatro líneas para facilitar su lectura.
Es sólo un ejemplo sencillo para demostrar cómo funciona este endpoint concreto de la API-REST para descargar el agente. Para más detalles sobre éste y otros endpoints de la API-REST, consulta la documentación de la API disponible en Checkmk a través de Help > Developer resources > REST API documentation.
3.2. Instalación de paquetes
Instalación manual
Tras descargar el paquete MSI y, si es necesario, copiarlo en el host que se va a monitorizar mediante scp
, WinSCP u otros medios, inicia la instalación haciendo doble clic en el archivo MSI o desde la línea de comandos como se indica a continuación:
C:\Users\hhirsch\Downloads\> check_mk_agent.msi
Verás la página de inicio del asistente de instalación:

Utiliza los botones de Next para desplazarte por las páginas del asistente. Acepta los términos de licencia de GNU GENERAL PUBLIC LICENSE para continuar. El asistente de Instalación te presentará la siguiente página:

Las opciones de esta página sólo son relevantes para ti si ya hay un agente de Windows instalado en el host y es anterior a la versión 1.6.0. En la versión 1.6.0 la arquitectura del agente de Windows había cambiado fundamentalmente. Si estás actualizando (o migrando) al agente actual desde un agente de Windows anterior a la versión 1.6.0, lee primero el capítulo sobre el agente antiguo en el Manual de usuario de Checkmk para la versión 2.0.0. Allí aprenderás cuál de las opciones proporcionadas debes seleccionar en este caso concreto de actualización.
En todos los demás casos, te recomendamos que selecciones la opción Clean installation.
Confirma el inicio de la instalación y, a continuación, permite que el programa de instalación realice cambios en el diálogo (User Account Control. Cuando haya terminado, puedes salir del Asistente de instalación.
Tras la instalación, el agente se iniciará inmediatamente como un servicio de Windows y estará listo para monitorizar el sistema.
Instalación desatendida
A través de la línea de comandos, Windows ofrece a los administradores con msiexec
la posibilidad de instalar paquetes MSI automáticamente sin interacción del usuario. Así, por ejemplo, una instalación automatizada puede tener este aspecto
C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn
En este caso, el agente se instala (/i
) sin interacción del usuario ni de la interfaz de usuario (/qn
) y además se inicia inmediatamente como un servicio de Windows. Por tanto, este método es estupendo para distribuir automáticamente el agente a muchos host.
También puedes utilizar este método para seleccionar las tres opciones que se te ofrecieron durante la instalación manual en el Asistente de instalación. Para cada opción, hay un identificador que puedes utilizar para el comando de instalación:
Opción en el Asistente de instalación | Identificador |
---|---|
Clean installation. |
|
Remove Legacy Windows Agent (pre 1.6) if present. |
|
Migrate from Legacy Windows Agent (pre 1.6) configuration if present. |
|
Para activar una opción, añade su identificador seguido de un signo "igual":
C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_CLEANINSTALL=
Para desactivar explícitamente una opción, debes añadir dos comillas más a continuación del signo igual:
C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_MIGRATELEGACY=""
3.3. Instalación mediante el Agent bakery
Las ediciones comerciales disponen de un módulo de software, el Agent bakery, para empaquetar automáticamente agentes personalizados. Encontrarás una descripción detallada en el artículo general sobre los agentes. La instalación del paquete MSI empaquetado se realiza del mismo modo que se ha descrito anteriormente para el paquete incluido.
A partir de Checkmk Cloud, puedes utilizar además el Agent bakery para proporcionar paquetes de agentes con una configuración para el autoregistro, que facilite la creación automática de hosts. En este caso, el registro del agente se realiza automáticamente una vez instalado el paquete de agente, y ya no será necesario el registro manual, como se describe en el capítulo siguiente.
3.4. Actualizaciones automáticas
Si utilizas el Agent bakery, también puedes configurar actualizaciones automáticas del agente. Estas actualizaciones se describen en su propio artículo.
3.5. Ficheros de configuración del agente
Durante una instalación, el paquete MSI almacena los archivos específicos del programa en C:\Program Files (x86)\checkmk\service\
y los archivos específicos del host en C:\ProgramData\checkmk\agent\
. No necesitas personalizar los archivos específicos del programa. Los archivos específicos del host se utilizan para almacenar Plugins, archivos de registro y de configuración y para configurar el comportamiento del agente.
Nota: Por defecto, todo el directorio C:\ProgramData
está oculto en Windows.
El agente lee sucesivamente tres archivos de configuración:
C:\Program Files (x86)\checkmk\service\check_mk.yml
es el archivo de configuración por defecto, que no debes modificar.C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml
es creado por el Agent bakery y no debe modificarse manualmente.C:\ProgramData\checkmk\agent\check_mk.user.yml
es tu archivo de configuración en el que puedes realizar manualmente ajustes personalizados para probar una opción o extensión en un host.
Si una opción se ha configurado en varios archivos, el último archivo leído determina el contenido de esta opción. Por lo tanto, para el trabajo manual con el agente, sólo es relevante el último archivo de configuración check_mk.user.yaml
, porque se lee en último lugar y, por lo tanto, tiene la última palabra. Si no se utiliza la Agent bakery, éste es, de hecho, el único archivo en el que se pueden hacer ajustes personalizados en la configuración del agente.
Como ya habrás reconocido por la extensión de los archivos de configuración, se utiliza YAML como formato de archivo.
3.6. ¿Qué sigue a la instalación?
Tras instalar el agente, incluido el Controlador de agentes, el siguiente paso es el registro, que configura el cifrado TLS para que la salida cifrada del agente pueda ser descifrada por el servidor Checkmk y mostrada en la monitorización.
Hay una característica especial cuando el agente se ha instalado con el Controlador de agentes por primera vez. En tal caso, el agente cambiará al modo Legacy Pull no encriptado, para que el servidor Checkmk no quede aislado de los datos de monitorización y pueda seguir mostrándolos. Esto se aplica tanto a una nueva instalación como a una actualización de un agente de la versión 2.0.0 o anterior.
Aparecerá así en la monitorización:

El site Checkmk reconoce en la salida del agente que el Controlador de agentes está presente y, por tanto, que la encriptación TLS es posible, pero aún no está activada. El servicio Check_MK Agent cambia al estado WARN y permanece así hasta que lo registres. Tras el registro, sólo se utilizará el modo pull encriptado para la comunicación. El modo Legacy Pull está desactivado y permanecerá así. Sin embargo, se puede volver a activar por comando si es necesario.
La situación será diferente si utilizas un agente heredado en un sistema Windows muy antiguo. Sin el Controlador de agentes no es posible el registro. Por tanto, para los agentes heredados, las únicas secciones relevantes del capítulo Registro son añadir el host a la Configuración y luego a la monitorización. En el capítulo Pruebas y resolución de problemas debes omitir la prueba de llamada al Controlador de agentes, porque no está disponible para un agente heredado. Como tampoco hay encriptación TLS sin el Controlador de agentes, tendrás que utilizar otros métodos de encriptación si es necesario. En este caso recomendamos utilizar la encriptación integrada (simétrica) utilizando la regla Symmetric encryption (Linux, Windows).
Nota: En el conjunto de reglas Checkmk Agent installation auditing encontrarás varios ajustes para comprobar el estado del agente y hacerlo visible en la monitorización. Entre otras cosas, aquí puedes especificar qué estado debe tener el servicio Check_MK Agent si aún no se ha realizado la configuración TLS.
4. Registro
4.1. Vista general y requisitos previos
Inmediatamente después de la instalación del agente (también como actualización de un agente de la versión 2.0.0 y anteriores), sólo es posible la comunicación no encriptada en el modo Legacy Pull. Sólo se puede activar una transmisión de datos exclusivamente encriptada cuando se haya establecido una relación de confianza.
Una excepción son los paquetes preconfigurados para el autoregistro y descargados a través del Agent bakery. Estos paquetes realizan el registro automáticamente tras la instalación.
En todos los demás casos, debes realizar el registro manual inmediatamente después de instalar el agente. Este capítulo muestra cómo realizar el registro.
El registro y, por tanto, el establecimiento de la relación de confianza mutua se realiza bajo un usuario Checkmk con acceso a la API-REST. Para ello, una buena opción es el usuario de automatización agent_registration
, que sólo tiene permiso para registrar agentes y se crea automáticamente con cada instalación de Checkmk. Puedes aleatorizar la contraseña de automatización correspondiente(secreto de automatización) con el icono . La función de aleatorización genera una nueva contraseña. Primero debes guardar el usuario antes de utilizar esta nueva contraseña.
Nota: Como no hay Controlador de agentes y, por tanto, no hay encriptación del registro ni TLS, en sistemas Windows muy antiguos tendrás que utilizar métodos de encriptación alternativos si es necesario. En este caso, te recomendamos que utilices la encriptación integrada (simétrica) mediante la regla Symmetric encryption (Linux, Windows).
4.2. Añadir un host a la Configuración
Primero crea el nuevo host a través de Setup > Hosts > Add host.Un host debe existir en el entorno de configuración antes de que pueda ser registrado.
A partir de Checkmk Cloud encontrarás la opción Checkmk agent connection mode en las propiedades del host, en la sección de agentes de monitorización. Aquí puedes activar el modo push para el agente Checkmk como alternativa al modo pull, que está disponible en todas las ediciones.
4.3. Registrar un host en el servidor
El registro se realiza utilizando el Controlador de agentes cmk-agent-ctl
, que proporciona una interfaz de comandos para configurar las conexiones. Puedes mostrar la ayuda de comandos con cmk-agent-ctl help
, también para subcomandos específicos disponibles, por ejemplo con cmk-agent-ctl help register
.
Que el host esté configurado para el modo pull o el modo push no supone ninguna diferencia para los ejemplos de comandos. El Receptor del agente indica al Controlador de agentes en qué modo debe funcionar durante el registro.
Ahora ve al host que se va a registrar. Aquí tienes que hacer una solicitud al site de Checkmk con derechos de administrador:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
register ^
--hostname mynewhost ^
--server cmkserver --site mysite ^
--user agent_registration --password "PTEGDYXBFXVGNDPRL"
El nombre del host que sigue a la opción --hostname
debe ser exactamente el mismo que cuando se creó en la Configuración. Las opciones --server
y --site
especifican el nombre del servidor Checkmk y del site. El nombre del host también puede ser la dirección IP, el nombre del site (aquí mysite
) corresponde al que ves en la ruta URL de la interfaz web. Las opciones se completan con el nombre y la contraseña que utiliza el usuario de automatización. Si omites la opción --password
, la contraseña se solicitará de forma interactiva.
Precaución, trampa para incautos: Si administras principalmente máquinas Unix, estarás acostumbrado a encerrar rutas o parámetros con espacios o caracteres especiales entre comillas simples(apóstrofos, 0x27
). Windows interpreta este carácter como parte de la llamada -en este caso la contraseña- y el registro fallará. Utiliza en su lugar comillas dobles(comillas, 0x22
).
Si los valores especificados eran correctos, se te pedirá que confirmes la identidad del site Checkmk al que quieres conectarte. Para mayor claridad, aquí hemos abreviado el certificado del servidor a confirmar:
Attempting to register at cmkserver:8000/mysite. Server certificate details:
PEM-encoded certificate:
---BEGIN CERTIFICATE---
MIIC6zCCAdOgAwIBAgIUXbSE8FXQfmFqoRNhG9NpHhlRJ40wDQYJKoZIhvcNAQEL
[...]
nS+9hN5ILfRI+wkdrQLC0vkHVYY8hGIEq+xTpG/Pxw==
---END CERTIFICATE---
Issued by:
Site 'mysite' local CA
Issued to:
localhost
Validity:
From Thu, 10 Feb 2022 15:13:22 +0000
To Tue, 13 Jun 3020 15:13:22 +0000
Do you want to establish this connection? [Y/n]
> Y
Confirma con Y
para completar el proceso.
Si no aparece ningún mensaje de error, se habrá establecido la conexión encriptada. Todos los datos se transmitirán ahora de forma comprimida a través de esta conexión.
Si quieres desactivar la comprobación interactiva del certificado -por ejemplo, para automatizar completamente el registro- puedes utilizar el parámetro adicional --trust-cert
. En este caso, el certificado transferido será de confianza automáticamente. Ten en cuenta que debes tomar otras medidas para verificar la integridad del certificado. Esto se puede realizar (manualmente o mediante script) inspeccionando el archivo /var/lib/cmk-agent/registered_connections.json
.
4.4. Registrar un host automáticamente en el servidor
A partir de Checkmk Cloud, Checkmk ofrece la posibilidad de crear hosts automáticamente en el momento del registro. Para este autoregistro, además de un usuario con permiso para registrar hosts, necesitas al menos una carpeta configurada para albergar los hosts que se van a crear automáticamente.
Si se cumplen estas condiciones, también puedes llevar a cabo el registro, incluida la creación automática de hosts, a través de la línea de comandos.
Normalmente utilizarás el procedimiento de configuración de Agent bakery, que incluye el archivo de configuración /var/lib/cmk-agent/pre_configured_connections.json
en el paquete del agente y que realiza el registro automáticamente durante la instalación. Por tanto, la llamada a la línea de comandos que se presenta aquí se utiliza principalmente para pruebas y depuración, por ejemplo, para probar tus propias etiquetas del agente con la opción --agent-labels <KEY=VALUE>
.
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
register-new ^
--server cmkserver --site mysite ^
--agent-labels testhost:true ^
--user agent_registration --password "PTEGDYXBFXVGNDPRL"
La mayor diferencia aquí es el subcomando register-new
modificado, que se utiliza para solicitar el registro y la creación de un nuevo host en el site de Checkmk. El nombre del host es el almacenado en la variable del entorno %COMPUTERNAME%
. La confirmación posterior del certificado es la misma que la mostrada en la última sección.
Si el host se crea en modo pull, push o no se crea en absoluto, lo define tu configuración en el conjunto de reglas Agent registration. Tras un registro correcto, pueden pasar varios minutos antes de que el host aparezca en la monitorización.
4.5. Verificar la relación de confianza
El comando cmk-agent-ctl status
muestra ahora exactamente una relación de confianza con el servidor Checkmk:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" status
Connection: 12.34.56.78:8000/mysite
UUID: d38e7e53-9f0b-4f11-bbcf-d196deadbeef
Local:
Connection type: pull-agent
Certificate issuer: Site 'mysite' local CA
Certificate validity: Mon, 21 Feb 2022 11:23:57 +0000 - Sat, 24 Jun 3020 11:23:57 +0000
Remote:
Connection type: pull-agent
Host name: mynewhost
Si se necesita la información en un formato legible por máquina, añade el parámetro adicional --json
para obtener la salida formateada como un objeto JSON.
Nota: Sólo puede haber una relación de confianza entre host y site. Por ejemplo, si registras un host ya registrado mynewhost
con un nombre diferente (mynewhost2
) pero con la misma dirección IP, la nueva conexión sustituirá a la existente. La conexión desde mynewhost
al site se desconectará y no se suministrarán más datos del agente al host para su monitorización.
4.6. Registro por proxy
Para facilitar el registro de múltiples hosts, cualquier host en el que esté instalado el agente puede realizar un registro en nombre de otros hosts. El proceso de registro exporta un archivo JSON, que puede transferirse al host de destino e importarse allí. De nuevo, como antes, el host registrado en el trabajo debe estar ya configurado en el site.
En primer lugar, en cualquier host de la Configuración, el registro se realiza por proxy. Aquí, por supuesto, resulta útil el servidor Checkmk, ya que suele ser el primer host que se configura. Como en el ejemplo anterior, puedes pasar la contraseña por opción o que te la pida interactivamente si omites la opción --password
. En el ejemplo, redirigimos la salida JSON a un archivo:
root@linux# cmk-agent-ctl proxy-register \
--hostname mynewhost3 \
--server cmkserver --site mysite \
--user agent_registration > /tmp/mynewhost3.json
A continuación transferimos el archivo /tmp/mynewhost3.json
al host para el que nos registramos e importamos ese archivo:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
import %TEMP%\mynewhost3.json
4.7. Añadir el host a la monitorización
Una vez completado el registro, realiza una prueba de conexión y un descubrimiento de servicios en la Configuración del servidor Checkmk. A continuación, como último paso, incluye los servicios descubiertos en la monitorización activando los cambios.
Si la prueba de conexión falla, consulta el capítulo siguiente para obtener información sobre pruebas y solución de problemas.
4.8. Dar de baja un host
También puedes dar de baja un host.
En un host conectado al servidor Checkmk, puedes revocar la confianza. Aquí, en el siguiente comando, el Identificador Único Universal (UUID) a especificar es el emitido por el comando cmk-agent-ctl status
:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
delete d38e7e53-9f0b-4f11-bbcf-d196deadbeef
Para eliminar todas las conexiones del host y, además, restablecer el modo Legacy Pull, introduce el siguiente comando:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
delete-all --enable-insecure-connections
Después, el agente se comportará como lo hacía tras la instalación inicial y antes del primer registro, y enviará sus datos sin cifrar.
Completa la baja en el servidor Checkmk: En la Configuración, en la página Properties of host, selecciona el elemento de menú Host > Remove TLS registration y confirma la consulta.
Si prefieres utilizar la línea de comandos: En el servidor Checkmk, para cada conexión de un host que está en monitorización, hay un soft link con el UUID que apunta a la carpeta con la salida del agente:
OMD[mysite]:~$ cd ~/var/agent-receiver/received-outputs
OMD[mysite]:~$ ls -l d38e7e53-9f0b-4f11-bbcf-d19617971595
lrwxrwxrwx 1 mysite mysite 67 Feb 23 07:18 d38e7e53-9f0b-4f11-bbcf-d19617971595 -> /omd/sites/mysite/tmp/check_mk/data_source_cache/push-agent/mynewhost
4.9. Cambiar entre los modos push y pull
A partir de Checkmk Cloud, puedes cambiar hosts del modo push al modo pull y viceversa. Esto puede ser necesario en casos concretos si hay cambios pendientes en la topología de la red, o si se va a realizar un downgrade a CheckmkEnterprise, en el que sólo es posible el modo pull.
En primer lugar, especifica el modo de acceso en la Configuración, en las propiedades del host, con la opción Checkmk agent connection mode. En el minuto siguiente, todos los servicios asumirán el estado DESCONOCIDO, ya que no se reciben datos de monitorización. A continuación, realiza un nuevo registro. Durante este nuevo registro, el Receptor del agente del servidor Checkmk indica al Controlador de agentes si espera datos en modo pull o push. Un check posterior mediante cmk-agent-ctl status
mostrará entonces un nuevo UUID y un modo coherente con el cambio realizado en la Configuración.
5. Pruebas y resolución de problemas
Un sistema modular puede no funcionar como está previsto en muchas situaciones. Desde la versión 2.1.0, con la introducción de los dos nuevos componentes -el Controlador de agentes en el host y el Receptor del agente en el servidor Checkmk-, ha aumentado el número de puntos en los que algo puede ir mal.
Por tanto, se recomienda adoptar un enfoque estructurado a la hora de solucionar problemas. Por supuesto, también puedes utilizar el análisis paso a paso que se describe aquí para conocer con más detalle la colección de datos y la comunicación que proporciona Checkmk.
Todas las opciones de diagnóstico disponibles desde el lado del servidor Checkmk se describen en el artículo general sobre agentes de monitorización. Pero, por supuesto, hay otros diagnósticos disponibles cuando se accede directamente al propio host monitorizado.
En las siguientes secciones iremos desde el programa del agente, pasando por el Controlador de agentes y el puerto TCP 6556, hasta el site de Checkmk. Con el Controlador de agentes en modo push, omite cualquier prueba en el puerto 6556: aunque el puerto 6556 esté abierto antes del registro, se cerrará tras un registro en modo push. En la mayoría de los casos, tras corregir un error, puedes reiniciar el descubrimiento de servicios y completar la inclusión en la monitorización.
5.1. Check de la configuración
Para comprobar que la configuración se ha leído como se esperaba, llama al programa del agente con la opción showconfig
. Con esta opción no sólo obtendrás la configuración tal y como la utiliza actualmente el agente, sino que, además, se mostrarán siempre las variables del entorno, así como los archivos de configuración en uso.
Si sólo te interesa una parte determinada de la configuración, puedes limitar la salida a esa parte concreta. Aquí, por ejemplo, se comprueba si las opciones de la sección ps
se han configurado correctamente:
C:\Windows\system32> "C:/Program Files (x86)/checkmk/service/check_mk_agent.exe" showconfig ps
# Environment Variables:
# MK_LOCALDIR="C:\ProgramData\checkmk\agent\local"
# MK_STATEDIR="C:\ProgramData\checkmk\agent\state"
# MK_PLUGINSDIR="C:\ProgramData\checkmk\agent\plugins"
# MK_TEMPDIR="C:\ProgramData\checkmk\agent\tmp"
# MK_LOGDIR="C:\ProgramData\checkmk\agent\log"
# MK_CONFDIR="C:\ProgramData\checkmk\agent\config"
# MK_SPOOLDIR="C:\ProgramData\checkmk\agent\spool"
# MK_INSTALLDIR="C:\ProgramData\checkmk\agent\install"
# MK_MSI_PATH="C:\ProgramData\checkmk\agent\update"
# Loaded Config Files:
# system: 'C:\Program Files (x86)\checkmk\service\check_mk.yml'
# bakery: 'C:\ProgramData\checkmk\agent\bakery'
# user : 'C:\ProgramData\checkmk\agent\check_mk.user.yml'
# ps
enabled: yes
use_wmi: yes
full_path: no
De esta forma obtienes una vista general rápida de cómo se han agrupado los tres archivos de configuración diferentes y cómo los utiliza el programa del agente. Los errores serán visibles inmediatamente.
5.2. Entorno de red para el registro
Si el registro de un host falla incluso antes de que se presente el certificado, el conocimiento de los métodos de comunicación puede ayudar a identificar el problema y, por supuesto, a resolverlo.
Una vez introducido el comando cmk-agent-ctl register
, el Controlador de agentes solicita primero al servidor Checkmk el puerto del Receptor del agente utilizando la API-REST. Como segundo paso, se establece una conexión con el Receptor del agente para solicitar el certificado. Puedes simular la primera solicitud en el host con un programa como curl
:
C:\Windows\system32> curl.exe -v --insecure https://mycmkserver/mysite/check_mk/api/1.0/domain-types/internal/actions/discover-receiver/invoke
El parámetro --insecure
indica a curl
que se salte la comprobación del certificado. Este comportamiento refleja el comportamiento del Controlador de agentes en este paso. La respuesta es de sólo unos bytes, y contiene el número de puerto del Receptor del agente. Para el primer site suele ser sólo 8000
, para el segundo 8001
y así sucesivamente. Los problemas más comunes en relación con esta solicitud son:
No se puede acceder al servidor Checkmk desde el host.
El puerto utilizado por la API-REST difiere de los puertos predeterminados 443 (https) u 80 (http)
Si el comando curl falla, podrías cambiar la configuración de enrutamiento o del cortafuegos para permitir el acceso.
En caso de que el host que intentas registrar utilice un proxy HTTP, curl
lo utilizará, pero cmk-agent-ctl
no lo hará con la configuración por defecto. Utiliza la opción adicional --detect-proxy
para indicar a cmk-agent-ctl
que utilice un proxy configurado a través de los ajustes del sistema.
Sin embargo, a menudo puede ser más fácil identificar el puerto del Receptor del agente y anotarlo. Para ello, en el servidor Checkmk, iniciando sesión como usuario del site, ejecuta:
OMD[mysite]:~$ omd config show | grep AGENT_RECEIVER
AGENT_RECEIVER: on
AGENT_RECEIVER_PORT: 8000
Ahora puedes especificar el puerto al introducir el comando para el registro. De este modo, se omite la primera solicitud a la API-REST y la comunicación se realiza directamente con el Receptor del agente, sin rodeos:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
register ^
--hostname mynewhost ^
--server cmkserver:8000 --site mysite ^
--user agent_registration --password PTEGDYXBFXVGNDPRL
El puerto 8000 también debe ser accesible desde el host. En caso de que no lo sea, obtendrás este mensaje de error:
ERROR [cmk_agent_ctl] Connection refused (os error 111)
Equivalente al puerto 443 (respectivamente 80) mencionado anteriormente, ahora puedes ajustar la configuración de enrutamiento o cortafuegos para que el host que se va a registrar pueda alcanzar el servidor Checkmk en el puerto del Receptor del agente (8000 u 8001...).
En el caso de un registro en modo push se aplica lo siguiente: si el registro ha funcionado, la transferencia minuto a minuto de la salida del agente también tendrá éxito.
Si las directivas de seguridad prohíben el acceso al Receptor del agente, aún existe la posibilidad de utilizar el registro por proxy en el servidor Checkmk.
5.3. El Controlador de agentes en modo volcado
Como el programa del agente debe llamarse bajo la cuenta LocalSystem para entregar exactamente los datos que llegan a la monitorización, nunca debes iniciarlo en un intérprete de comandos. Si quieres examinar la salida del agente localmente, utiliza el Controlador de agentes en modo volcado (subcomando dump
). Esto inicia el programa del agente con el entorno correcto y bajo el ID de usuario correcto y, a continuación, da salida al resultado.
Como la salida puede ser un poco más larga, aquí es muy útil el localizador "más", del que puedes salir con la tecla Q:
C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump | more
<<<check_mk>>>
Version: 2.3.0p31
BuildDate: Mar 14 2023
AgentOS: windows
Hostname: DESKTOP-QVPV284
Architecture: 64bit
WorkingDirectory: C:\Windows\system32
ConfigFile: C:\Program Files (x86)\checkmk\service\check_mk.yml
LocalConfigFile: C:\ProgramData\checkmk\agent\check_mk.user.yml
AgentDirectory: C:\Program Files (x86)\checkmk\service
PluginsDirectory: C:\ProgramData\checkmk\agent\plugins
StateDirectory: C:\ProgramData\checkmk\agent\state
ConfigDirectory: C:\ProgramData\checkmk\agent\config
TempDirectory: C:\ProgramData\checkmk\agent\tmp
LogDirectory: C:\ProgramData\checkmk\agent\log
SpoolDirectory: C:\ProgramData\checkmk\agent\spool
LocalDirectory: C:\ProgramData\checkmk\agent\local
OnlyFrom:
<<<cmk_agent_ctl_status:sep(0)>>>
Esto te permite comprobar que los datos del programa del agente han llegado al Controlador de agentes. Esta salida todavía no demuestra que el agente también sea accesible a través de la red.
5.4. Prueba de conexión remota
Si en modo pull se ha comprobado que el programa del agente y sus plugins instalados se ejecutan correctamente, puedes comprobar a continuación a través de netcat
(o nc
) si el puerto 6556 es accesible a través de la dirección IP externa del host:
OMD[mysite]:~$ echo | nc 10.76.23.189 6556
16
La salida 16
indica si la conexión se ha establecido correctamente y que ya puede tener lugar el handshake TLS. Como aquí todo lo demás está encriptado TLS, no es posible realizar un check más detallado.
Si la comunicación entre el agente y el servidor Checkmk sigue sin estar encriptada (como en el modo Legacy Pull) o está y sigue sin estar encriptada (como en el modo Legacy Pull), obtendrás la salida completa del agente sin encriptar con este comando en lugar de la 16
.
Para obtener más diagnósticos que ejecutar en el servidor Checkmk, consulta el artículo general sobre los agentes de monitorización. En concreto, también puedes realizar una prueba de conexión utilizando la interfaz Checkmk. Obtendrás el resultado en la caja Agent:.

Si no obtienes ninguna información o sólo un mensaje de error de timeout durante la prueba de conexión, como en el ejemplo anterior, debes comprobar el Inbound Rules del cortafuegos de Windows en el host.
5.5. Cortafuegos de Windows
El agente ya crea una regla en el Cortafuegos de Windows durante su instalación, para que se pueda acceder al Controlador de agentes desde el exterior a través del puerto 6556. Cuando se utiliza el modo push, normalmente no es necesario cambiar su configuración. Si utilizas una configuración de cortafuegos muy estricta, las Reglas de salida para las conexiones al servidor de monitorización deben configurarse para que se pueda acceder al menos al puerto 8000 (para facilitar el registro, adicionalmente a los puertos 80 ó 443).
En las versiones actuales de Windows puedes encontrar el Windows Defender Firewall with Advanced Security a través de la Configuración de Windows (Settings > Windows Security) o iniciarlo llamando a wf.msc
desde la línea de comandos:

Si no encuentras dicha entrada en la configuración del Cortafuegos de Windows, puedes añadirla en esta ubicación exacta. Para ello, haz clic en New Rule en el menú Action.
Se abrirá un asistente para crear una nueva regla de cortafuegos. Establece las cinco opciones de la siguiente manera:
Rule Type |
Deja la selección aquí en Program. |
Program |
Introduce This program path |
Action |
Allow the connection. |
Profile |
Este punto depende en gran medida de la configuración de tu red. Sin embargo, en la mayoría de los casos se recomienda activar aquí sólo Domain y Private. |
Name |
Dale a la regla un nombre conciso y breve. |
Como alternativa, puedes automatizar este paso y establecer la regla directamente en la línea de comandos. Modifica el siguiente comando a tu ruta de instalación personalizada si es necesario:
C:\Windows\System32> netsh advfirewall firewall add rule name="Checkmk Agent" ^
description="Allow inbound network traffic to the Checkmk Agent" dir=in localport=6556 protocol=tcp action=allow ^
program="%ALLUSERSPROFILE%\checkmk\agent\bin\cmk-agent-ctl.exe" ^
profile=private,domain enable=yes
OK.s
Nota: El comando se ha dividido en cuatro líneas para facilitar su lectura.
5.6. Solución de problemas del agente en modo push
En la carpeta ~/var/agent-receiver/received-outputs/
de tu site Checkmk, para cada host registrado encontrarás un soft link que utiliza el UUID del host como nombre. Para los hosts en modo push, este soft link apunta a la carpeta con la salida del agente; para los hosts en modo pull, apunta a un archivo inexistente con el nombre del host utilizado en la monitorización.
En función de la antigüedad de la salida del agente almacenada en caché, puedes determinar si la transmisión regular se ha realizado correctamente o si, por ejemplo, está siendo interrumpida por problemas esporádicos de la red.
Además, puedes echar un vistazo al archivo de registro C:\ProgramData\checkmk\agent\log\check_mk
en el host (las rutas pueden estar configuradas de forma diferente). Líneas como las siguientes indican problemas de conexión:
Dez 15 17:59:49 myhost23 cmk-agent-ctl[652648]: WARN [cmk_agent_ctl::modes::push] https://mycmkserver:8000/mysite: Error pushing agent output.
5.7. Se pierden conexiones
Si un host se ha configurado para el autoregistro con el conjunto de reglas Agent controller auto-registration y la opción Keep existing connections está configurada como no, siempre que se reinicie el servicio cmk-agent-ctl-daemon
(por ejemplo, cuando se reinicia un host), se eliminarán todas las demás conexiones, excepto la conexión configurada para el autoregistro. Esto afecta, por ejemplo, a hosts en los que las conexiones a varios sites se configuraron antes de instalar el paquete de agente horneado, o las conexiones se añadieron manualmente después de instalar el paquete de agente.
Puedes anular temporalmente este comportamiento estableciendo la variable keep_existing_connections
en true
en el archivo C:\ProgramData\checkmk\agent\pre_configured_connections.json
del host. Puedes conseguir un cambio permanente a través de una actualización del paquete de agente estableciendo Keep existing connections en yes en el conjunto de reglas anterior.
5.8. Tiempo de espera hasta que los cambios sean visibles
Cuando se registra automáticamente un host, suelen pasar unos dos minutos antes de que el host aparezca en la monitorización.
6. Seguridad
6.1. Consideraciones preliminares
La seguridad es un criterio importante para cualquier software, y la monitorización no es una excepción. Puesto que el agente de monitorización se instala en cada servidor monitorizado, un problema de seguridad aquí tendría consecuencias especialmente graves.
Por eso se hizo hincapié en la seguridad en el diseño de Checkmk y ha sido un principio absoluto desde los primeros días de Checkmk:El agente no lee datos de la red. Estosignifica que es imposible que un atacante inyecte comandos o componentes de script a través del puerto de monitorización 6556.
6.2. Seguridad de la capa de transporte (TLS)
Para un atacante, sin embargo, incluso una lista de procesos puede ser una primera aproximación para sacar conclusiones sobre objetivos que merezcan la pena. Por tanto, la encriptación del transporte entre el agente y el servidor Checkmk con Seguridad de la Capa de Transporte (TLS) es obligatoria a partir de la versión 2.1.0 de Checkmk. Aquí, el servidor Checkmk hace un "ping" al host monitorizado, que establece la conexión TLS con el servidor Checkmk y transmite la salida del agente a través de él. Como sólo los servidores Checkmk con los que existe una relación de confianza pueden iniciar esta transferencia de datos, no hay riesgo de que los datos caigan en manos equivocadas.
Para asegurar la conexión TLS, Checkmk utiliza un certificado autofirmado que se sustituye automáticamente poco antes de que caduque su validez. El Controlador de agentes se encarga de renovar el certificado a tiempo, antes de que caduque. Sólo los agentes que hayan estado inactivos durante un periodo de tiempo prolongado, es decir, sin un Controlador de agentes en funcionamiento, pueden perder su registro al caducar y deben registrarse de nuevo. La vida útil del certificado puede especificarse mediante la configuración global Agent Certificates > Lifetime of certificates.
Nota: Como en los sistemas Windows muy antiguos no hay Controlador de agentes y, por tanto, no hay registro ni encriptación TLS, tendrás que elegir otras formas de encriptación si es necesario. En este caso, recomendamos utilizar la encriptación integrada (simétrica) mediante la regla Symmetric encryption (Linux, Windows).
6.3. Restringir el acceso mediante direcciones IP
La restricción de acceso a direcciones IP concretas también puede configurarse a través del cortafuegos. Sin embargo, el propio agente también ofrece la posibilidad de ignorar simplemente las peticiones procedentes de direcciones IP ajenas. Sólo tienes que añadir la siguiente restricción al archivo de configuración en las opciones globales. Ten en cuenta que puede haber otros parámetros configurados en el archivo de configuración antes o después de esto y que esto es sólo un fragmento:
global:
only_from: 127.0.0.1/32 192.168.42.0/24
Como puedes ver en el ejemplo, puedes permitir cualquier número de subredes. Por ejemplo, con /32
especificas una subred de tamaño 1, de modo que sólo se permite esta dirección, mientras que con 192.168.42.0/24
permites todas las direcciones entre 192.168.42.0
y 192.168.42.255
.
En Agent bakery, puedes configurar las direcciones IP permitidas utilizando el siguiente conjunto de reglas:Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Allowed agent access via IP address (Linux, Windows).
6.4. Desactivar el cifrado integrado
Especialmente al actualizar el agente, puede ocurrir que esté activa la encriptación integrada (simétrica), que realiza el propio programa del agente. Si la encriptación TLS y la encriptación integrada están activas al mismo tiempo, entonces la entropía de los datos transmitidos es tan alta que la compresión, que está activa a partir de la versión 2.1.0, no guardará ningún dato transmitido -y sobrecargará las CPU tanto del host como del servidor Checkmk con procesos adicionales de encriptación y desencriptación.
Por esta razón, debes desactivar el cifrado integrado inmediatamente después de cambiar a TLS.
En el primer paso, desactiva la encriptación en la regla existente en Setup > Agents > Access to agents > Checkmk agent > Symmetric encryption (Linux, Windows).
En el segundo paso, en el host del agente, en el archivo de configuración C:\ProgramData\checkmk\agent\check_mk.user.yml
, cambia el valor del parámetro encrypted
por no
:
global:
encrypted: no
passphrase: D0e5NotMat7erAnym0r3
En el tercer y último paso, utiliza la regla Enforce agent data encryption para especificar que el servidor Checkmk sólo acepte datos cifrados mediante TLS. Para ello, selecciona el valor Accept TLS encrypted connections only en la regla.
La desactivación de la encriptación con el Agent bakery procede así: con el primer paso, la modificación de la regla Symmetric encryption (Linux, Windows), casi has terminado. Sólo tienes que hornear y distribuir nuevos agentes. El archivo de configuración C:\ProgramData\checkmk\agent\check_mk.user.yml
se modificará automáticamente por ti y se incluirá en los paquetes de agentes. Sólo queda el tercer paso, es decir, la modificación de la regla Enforce agent data encryption.
Ten en cuenta que, tras la actualización automática del agente, sólo los host registrados podrán proporcionar datos de monitorización.
7. Desactivar secciones
La salida del agente Checkmk se divide en secciones. Cada una de estas secciones contiene información relacionada. Las secciones siempre empiezan con un título de la sección. Se trata de una línea encerrada en <<<
y >>>
.
A excepción de las secciones propias de Checkmk, puedes desactivar individualmente cualquiera de las más de 30 secciones que el agente genera por defecto. Concretamente, esto significa que el agente no ejecutará en absoluto los comandos correspondientes, lo que posiblemente ahorre tiempo de cálculo. Otras razones para desactivarlas podrían ser que simplemente no te interese cierta información de un determinado grupo del host, o que un host concreto esté proporcionando valores erróneos y quieras suspender la recuperación de esos datos durante un breve periodo de tiempo.
Como usuario de una de las ediciones comerciales, puedes crear simplemente una regla a través de Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Disabled sections (Windows agent) que será tenida en cuenta por el Agent bakery.

Nota: La imagen anterior muestra que también existe una regla opuesta Enabled sections (Windows agent) a Disabled sections (Windows agent), lo que significa que puedes trabajar con la lista "positiva" como alternativa a la "negativa". Sin embargo, para mantener una visión general clara, recomendamos utilizar sólo una de las dos reglas.
En la regla Disabled sections (Windows agent) encontrarás una casilla de verificación independiente para cada sección que se pueda desactivar. Para las casillas de verificación seleccionadas encontrarás -después de que el agente recién horneado se haya instalado en los host seleccionados- en el archivo de configuración de Agent bakery C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml
debajo de global:
una línea disabled_sections:
que enumera las secciones seleccionadas.
Por ejemplo, si seleccionaras tanto System uptime
como Web Services
, el archivo de configuración correspondiente tendría el siguiente aspecto:
global:
disabled_sections: [uptime, wmi_webservices]
Los usuarios de Checkmk Raw pueden crear manualmente una entrada en el archivo de configuración C:\ProgramData\checkmk\agent\check_mk.user.yml
e introducir allí las secciones que deben desactivarse. Todas las secciones que pueden desactivarse se enumeran en este archivo debajo de global:
, en la sección _sections:
.
8. Ampliación del agente mediante Plugins
8.1. ¿Qué son los Plugin de agente?
El programa del agente check_mk_agent.exe
contiene todo un conjunto de secciones que proporcionan datos de monitorización para varios check plugins que, a continuación, son encontrados automáticamente por el descubrimiento de servicios. Esto incluye toda la monitorización importante del sistema operativo.
Además, existe la posibilidad de ampliar el agente con plugins de agente. Se trata de pequeños scripts o programas que son llamados por el agente y lo amplían con secciones adicionales con datos de monitorización adicionales. El proyecto Checkmk proporciona una serie de plugins de este tipo, que -si se instalan y configuran correctamente- proporcionan automáticamente nuevos servicios en el descubrimiento de servicios.
¿Por qué estos Plugins no están simplemente codificados en el agente? Para cada uno de los Plugins existe una de las siguientes razones:
El Plugin sólo puede obtener sus datos a través de interfaces internas que el agente no proporciona (ejemplo: PowerShell).
El Plugin necesita de todos modos una configuración, sin la cual no funcionaría (ejemplo:
mk_oracle.ps1
).El Plugin es tan especial que la mayoría de los usuarios no lo necesitan (ejemplo:
citrix_licenses.vbs
).
8.2. Instalación manual
Todos los plugins incluidos para Windows se encuentran en el host monitorizado, en el directorio de instalación del agente, en C:\Program Files (x86)\checkmk\service\plugins
. Se almacenan allí para que estén disponibles directamente. Como alternativa, los plugins para Windows también se encuentran en el servidor Checkmk, en ~/share/check_mk/agents/windows/plugins
.
También están disponibles en la página de descarga del agente en el Menú de configuración (como se describe en el capítulo Instalación ) en la caja Plugins:

Para todos los plugins de agente que proporcionamos, existen check plugins coincidentes que pueden evaluar sus datos y generar servicios. Éstos ya están instalados, de modo que los servicios recién encontrados se reconocen inmediatamente y se pueden configurar.
Nota: Antes de instalar un Plugin en el host, echa un vistazo al archivo correspondiente. A menudo encontrarás allí información importante sobre el uso correcto del Plugin.
Después, la instalación propiamente dicha es sencilla: copia el archivo en C:\ProgramData\checkmk\agent\plugins
.
Una vez que el Plugin esté en el directorio correcto, el agente lo llamará automáticamente y se creará una nueva sección en la salida del agente, que suele tener el mismo nombre que el Plugin. Los Plugins complejos (por ejemplo, mk_oracle.ps1
) crean incluso todo un conjunto de secciones nuevas.
8.3. Configuración
Algunos Plugin necesitan un archivo de configuración en C:\ProgramData\checkmk\agent\config
para funcionar. Para otros, la configuración es opcional (por ejemplo, mssql.vbs
) y permite características especiales o personalizaciones. Y otros simplemente funcionan así. Tienes varias fuentes para obtener información:
La documentación de los plugins de check asociados en tu site Checkmk, a la que puedes acceder a través de Setup > Services > Catalog of check plugins.
Comentarios en el archivo del Plugin (¡a menudo muy útiles!)
Un artículo adecuado en este Manual de usuario (por ejemplo, sobre la monitorización de Oracle)
Para lenguajes especiales (de scripting), puede ser necesario habilitarlos primero en la configuración del agente. Por ejemplo, los scripts de Python no se ejecutarán a menos que estén explícitamente habilitados. Puedes hacerlo ampliando las extensiones de archivo en el archivo de configuración check_mk.user.yml
en la sección global
, como se muestra en el siguiente extracto:
global:
execute: [exe, bat, vbs, cmd, ps1, py]
Importante: El uso de estos Plugin requiere que los archivos también se puedan llamar en una línea de comandos normal sin rutas especiales. En el caso de Python, debe estar instalado correctamente y la ruta del intérprete debe estar presente en las variables del entorno. Puedes encontrar instrucciones sobre cómo configurar Python correctamente directamente en las páginas de la Python Software Foundation.
8.4. Personalizar la ejecución de un Plugin concreto
Cada Plugin puede ejecutarse en diferentes modos. Las siguientes opciones se pueden introducir en el archivo de configuración.
Opción | Valor | Descripción |
---|---|---|
|
|
Establece el rango de las siguientes opciones. Aquí también se pueden utilizar comodines. A continuación, las siguientes opciones se refieren a todos los Plugin a los que se aplica la expresión. Líder determina si el Plugin debe ejecutarse directamente desde el directorio de instalación en |
|
|
Determina si se debe suprimir la ejecución de un Plugin. |
|
|
Ejecuta un Plugin de forma asíncrona y almacena los datos en un archivo. Si se ejecuta de forma sincrónica, la salida se pasa directamente al agente. |
|
|
Establece el tiempo máximo de ejecución. Transcurrido éste, el Plugin finalizará aunque no se haya producido ninguna salida. El valor por defecto se basa en el valor por defecto del intervalo de consulta del agente. |
|
|
Establece en segundos cuánto tiempo es válida una salida. |
|
|
El número de veces que puede fallar un Plugin antes de descartar la salida de la caché. |
|
|
Aquí puedes introducir un texto libre que se añadirá a los registros. |
Una configuración para el Plugin de Veeam tiene, por ejemplo, este aspecto (el extracto está acortado y sólo contiene la parte relevante para el ejemplo):
plugins:
enabled: yes
execution:
- pattern: $CUSTOM_PLUGINS_PATH$\veeam_backup_status.ps1
async: yes
timeout: 120
cache_age: 300
retry_count: 2
Según la configuración ejemplar anterior, el Plugin del directorio de datos C:\ProgramData\checkmk\agent\plugins
se ejecuta de forma asíncrona cada cinco minutos (300 segundos) y puede funcionar durante un máximo de dos minutos (120 segundos). Si el Plugin se encuentra con este timeout, lo intentará una segunda vez para obtener un resultado.
8.5. Instalación a través del Agent bakery
En las ediciones comerciales, los Plugins incluidos se pueden configurar a través de la Agent bakery, que se encarga tanto de la instalación del propio Plugin como de la creación correcta del fichero de configuración, en caso de que se necesite.
Cada Plugin se configura mediante una regla de agente. Puedes encontrar los conjuntos de reglas apropiados en Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Agent Plugins:

8.6. Ejecución manual
Dado que los plugins de agente son programas ejecutables, puedes ejecutarlos manualmente con fines de prueba y diagnóstico. Sin embargo, hay plugins que necesitan que el agente establezca determinadas variables del entorno para encontrar su archivo de configuración, por ejemplo. Si es necesario, establécelas manualmente si se necesitan en el script o programa.
9. Integración de plugins de check heredados de Nagios
9.1. Ejecutar Plugins a través de MRPE
Hay dos buenas razones para seguir utilizando los plugins de Nagios en Checkmk. Si has migrado tu monitorización de una solución basada en Nagios a Checkmk, puedes seguir utilizando los antiguos check plugin para los que aún no existe un equivalente en Checkmk. En muchos casos se trata de plugins autoescritos en Perl o shell.
La segunda razón es la verdadera monitorización de extremo a extremo. Supongamos que tienes tu servidor Checkmk, un servidor web y un servidor de base de datos distribuidos en un gran centro de datos. En tal caso, los tiempos de respuesta del servidor de base de datos medidos desde el servidor Checkmk no son muy significativos. Es mucho más importante conocer estos valores para la conexión entre el servidor web y el servidor de base de datos.
El agente Checkmk proporciona un mecanismo sencillo para cumplir estos dos requisitos:el Ejecutor de Plugin Remoto de MK o MRPE, para abreviar. El nombre es deliberadamente una analogía con el NRPE de Nagios, que realiza allí la misma tarea.
El MRPE está integrado en el agente y se controla mediante varios archivos de configuración.
Activar y desactivar el MRPE
Por defecto, la consideración de Plugin de MRPE está activada. Si no quieres utilizar esta función, puedes desactivarla en el archivo de configuración añadiendo la siguiente definición:
mrpe:
enabled: no
Limitar el tiempo de ejecución
A veces, el tiempo de ejecución de un script o de un Plugin de Nagios es impredecible y, en el peor de los casos, un Plugin no termina nunca. Para mantener el control en este caso, puedes limitar el tiempo máximo de ejecución de los Plugins de MRPE. El valor que se muestra aquí es también el valor por defecto en segundos, por lo que sólo es necesario realizar ajustes si quieres establecer un intervalo más corto o más largo:
mrpe:
# enabled: yes
timeout: 60
Añadir Plugin MRPE
Para indicar al agente dónde se encuentra el archivo que debe ejecutar y cómo debe llamarlo, añade una entrada en la configuración de MRPE:
MRPE:
config:
- check = MyServiceName 'C:\ProgramData\checkmk\agent\mrpe\my_check_plugin.bat' -w 10 -c 20 MyParameter
No es necesario poner también el archivo en el directorio del agente, aunque es conveniente reunirlos todos en un lugar común. En este ejemplo de configuración, puedes ver ahora los siguientes elementos de la línea correspondiente:
Elemento | Descripción |
---|---|
|
El nombre del servicio tal y como debe mostrarse en Checkmk. |
|
Programa a ejecutar; entre comillas para los espacios. |
|
Opciones pasadas: Un umbral de 10 para WARN y de 20 para CRIT. |
|
Ejemplo de paso de otros parámetros. |
Después de configurar el Plugin MRPE, se activará directamente sin reiniciar el agente y se añadirá a la salida. En el descubrimiento de servicios encontrarás ahora tu nuevo servicio automáticamente:

9.2. MRPE con el Agent bakery
Como alternativa a la configuración directa en un host en el archivo de configuración específico del usuario, también puedes definir tus plugins de MRPE directamente en el menú Setup. Para ello, utiliza el conjunto de reglas Setup > Agents > Windows, Linux, Solaris, AIX > Agent > Agent rules > Execute MRPE checks. La entrada necesaria se crea entonces automáticamente en el archivo de configuración de Agent bakery.
10. Monitorización del hardware
La monitorización del hardware de los host Windows está bien cubierta por el agente Checkmk, siempre que los plugins y las extensiones disponibles en Checkmk Exchange estén bien cubiertos. Sin embargo, hay situaciones en las que no se dispone de plugins ya preparados ni de interfaces de programación para crear tus propios plugins, pero un software de aplicación o una herramienta de monitorización de hardware de un fabricante de hardware pueden proporcionar datos de monitorización a través de SNMP.
En tal caso, configura SNMP con el tipo de conexión adecuado (SNMP v2 or v3 o SNMP v1) en la caja Monitoring agents de las propiedades del host en Configuración. Los servicios que están disponibles tanto a través de SNMP como del agente Checkmk (por ejemplo, la carga de la CPU, los sistemas de archivos, las tarjetas de red) son obtenidos automáticamente por el agente Checkmk y no a través de SNMP, lo que evita automáticamente la duplicación de transmisiones.
Para más información, consulta el artículo Monitorización con SNMP.
11. Desinstalación
Tienes varias opciones para desinstalar el agente en Windows. En todas las versiones de Windows encontrarás una entrada en el Panel de control en Control Panel > Programs and Features > Uninstall a program.. En las versiones más recientes también puedes encontrar la entrada para el agente Checkmk en la configuración en Settings > Apps > Apps & features.
Desde la línea de comandos para administradores, tienes varias opciones para eliminar el agente. Si aún conservas el último paquete MSI instalado, puedes utilizarlo para la desinstalación del siguiente modo:
C:\Users\downloads\> msiexec /x check_mk_agent.msi /qn
Alternativamente, puedes utilizar el comando de instrumentación de gestión de Windows (WMIC) para desinstalar:
C:\> wmic product where name="Check MK Agent 2.1" call uninstall /nointeractive
Si la desinstalación se ha realizado correctamente, recibirás el mensaje Method execution successful.
como confirmación.
Nota: La cadena después de name=
debe ser exactamente correcta. Si quieres desinstalar otra versión del agente aquí encontrarás una lista de todos los productos instalados con la siguiente llamada:
C:\> wmic product get name
El proceso puede tardar a veces bastante tiempo y no dará ningún mensaje de estado, pero sí listas muy largas. Para filtrar puedes extender el comando a una tubería:
C:\> wmic product get name | findstr Check
Check MK Agent 2.1
Como las distintas rutinas de Windows sólo eliminan los archivos que también llegaron allí a través del proceso de instalación, es perfectamente normal que queden archivos en los directorios del agente. Éstos se pueden eliminar manualmente.
12. Archivos y directorios
12.1. Rutas en el host monitorizado
Ruta | Significado |
---|---|
|
Directorio de instalación para los archivos específicos del programa, incluyendo el programa del agente |
|
El archivo de configuración por defecto del agente. No modifiques este archivo. |
|
Directorio de instalación de los archivos específicos del host. Aquí se encuentran las extensiones, el archivo de registro y los archivos de configuración específicos de este host. |
|
Este archivo de configuración lo crea el Agent bakery y sobrescribe los valores del archivo de configuración por defecto si es necesario. |
|
Fichero de configuración para tus personalizaciones individuales. Este archivo se lee en último lugar y sobrescribe los valores de los otros archivos de configuración si es necesario. |
|
Directorio para los Plugin que el agente debe ejecutar automáticamente y ampliar su salida con datos de monitorización adicionales. |
|
Contiene datos creados, por ejemplo, por archivos de registro que tienen su propia sección. También se añaden a la salida del agente. Puedes leer más sobre esto en el artículo El directorio spool. |
|
Contiene una lista de conexiones registradas con el Controlador de agentes. |
|
Contiene una conexión preconfigurada a un site para el autoregistro, integrada en el paquete del agente a través de Agent bakery. |
|
Almacenamiento de los archivos de configuración del agente. |
|
Directorio para los checks locales personalizados. |
|
Aquí se pueden almacenar las extensiones MRPE. |
|
Después de cada cambio del servicio del agente Checkmk se crea aquí una copia de seguridad de la configuración del usuario. |
|
Aquí puedes encontrar archivos de registro. Además del |
12.2. Rutas en el servidor Checkmk
Ruta | Significado |
---|---|
|
Directorio base para los archivos personalizados que se entregan con un agente horneado. |
|
Directorio que contiene el paquete MSI del agente. Este directorio también contiene ejemplos de configuración y todos los Plugin de agente. |
|
Contiene para cada conexión su UUID como un soft link que apunta a la carpeta con el nombre del host. En modo push, esta carpeta contiene la salida del agente. |