Checkmk
to checkmk.com
Important

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

1. Introducción

Hay muchas buenas razones para usar FreeBSD en lugar de Linux u otros sistemas tipo Unix: Por ejemplo, la función de contenedores «Jails», disponible desde el año 2000, su alto rendimiento incluso bajo cargas pesadas de E/S, la solidez del sistema de archivos UFS2 o la excelente compatibilidad con el moderno sistema de archivos transaccional ZFS. Checkmk ofrece un agente para FreeBSD basado en el agente para Linux, pero adaptado a las particularidades de FreeBSD, como el uso de diferentes formatos de salida de las herramientas de línea de comandos y distintas convenciones de rutas. Sin embargo, la instalación y las pruebas de funcionamiento deben realizarse en gran parte de forma manual, ya que no hay ninguna opción para empaquetar o implementar a través de Agent Bakery.

Tip

Nota sobre otros sistemas BSD: Este artículo explica la instalación y configuración del agente para FreeBSD ; también hay agentes disponibles para OpenBSD y NetBSD . La instalación de estos es similar a la que se describe aquí. Si utilizas DragonFly BSD, agradeceríamos que realizaras pruebas y nos enviaras cualquier sugerencia de parches para el agente de FreeBSD.

La estructura básica del agente de FreeBSD es la misma que la descrita para el agente de Linux: Se trata de un script de shell puro, que se puede ejecutar a través de un superservidor de Internet (inetd o xinetd) o un túnel SSH, lo que lo hace ligero y seguro.

En general, en este artículo damos por hecho que tienes cierta experiencia con Linux o Solaris, así que aquí nos centraremos principalmente en las diferencias.

2. Instalación

2.1. Requisitos previos

Para que el agente de Checkmk pueda leer toda la información útil para la monitorización, es necesario instalar algunas herramientas adicionales:

  • sysutils/ipmitool

  • devel/libstatgrab

  • shells/bash

  • lang/python3

  • ftp/wget

Python es opcional en este momento, pero en cualquier caso es necesario para muchos complementos del agente. Una dependencia especial es bash, ya que el script del agente utiliza una sintaxis que no es compatible ni con el shell de Almquist ni con tcsh. Se necesita ipmitool para obtener información del hardware.

Instala todas estas dependencias con el siguiente comando:

root@bsd:/root # pkg install ipmitool libstatgrab bash python3 wget
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

2.2. Instalación desde los puertos de FreeBSD

Los puertos de FreeBSD contienen un puerto para el agente de Checkmk mantenido por Ian Valentine, que puede incluir parches para que el agente sea compatible con las versiones más recientes de FreeBSD-STABLE. Si la versión (por ejemplo, 2.3.0) de este agente de Checkmk disponible en los puertos de FreeBSD es igual o una versión mayor inferior a la versión de Checkmk que utilizas actualmente, puedes instalar este agente.

También hay un paquete precompilado disponible para el puerto check_mk_agent, que puedes instalar usando pkg:

root@bsd:/root # pkg install check_mk_agent
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

En la mayoría de los casos, la versión que compiles tú mismo a partir de los puertos estará más actualizada:

root@bsd:/root # cd /usr/ports/net-mgmt/check_mk_agent
root@bsd:/usr/ports/net-mgmt/check_mk_agent # make install
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

2.3. Instalación manual

Si la versión disponible en los puertos de FreeBSD es más antigua que la de tu servidor Checkmk, instala el agente más reciente desde el repositorio de GitHub. Dado que las personalizaciones de las nuevas versiones de FreeBSD no siempre se retroportan a los agentes de versiones anteriores de Checkmk, suele ser una buena idea instalar desde la rama de desarrollo más reciente:

root@bsd:/root # wget -O /usr/local/bin/check_mk_agent https://raw.githubusercontent.com/checkmk/checkmk/2.4.0/agents/check_mk_agent.freebsd
root@bsd:/root # chmod 0700 /usr/local/bin/check_mk_agent
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si buscas los agentes para otros sistemas BSD o quieres configurar la rama de desarrollo para una versión específica de Checkmk, busca la carpeta del agente en GitHub.

2.4. Prueba en la línea de comandos

Ahora ejecuta el agente en la línea de comandos y echa un vistazo rápido a la salida en el paginador:

root@bsd:/root # check_mk_agent | more
<<<check_mk>>>
Version: 2.4.0p25
AgentOS: freebsd
Hostname: beastie
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
PluginsDirectory: /usr/local/lib/check_mk_agent/plugins
LocalDirectory: /usr/local/lib/check_mk_agent/local
OSType: unix
OSName: FreeBSD
OSVersion: 14.4
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si no se muestra ningún resultado, comprueba de nuevo los requisitos previos, en particular que Bash esté instalado en /usr/local/bin.

3. Configuración del acceso a través de la red

3.1. inetd de FreeBSD

La forma más fácil de acceder al agente es mediante el inetd que viene con FreeBSD. Como alternativa, el xinetd para Linux está disponible en la sección security de los puertos de FreeBSD. Su configuración es exactamente la misma que se describe en el artículo sobre el agente para Linux. El inetd vincula la salida del agente al puerto TCP 6556 y, si es necesario, restringe el acceso a determinados servidores de Checkmk.

Primero, comprueba si tu archivo «/etc/services» ya contiene una entrada para el puerto 6556:

root@bsd:/root # grep 6556/ /etc/services
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si no es así, hay que identificar Checkmk como un servicio. Para ello, añade la siguiente línea:

/etc/services
checkmk-agent 6556/tcp #Checkmk monitoring agent

Ahora añade la siguiente línea al archivo de configuración de /etc/inetd.conf:

