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

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

El procedimiento básico sigue el estándar de Checkmk: Se instala un plugin/configuración en el agente que incorpora la información deseada sobre archivos o grupos de archivos a la monitorización. Allí, se utilizan conjuntos de reglas correspondientes para determinar qué propiedades dan lugar a qué estados.

El filtrado propiamente dicho, es decir, determinar qué datos acaban realmente en la monitorización, tiene lugar en el agente. Puedes usar patrones globales para incluir de forma recursiva archivos de directorios completos, por ejemplo, o solo determinados tipos de archivos o incluso archivos individuales. Al usar patrones globales como /myfiles/*.*, puedes acabar con listas de archivos enormemente grandes, aunque quizá solo te interesen los archivos especialmente antiguos o grandes. Debido a esto, actualmente hay dos agentes y conjuntos de reglas de monitorización asociados: El antiguo fileinfo ya está integrado en el agente y filtra solo por patrón de globbing/ruta, mientras que el más nuevo, mk_filestats, debe instalarse por separado como un plugin de agente y filtra por otras propiedades.

Hay otras diferencias entre mk_filestats y fileinfo, que explicaremos a continuación. Sin embargo, la diferencia más importante es que mk_filestats solo puede realizar la monitorización de hosts Linux, mientras que fileinfo también puede realizar la monitorización de hosts Windows. Para hosts Linux, normalmente deberías usar 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, solo tienes que escribir «size age» en el menú «Setup». Las reglas para archivos individuales y grupos tienen (en gran parte) los mismos nombres, pero las reglas de mk_filestats están identificadas explícitamente como tales. Ambas variantes de reglas de servicio están disponibles además como servicios aplicados.

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

Existen diferencias entre las dos variantes a nivel de agente y de servicio. Para empezar, aquí tienes las diferencias teóricas básicas. Encontrarás detalles específicos más adelante en las instrucciones del plugin de agente mk_filestats, así como en las de 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 de archivo, número y nombre, este último en forma de expresiones regulares. Por ejemplo, con un patrón de globbing «/myfiles/*», podrías incluir en la monitorización solo aquellos archivos que sean mayores de 1 KB y contengan «backup» en algún lugar del nombre del archivo. Por otro lado, con mk_filestats, los grupos de archivos también se especifican directamente en la configuración del plugin de agente, simplemente creando múltiples filtros, cada uno de los cuales acaba siendo una sección propia en la salida del agente y al que posteriormente se puede hacer referencia mediante reglas a través del título de la sección.

En cuanto a las reglas de monitorización de servicios, los enfoques utilizados por mk_filestats y fileinfo difieren más en los detalles. Ambos pueden restringir las evaluaciones a periodos de tiempo específicos, pero solo fileinfo permite especificar explícitamente ventanas de tiempo por día directamente en la regla. Además, de forma exclusiva, fileinfo puede configurar los llamados «conjunctions» para grupos de archivos. Esto asocia un conjunto de condiciones a cada estado, por ejemplo: «El estado pasa a CRIT tan pronto como el archivo más antiguo del grupo tenga exactamente 5 horas 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 casos atípicos: Supongamos que un grupo de archivos debe pasar a CRIT tan pronto como el tamaño del grupo supere los 2 gigabytes. Sin embargo, si el grupo no debe pasar a CRIT cuando un único archivo concreto supere 1 gigabyte (como un archivo temporal), puedes definir esto como un caso especial, anulando la regla del grupo caso por caso.

Vista general de las diferencias:

Característica mk_filestats fileinfo

Sistemas operativos compatibles

Linux

Linux y Windows

Agente

Plugin de agente

Incluido en el agente

Filtro

Filtros directamente en el agente para patrones globales y propiedades

Filtros en el agente solo para patrones de globbing

Listas de archivos

Proporciona listas de archivos concisas

Ofrece listas de archivos a veces muy detalladas

Agrupación de archivos

Agrupa directamente en el agente

Agrupa mediante un conjunto de reglas de monitorización independiente

Mostrar archivos

Mostrar archivos en los detalles del servicio de forma opcional

Mostrar siempre los archivos en los detalles del servicio

Evaluación de archivos

Se pueden tener en cuenta los valores atípicos en los archivos

Puede tener en cuenta las relaciones entre archivos

En los siguientes capítulos verás las dos funciones por separado en ejemplos prácticos; así, las diferencias y características descritas te quedarán 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, solo que hay menos opciones. Supongamos que quieres realizar la monitorización de un grupo de un número determinado de archivos de copia de seguridad (mybackup_01.zip, etc.) y que estos archivos no deben bajar de un tamaño mínimo; en ese caso, puedes proceder de la siguiente manera:

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

Configuración a través de Agent bakery

CEE En las ediciones comerciales, primero abre 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» (Nombre de la regla), asigna un nombre arbitrario, que aparecerá más tarde en la salida del agente como una sección independiente.

En «Globbing pattern for input files» (Exclusiones), especifica a continuación qué archivos se van a realizar la monitorización. Puedes utilizar patrones de globbing, es decir, especificaciones de ruta de archivo con comodines. 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 archivos según una plantilla especificada; en este ejemplo, archivos que contengan «my» en algún lugar de sus nombres, y «Filter files by not matching regular expression», que excluye archivos; en este caso, aquellos que terminen en «tmp».

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

Con esto se completa la configuración y ya puedes distribuir el Plugin, incluida su configuración, a través de Agent bakery.

Configuración manual

CRE En CRE Checkmk Community, configuras el Plugin como de costumbre utilizando un archivo de texto: como usuario del site, puedes encontrar una configuración de ejemplo en el archivo share/check_mk/agents/cfg_examples/filestats.cfg. Una configuración según las especificaciones anteriores quedaría así:

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

Con esto queda completada la configuración y ya puedes instalar el plugin de agente manualmente.

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:

mysite-myhost-agente.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 la regla de servicio

La monitorización ya tiene acceso a los datos de los archivos a través del agente. Para la evaluación, llama a la regla Setup > Services > Service monitoring rules > Size, age and count of file groups (mk_filestats). En nuestro ejemplo, queremos recibir una alerta tan pronto como se supere o no se alcance un número específico de archivos. Esto se hace 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 de mínimo-máximo funcionan de manera análoga.

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

Pero, ¿qué archivo genera, por ejemplo, un estado «CRIT»? La opción Show files in service details te ayuda aquí: Si está activada, verás una lista de los archivos afectados en la vista de tabla del servicio.

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

Ahora bien, podría darse el caso de que el número de archivos sea correcto, pero que haya valores atípicos en cuanto a su tamaño, por ejemplo. Para este tipo de excepciones, puedes usar la opción «Additional rules for outliers»: Esto especifica, por ejemplo, que para archivos de menos de 5 megabytes se establezca el estado «WARN», y que para archivos de menos de 1 megabyte el servicio pase a «CRIT». Esto puede ser útil, por ejemplo, para recibir notificaciones de copias de seguridad que puedan estar defectuosas.

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 aSection Name en la regla del Plugin

Con esto también se completa la regla de servicio. Opcionalmente, también podrías limitar la evaluación a un único periodo de tiempo. Una vez completado, añade el nuevo servicio a los hosts afectados y activa los cambios como de costumbre.

3.3. mk_filestats en la monitorización

A continuación, podrás ver la evaluación desde la monitorización en las 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 se muestran mediante 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 mostrarán todos, lo que puede dar lugar a listas largas y a problemas de rendimiento y vista de tabla asociados.

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

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

La monitorización de archivos con fileinfo es básicamente igual que con mk_filestats, así que el procedimiento aquí es un poco más breve, pero vuelve a ser para grupos de archivos.

4.1. Configuración de la regla para el agente

Configuración de Agent bakery

CEE 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í solo tienes que definir la ruta del archivo en forma de plantilla de 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 independiente para cada archivo encontrado, lo que solo se puede evitar formando grupos.

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

Incluir todos los subdirectorios: Solo en hosts Windows, puedes usar el llamado «globstar» (dos asteriscos consecutivos) para incluir todos los archivos de todos los subdirectorios. Sin embargo, usa esta opción con precaución. Un «C:\**» descuidado da lugar a un número de servicios de 6 dígitos o a un timeout durante el descubrimiento de servicios.

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

Fecha adicional: En los servidores Linux tienes la posibilidad de filtrar por fecha: En el patrón de globbing, puedes usar la variable $DATE para incluir solo 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 solo se pueden especificar de forma explícita

Una especificación como /backups/mybackup_*_$DATE:%Y%m%d$ encontraría —a día 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, las marcas de tiempo y una comprobación diaria son útiles

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

Con esto se completa la configuración y puedes distribuir el Plugin, incluida su configuración, a través de Agent bakery.

Configuración manual

CRE En CRE Checkmk Community con fileinfo también debes configurar utilizando 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\agente Checkmk\check_mk.user.yml
fileinfo:
  enabled: yes
  path:
  - c:\myfiles\*
  - c:\myotherfiles\**
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Solo en hosts Windows, puedes usar el llamado «globstar» (dos asteriscos consecutivos) para incluir todos los archivos de todos los subdirectorios. Sin embargo, usa esta opción con precaución. Un archivo «C:\**» mal configurado puede provocar un número de servicios de 6 dígitos o un timeout durante el descubrimiento de servicios.

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, comenzando con el título de la sección fileinfo:

mysite-mywindowshost-agent_output.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

Esta es una salida de ejemplo que podría corresponder al archivo de configuración para un host Windows indicado anteriormente.

4.2. Configuración de la regla de servicio

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

Por otro lado, está disponible la potente función «Level conjunctions»: Esto te permite establecer una serie de condiciones para cada uno de los cuatro estados: «OK», «WARN», «CRIT» y «UNKNOWN». Por ejemplo, podrías 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 que desees con File Group Name en la caja Conditions.

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

Los patrones para los archivos que se deben incluir y que están excluidos no se especifican aquí de forma predeterminada mediante expresiones regulares, sino solo mediante globbing. Sin embargo, si antepones una tilde (~), también puedes usar expresiones regulares aquí.

Filtering of files in the group myfiles.
Los campos de entrada no siempre funcionan igual; la ayuda en línea siempre ofrece más detalles

Fecha adicional: De nuevo, es posible usar la variable $DATE. Como alternativa, también puedes usar $YESTERDAY para filtrar, lo 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 la monitorización

En la monitorización, la vista de un grupo fileinfo no difiere mucho de la de un grupo mk_filestats. Sin embargo, fileinfo siempre crea una lista explícita de 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 lo tanto activa el estado CRIT:

A fileinfo group in monitoring.
yourfile se muestra en 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 generar listas enormes

Esta misma lista muestra por qué es tan importante ser preciso con los filtros en fileinfo: Por ejemplo, si aquí se especificara C:\ sin ninguna restricción, habría posteriormente 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

Tanto si trabajas con mk_filestats como con fileinfo, la falta de archivos o incluso un exceso de entradas en la monitorización suelen deberse a filtros incorrectos. Hay dos causas principales para esto: un conflicto entre un patrón de 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 el globbing, * actúa como comodín para cualquier número de caracteres arbitrarios, y en una expresión regular, representa una o más apariciones del carácter que le precede. Para lograr una coincidencia con cualquier carácter en cualquier cantidad mediante una expresión regular, tendrías que utilizar .* en consecuencia.

6. Archivos y directorios

Como siempre, todas las rutas de los archivos del servidor Checkmk son relativas al directorio del site (p. ej., /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 para Python 3 con explicaciones

Servidor Checkmk

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

Plugin de agente para Python 2 con explicaciones

Host Linux

/etc/check_mk/filestats.cfg

Archivo de configuración: creado por la 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

Archivo de configuración: creado por el agente bakery o manualmente

Host Windows

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

Archivo de configuración: creado por el agente bakery

Host Windows

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

Archivo de configuración: creado manualmente


Last modified: Tue, 19 Aug 2025 12:03:40 GMT via commit f16bb5a82
En esta página