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. Aspectos básicos de la monitorización de archivos

Con Checkmk puedes monitorizar el número, tamaño y antigüedad de los archivos, individualmente o en grupos. Esta función se puede utilizar de muchas formas distintas, como monitorizar el éxito de las estrategias de copia de seguridad, por ejemplo: ¿Alguna de las copias de seguridad tiene más de X días? ¿Alguna de las copias de seguridad es sospechosamente grande o pequeña? También puedes comprobar los servidores de archivos de toda la empresa para ver si los usuarios los están utilizando indebidamente como almacenamiento privado de películas, o vigilar los clásicos archivos de intercambio o archivos volátiles como los contenedores.

El procedimiento básico se ajusta a la norma Checkmk: se instala un Plugin/configuración en el agente que aporta la información deseada sobre archivos o grupos de archivos a la monitorización. Allí se utilizan los conjuntos de reglas correspondientes para determinar qué propiedades conducen a qué estados.

El filtrado real, es decir, la determinación de los datos que realmente acaban en la monitorización, tiene lugar en el agente. Puedes utilizar patrones globbing para incluir recursivamente archivos de directorios enteros, por ejemplo, o sólo determinados tipos de archivos o incluso archivos individuales. Utilizando patrones globbing como /myfiles/*.*, puedes acabar con listas de archivos enormemente grandes, aunque sólo te interesen archivos especialmente antiguos o grandes. Debido a este hecho, actualmente hay dos conjuntos de reglas de monitorización para agentes y asociados: el más antiguo, fileinfo, ya está integrado en el agente y sólo filtra por patrón globbing/ruta; el más reciente, mk_filestats, debe instalarse por separado como Plugin y filtra por otras propiedades.

Hay otras diferencias entre mk_filestats y fileinfo, que explicaremos más adelante. La diferencia más importante, sin embargo, es que mk_filestats sólo puede monitorizar hosts Linux, mientras que fileinfo también puede monitorizar hosts Windows. Para hosts Linux, normalmente debes utilizar el más actualizado mk_filestats.

2. Las diferencias entre mk_filestats y fileinfo

Si quieres ver los conjuntos de reglas de las dos variantes una al lado de la otra para mayor claridad, escribe size age en el menú Setup. Las reglas para archivos individuales y grupos se denominan (en gran medida) de forma idéntica, pero las reglas de mk_filestats se identifican explícitamente como tales. Ambas variantes de reglas de servicio están disponibles además como servicios forzados.

Setup menu with mk_filestats and fileinfo entries.
Las reglas fileinfo no están marcadas explícitamente como tales.

Existen diferencias entre las dos variantes a nivel de agente y de servicio. Para empezar, éstas son las diferencias teóricas básicas. Encontrarás detalles específicos más adelante en las instrucciones para el plugin de agente mk_filestats, así como para el fileinfo del agente.

En el caso del agente, mk_filestats se distingue por dos opciones de las que carece fileinfo: En primer lugar, mk_filestats ofrece las opciones de filtrado adicionales ya mencionadas, a saber, por tamaño, número y nombre de archivo, estas últimas en forma de expresiones regulares. Por ejemplo, con un patrón globbing /myfiles/*, podrías incluir en la monitorización sólo aquellos archivos que tengan un tamaño superior a 1 KB y contengan backup en alguna parte del nombre de archivo. Por otra parte, con mk_filestats, los grupos de archivos también se especifican directamente en la configuración del Plugin, simplemente creando varios filtros, cada uno de los cuales termina como su propia sección en la salida del agente y a los que posteriormente se pueden aplicar reglas a través del título de la sección.

Para las reglas de monitorización de servicios, los enfoques utilizados por mk_filestats y fileinfo difieren más en sus detalles. Ambos pueden restringir las evaluaciones a periodos de tiempo específicos, pero sólo fileinfo permite la especificación explícita de ventanas de tiempo por día directamente en la regla. También de forma exclusiva, fileinfo puede configurar el llamado conjunctions para grupos de archivos. Esto asocia un conjunto de condiciones para cada estado, así por ejemplo: "El estado pasa a CRIT en cuanto el archivo más antiguo del grupo tenga exactamente 5 horas de antigüedad y el archivo más pequeño tenga exactamente 8 megabytes."A su vez, para los grupos de archivos, mk_filestats ofrece la opción de definir valores atípicos: Supongamos que un grupo de archivos debe pasar a CRIT en cuanto el tamaño del grupo supere los 2 gigabytes. Sin embargo, si el grupo no debe pasar a CRIT cuando sólo un determinado archivo supere 1 gigabyte (como un archivo temporal), puedes definirlo como un caso especial, anulando la regla del grupo caso por caso.

Vista general de las diferencias:

Función mk_archivos fileinfo

Sistemas operativos compatibles

Linux

Linux y Windows

Agente

Plugin de agente

Incluido en el agente

Filtro

Filtra directamente en el agente los patrones de globbing y las propiedades

Filtra en el agente sólo los patrones de globbing

Listas de archivos

Proporciona listas de archivos sencillas

Listas de archivos a veces prolijas

Agrupación de archivos

Agrupa directamente en el agente

Agrupa mediante un conjunto de reglas de monitorización independiente

Mostrar archivos

Mostrar ficheros en los detalles del servicio opcionalmente

Mostrar siempre los ficheros en los detalles del servicio

Evaluación de ficheros

Puede considerar valores atípicos en los archivos

Puede considerar las relaciones entre ficheros

En los capítulos siguientes verás las dos funciones individualmente en ejemplos prácticos: las diferencias y características descritas deberían quedar entonces más claras. El propio mk_filestats también proporciona información detallada a través de la llamada filestats.py --help.

3. Monitorización de archivos con mk_filestats (Linux)

El siguiente ejemplo muestra el procedimiento para grupos de archivos. Para archivos individuales el procedimiento es idéntico, simplemente hay menos opciones. Supongamos que quieres monitorizar un grupo de un cierto número de archivos de copia de seguridad (mybackup_01.zip etc.) y que estos archivos no deben caer por debajo de un tamaño mínimo, entonces puedes proceder como sigue:

3.1. Configuración de la regla para el plugin de agente

Configuración a través del Agent bakery

En las ediciones comerciales, llama primero a la regla para el plugin de agente Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files - mk_filestats (Linux). En Section name asigna un nombre arbitrario, que aparecerá más tarde en la salida del agente como una sección independiente.

A continuación, en Globbing pattern for input files especifica qué archivos se van a monitorizar. Puedes utilizar patrones globbing, es decir, en última instancia, especificaciones de rutas de archivos con marcadores de posición. En este punto, queremos utilizar una especificación de ruta absoluta que incluya todos los archivos de la carpeta especificada.

El filtrado adicional se realiza mediante las dos opciones siguientes: Filter files by matching regular expression incluye los archivos según un patrón especificado, en este ejemplo los archivos con my en algún lugar de su nombre, yFilter files by not matching regular expression que luego excluye los archivos, aquí los que terminan en tmp.

Form to configure the agent plug-in mk_filestats.
Presta atención a la distinción entre globos y expresiones regulares.

Esto completa la configuración y puedes distribuir el Plugin incluyendo su configuración a través de Agent bakery.

Configuración manual

En Checkmk Raw configuras el Plugin como de costumbre utilizando un archivo de texto: como usuario del site puedes encontrar un ejemplo de configuración en el archivo share/check_mk/agents/cfg_examples/filestats.cfg. Una configuración según las especificaciones anteriores tiene entonces este aspecto:

/etc/check_mk/filestats.cfg
[myfiles]
input_patterns: /media/evo/myfiles/
filter_regex: .*my.*
filter_regex_inverse: tmp$

Esto completa la configuración y puedes instalar el plugin de agente manualmente.

Datos en la salida del agente

Encontrarás el resultado de tu configuración en forma de datos sin procesar en la salida del agente:

mysite-myhost-agent.txt
<<<filestats:sep(0)>>>
[[[file_stats myfiles]]]
{'type': 'file', 'path': '/media/evo/myfiles/mybackup_01.zip', 'stat_status': 'ok', 'size': 13146562, 'age': 339080, 'mtime': 1633966263}
{'type': 'file', 'path': '/media/evo/myfiles/mybackup_02.zip', 'stat_status': 'ok', 'size': 13145766, 'age': 325141, 'mtime': 1633980202}
{'type': 'file', 'path': '/media/evo/myfiles/mybackup_03.zip', 'stat_status': 'ok', 'size': 13151050, 'age': 325352, 'mtime': 1633979991}
...

3.2. Configuración de reglas de servicio

La monitorización tiene ahora acceso a los datos de los archivos a través del agente. Para su evaluación, llama a la regla Setup > Services > Service monitoring rules > Size, age and count of file groups (mk_filestats). En nuestro ejemplo, queremos que se nos avise en cuanto se supere o no se alcance un número determinado de archivos. Esto se consigue mediante las opciones Minimal file count y Maximal file count, que se utilizan para establecer los límites superior e inferior. Todas las demás opciones mínimo-máximo funcionan de forma análoga.

Form with upper and lower limits for file monitoring.
Parte 1/3: OK son aquí exclusivamente 7 u 8 archivos

Pero, ¿qué archivo genera entonces, por ejemplo, un estado CRIT? La opción Show files in service details ayuda en este caso: si está activada, verás todos los archivos afectados listados en la vista de detalles del servicio.

Specifying to show individual files in service details.
Parte 2/3: Esta opción proporciona transparencia - pero también puede producir listas muy largas

Ahora bien, puede ocurrir que el número de archivos sea correcto, pero que también haya valores atípicos en cuanto a su tamaño, por ejemplo. Para estas excepciones puedes utilizar la opción Additional rules for outliers: Especifica, por ejemplo, que para los archivos de menos de 5 megabytes se establezca el estado WARN, y que por debajo de 1 megabyte el servicio pase a CRIT. Esto puede ser útil para recibir notificaciones de copias de seguridad posiblemente defectuosas, por ejemplo.

Specifying outliers in the monitored files.
Parte 3/3: los archivos deben tener al menos 5 MB, de lo contrario se emitirá una advertencia

En la caja Conditions, ahora puedes especificar que la regla se aplique exclusivamente al grupo de archivos myfiles configurado en el plugin de agente: Para ello, introduce el nombre que asignaste en el plugin de agente en Section name como File Group Name.

Filter on files in the myfiles group.
File Group Name corresponde a Section Name en la regla del Plugin.

Esto también completa la regla de servicio. También puedes limitar opcionalmente la evaluación a un único periodo de tiempo. Una vez completado, añade el nuevo servicio a los host afectados y activa los cambios como de costumbre.

3.3. mk_filestats en monitorización

A continuación, puedes ver la evaluación de la monitorización en listas y, por supuesto, en los detalles. Además de los parámetros del servicio, ahora también podrás ver los archivos responsables del estado WARN o CRIT.

Service details in monitoring for the WARN status.
Los archivos responsables del estado son revelados por mk_filestats en la monitorización

Sin embargo, se recomienda precaución con la opción Mostrar archivos en los detalles del servicio: si muchos archivos han sido responsables de un cambio de estado, se listarán todos, lo que puede dar lugar a largas listas y a problemas de rendimiento y vista asociados.

Service details in monitoring for CRIT status.
Las expresiones regulares imprecisas pueden producir listas enormes

4. Monitorización de archivos con fileinfo (Linux, Windows)

La monitorización de archivos con fileinfo es básicamente la misma que con mk_filestats, por lo que el procedimiento aquí es un poco más corto, pero es una vez más para grupos de archivos.

4.1. Configuración de la regla para el agente

Configuración del Agent bakery

La configuración del agente en las ediciones comerciales en Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files (Linux, Windows) es mucho más sencilla: aquí sólo se define la ruta del archivo en forma de plantilla globbing. Esto también plantea el problema de transferir listas de archivos extremadamente largas, lo que puede ralentizar notablemente la monitorización. Además, por defecto se crea un servicio distinto para cada archivo encontrado, lo que sólo puede evitarse formando grupos.

Rule for fileinfo with filtering on the Windows path.
Monitorización de todos los archivos de este directorio exacto

Incluir todos los subdirectorios:Sólo en hosts Windows, puedes utilizar la llamada globstar (dos asteriscos consecutivos) para incluir todos los archivos de todos los subdirectorios. Sin embargo, utiliza esta opción con precaución. Un C:\** descuidado puede dar lugar a un número de servicios de 6 dígitos o a un timeout durante el descubrimiento.

Rule for fileinfo with filtering on the Windows path and all subdirectories.
Monitorización de todos los archivos de este directorio y de todos sus subdirectorios

Fecha adicional:En hosts Linux tienes la posibilidad de filtrar por fecha: En el patrón globbing, puedes utilizar la variable $DATE para incluir sólo los archivos cuyos nombres contengan la fecha actual. El formato de esta variable es el mismo que el del programa de Linux date.

Rule for fileinfo with filtering by date variable.
En Linux, los archivos con marcas de tiempo en sus nombres sólo se pueden direccionar explícitamente

En consecuencia, una especificación como /backups/mybackup_*_$DATE:%Y%m%d$ encontraría -a fecha de hoy, 22/10/2021- archivos como mybackup_01_20211022 y mybackup_foobar_20211022:

File in the monitoring, filtered by the date in the file name.
Para los archivos de copia de seguridad, son útiles las marcas de tiempo y un check diario.

Puedes encontrar más información directamente en la página de la regla, así como en la ayuda en línea relacionada.

Esto completa la configuración y puedes distribuir el Plugin incluyendo su configuración a través de Agent bakery.

Configuración manual

En Checkmk Raw con fileinfo también debes configurar mediante archivos, que varían según el sistema operativo:

Linux: el archivo de configuración es fileinfo.cfg:

/etc/check_mk/fileinfo.cfg
C:\myfiles\*
/myfiles/*
/media/evo/test_$DATE:%Y%m%d$

Windows: el archivo de configuración es check_mk.user.yml:

C:\ProgramData\checkmk\agent\check_mk.user.yml
fileinfo:
  enabled: yes
  path:
  - c:\myfiles\*
  - c:\myotherfiles\**

Sólo en hosts Windows, puedes utilizar la llamada globstar (dos asteriscos consecutivos) para incluir todos los archivos en todos los subdirectorios. Sin embargo, utiliza esta opción con precaución. Un C:\** descuidado puede dar lugar a un número de servicios de 6 dígitos o a un timeout durante el descubrimiento.

Con esto se completa la configuración y puedes instalar manualmente el Plugin en Linux o en Windows.

Datos en la salida del agente

A continuación, encontrarás el resultado de tu configuración en forma de datos sin procesar en la salida del agente, empezando por el título de la sección fileinfo:

mysite-mywindowshost-agente_salida.txt
<<<fileinfo:sep(124)>>>
1743070736
C:\myfiles\myfile01|30219|1724242936
C:\myfiles\myfile02|30219|1724242936
C:\myfiles\myfile03|1337|1741368907
C:\myotherfiles\myotherfile01|1900|1743070353
C:\myotherfiles\myotherfile02|728|1743070370
C:\myotherfiles\myotherfile03|1023120|1743070389
C:\myotherfiles\mysubdirectory\myfileinasubdirectory|14114|1743070321

Se trata de un ejemplo de salida que podría corresponder al archivo de configuración de un host Windows indicado anteriormente.

4.2. Configuración de la regla de servicio

En el segundo paso, se vuelve a configurar la regla de servicio Setup > Services > Service monitoring rules > Size, age and count of file groups. Las opciones mínimo-máximo corresponden a las de mk_filestats, pero las opciones para mostrar los nombres de los archivos afectados en los detalles del servicio y para los valores atípicos no están presentes aquí. Hay dos opciones adicionales para esto: En primer lugar, puedes introducir directamente un periodo de tiempo a través de Add time range- fuera de este periodo de tiempo, el servicio siempre tendrá un estado de OK.

Por otro lado, está disponible la potente función Level conjunctions: te permite establecer una serie de condiciones para cada uno de los cuatro estados OK, WARN, CRIT y UNKNOWN. Por ejemplo, puedes especificar que el servicio pase a CRIT si...

  • hay exactamente 7 archivos

  • el archivo más pequeño tiene menos de 10 megabytes

  • el archivo más antiguo tiene menos de 5 días

Specifying conditions for files monitored with fileinfo.
Level conjunctions también permite definir excepciones explícitas

Y de nuevo, puedes restringir esta regla al grupo myfiles deseado con File Group Name en la caja Conditions.

A diferencia de mk_filestats, la formación de grupos sólo tiene lugar en la monitorización mediante la regla de servicio Setup > Services > Service monitoring rules > File grouping patterns. Te aseguras de la asignación introduciendo también el grupo myfiles en Group name.

Los patrones para los archivos a incluir y excluir no se especifican aquí por defecto mediante expresiones regulares, sino sólo mediante globbing. Sin embargo, si antepones una tilde (~), también puedes utilizar expresiones regulares aquí.

Filtering of files in the group myfiles.
Los campos de entrada no siempre se comportan de forma idéntica - la ayuda en línea siempre proporciona más detalles

Fecha adicional: De nuevo es posible utilizar la variable $DATE. Como alternativa, también puedes utilizar $YESTERDAY para filtrar, que simplemente resta un día a $DATE. Como siempre, puedes obtener más información al respecto en la ayuda en línea.

4.3. fileinfo en monitorización

En monitorización, la vista de un grupo fileinfo no es muy diferente de la de un grupo mk_filestats. Sin embargo, fileinfo siempre lista explícitamente todos los archivos afectados, independientemente de si son responsables de un cambio de estado o no. Aquí en el ejemplo puedes ver los dos archivos yourfile con 0 megabytes que no tiene ningún efecto sobre el estado, y yourfile_2.exe con sus casi 11 megabytes que, por tanto, activa el estado CRIT:

A fileinfo group in monitoring.
yourfile es mostrado por fileinfo, aunque no es responsable del cambio de estado

Todos los archivos entregados a la monitorización por fileinfo y que no están asignados a un grupo permanecen como servicios individuales:

Single files as separate services in monitoring.
Con fileinfo, los patrones de globbing imprecisos pueden producir listas enormes

Esta misma lista muestra por qué es tan importante ser preciso con los filtros en fileinfo: Por ejemplo, si se especificara aquí C:\ sin ninguna restricción, posteriormente habría varios cientos de miles de servicios individuales en la monitorización.

5. Solución de problemas

5.1. No hay archivos o hay demasiados archivos en la monitorización

Independientemente de si trabajas con mk_filestats o con fileinfo, la ausencia de archivos o incluso el exceso de entradas en la monitorización suelen deberse a filtros incorrectos. Hay dos causas principales: un conflicto entre un patrón globbing y una expresión regular, o una configuración incorrecta. Por ejemplo, el asterisco se comporta de forma diferente en las dos variantes: en globbing, * representa un marcador de posición para cualquier número de caracteres arbitrarios, y en una expresión regular, representa una o más ocurrencias del carácter que lo precede. Para hacer coincidir cualquier carácter en cualquier cantidad mediante regex, tendrías que trabajar con .* en consecuencia.

6. Archivos y directorios

Como siempre, todas las rutas de archivos del servidor Checkmk son relativas al directorio del site (por ejemplo, /omd/sites/mysite).

6.1. mk_filestats

Ubicación Ruta del archivo Contenido

Servidor Checkmk

~/share/check_mk/agents/cfg_examples/filestats.cfg

Archivo de configuración de ejemplo

Servidor Checkmk

~/share/check_mk/agents/plugins/mk_filestats.py

Plugin de agente de Python 3 con explicaciones incluidas

Servidor Checkmk

~/share/check_mk/agents/plugins/mk_filestats_2.py

Plugin de agente Python 2 con explicaciones

Host Linux

/etc/check_mk/filestats.cfg

Archivo de configuración - creado por el Agent bakery o manualmente

6.2. fileinfo

Ubicación Ruta del archivo Contenido

Servidor Checkmk

~/share/check_mk/agents/cfg_examples/fileinfo.cfg

Archivo de configuración de ejemplo

Host Linux

/etc/check_mk/fileinfo.cfg

Fichero de configuración - creado por el Agent bakery o manualmente

Host Windows

C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml

Archivo de configuración - creado por la Agent bakery

Host Windows

C:\ProgramData\checkmk\agent\check_mk.user.yml

Fichero de configuración - creado manualmente

En esta página