/etc/inetd.conf
checkmk-agent stream tcp nowait root /usr/local/bin/check_mk_agent check_mk_agent

El servicio «inetd» debe estar siempre activado. Para ello, añade la siguiente línea al archivo «/etc/rc.conf»:

/etc/rc.conf
inetd_enable="YES"

Si es necesario restringir el acceso, edita el archivo /etc/hosts.allow. Primero, comenta la línea que permite el acceso desde cualquier lugar y, a continuación, añade una línea que permita el acceso solo al servidor Checkmk —aquí con la dirección IP 198.51.100.123. El primer parámetro es el nombre del comando ejecutado por inetd:

/etc/hosts.allow
# The rules here work on a "first match wins" basis.
# ALL : ALL : allow
sshd : ALL : allow
check_mk_agent : 198.51.100.123 : allow

Una vez realizados los cambios de configuración, reinicia:

root@bsd:/root # reboot
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Ahora el acceso al agente desde el servidor de monitorización debería funcionar.

La forma más fácil de probarlo es con netcat o nc. Ejecuta el siguiente comando como usuario del sitio en el servidor Checkmk para probar la conexión de red con el agente (en este ejemplo, con el host con la dirección IP 198.51.100.231). La salida del comando se ha abreviado aquí para mostrar solo las primeras líneas:

OMD[mysite]:~$ nc "198.51.100.231" 6556
<<<check_mk>>>
Version: 2.4.0p25
AgentOS: freebsd
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

3.2. Seguridad

Dado que el agente de FreeBSD no admite actualmente el cifrado, te recomendamos utilizar un túnel SSH en situaciones en las que sea necesario proteger los datos transferidos. Explicamos cómo configurarlo en el artículo sobre el agente de Linux.

4. Inclusión en la supervisión

La inclusión en la supervisión se realiza mediante un descubrimiento automático de servicios, como en todos los demás sistemas. En un FreeBSD «básico» sin servicios de servidor configurados todavía, se deberían detectar al menos 11 servicios, y otros diez adicionales para la información del sistema de archivos si está instalado en ZFS:

List of 12 automatically discovered services.
La detección de servicios en Checkmk encontrará al menos 11 servicios.

5. Complementos

Debido a que la configuración es totalmente manual, a que no hay distribución automática y a que las rutas de los archivos son diferentes a las de Linux, te recomendamos que pruebes los mecanismos de complementos más importantes. Esto se inicia usando MRPE.

5.1. MRPE

Crea un archivo de configuración /etc/check_mk/mrpe.cfg con el siguiente contenido:

/etc/check_mk/mrpe.cfg
Flux_Comp /bin/echo 'OK - Flux compensator up and running'

Ahora debería aparecer una sección MRPE en la salida del agente:

root@bsd:/root # check_mk_agent | grep -A1 '^...mrpe'
<<<mrpe>>>
(echo) Flux_Comp 0 OK - Flux compensator up and running
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

En el descubrimiento de servicios, Flux_Comp aparece ahora como un nuevo servicio:

List with the newly detected service Flux_Comp.
El complemento MRPE se ha configurado correctamente

5.2. Complementos del agente

La instalación de los complementos del agente es igual a la descrita en el artículo sobre el agente de Linux. Asegúrate de usar el Shebang correcto al instalar cualquier complemento. Perl y Python están instalados en /usr/local/bin en FreeBSD, y muchos scripts de shell que funcionan con /bin/sh en Linux en realidad requieren el shell Bourne Again instalado en /usr/local/bin/bash en FreeBSD.

Para realizar pruebas, basta con una simple comprobación local, con la que la evaluación de si el servicio supervisado es OK, WARN o CRIT se realiza directamente en el host supervisado. Ya que estamos, usemos dos líneas de código para probar el intérprete de Python. Una vez más, fíjate en las diferentes rutas predeterminadas en comparación con Linux:

/usr/local/lib/check_mk_agent/local/hello.py
#!/usr/local/bin/python3
print("0 \"Hello Beastie\" - Just check paths and Python interpreter!")
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

No te olvides de hacer el script ejecutable:

root@bsd:/root # chmod 0755 /usr/local/lib/check_mk_agent/local/hello.py
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

En este caso también se encuentra el servicio inmediatamente:

List with the newly detected service Hello Beastie.
Se ha encontrado el nuevo servicio «Hello Beastie»

6. Archivos y directorios

6.1. Rutas de los archivos en el host que se está supervisando

Ruta de archivo Descripción

/usr/local/bin/check_mk_agent

Ubicación de instalación del agente Checkmk en el host de destino.

/usr/local/lib/check_mk_agent

Directorio base para las extensiones del agente.

/usr/local/lib/check_mk_agent/plugins

Complementos que amplían el agente con datos de supervisión adicionales. Los complementos se pueden escribir en cualquier lenguaje de programación disponible.

/usr/local/lib/check_mk_agent/local

Ubicación de almacenamiento para comprobaciones locales personalizadas.

/var/spool/check_mk_agent

Contiene datos creados, por ejemplo, por tareas cron, e incluye su propia sección. Estos también se añaden a la salida del agente.

/etc/check_mk

Ubicación de almacenamiento de los archivos de configuración del agente.

/etc/check_mk/mrpe.cfg

Archivo de configuración para MRPE: para ejecutar complementos de comprobación clásicos compatibles con Nagios.

Tip

No hay rutas de archivo predeterminadas definidas para FreeBSD, como las hay para Linux más abajo en /var/lib/check_mk_agent. Elige una ubicación adecuada e introdúcela en el script del agente.


Last modified: Wed, 01 Apr 2026 11:03:55 GMT via commit fcad3dfca
En esta página