![]() |
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.

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
.

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:
[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:
<<<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.

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.

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.

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.

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.

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.

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.

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.

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
.

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
:

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
:
C:\myfiles\*
/myfiles/*
/media/evo/test_$DATE:%Y%m%d$
Windows: el archivo de configuración es 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.
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:
<<<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

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í.

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:

yourfile
es mostrado por fileinfo, aunque no es responsable del cambio de estadoTodos los archivos entregados a la monitorización por fileinfo y que no están asignados a un grupo permanecen como servicios individuales:

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 |
|
Archivo de configuración de ejemplo |
Servidor Checkmk |
|
Plugin de agente de Python 3 con explicaciones incluidas |
Servidor Checkmk |
|
Plugin de agente Python 2 con explicaciones |
Host Linux |
|
Archivo de configuración - creado por el Agent bakery o manualmente |
6.2. fileinfo
Ubicación | Ruta del archivo | Contenido |
---|---|---|
Servidor Checkmk |
|
Archivo de configuración de ejemplo |
Host Linux |
|
Fichero de configuración - creado por el Agent bakery o manualmente |
Host Windows |
|
Archivo de configuración - creado por la Agent bakery |
Host Windows |
|
Fichero de configuración - creado manualmente |