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. Les bases de la supervision des fichiers
Avec Checkmk, vous pouvez effectuer la supervision du nombre, de la taille et de l'âge des fichiers, individuellement ou par groupes. Cette fonction peut être utilisée de nombreuses façons différentes, par exemple pour effectuer la supervision de l'efficacité des stratégies de sauvegarde : Certaines sauvegardes datent-elles de plus de X jours ? L'une des sauvegardes est-elle d'une taille suspecte, trop grande ou trop petite ? Vous pouvez également checker les serveurs de fichiers à l'échelle de l'entreprise pour voir si des utilisateurs les utilisent à mauvais escient comme espace de stockage privé pour des films, ou garder un œil sur les fichiers d'échange classiques ou les fichiers volatils tels que les conteneurs.
La procédure de base est conforme à la norme Checkmk : Un plugin/une configuration est installé(e) dans l’agent, ce qui permet d’intégrer les informations souhaitées sur les fichiers ou les groupes de fichiers dans la supervision. À ce stade, des jeux de règles correspondants sont utilisés pour déterminer quelles propriétés conduisent à quels statuts.
Le filtrage proprement dit, c'est-à-dire la détermination des données qui aboutissent effectivement dans la supervision, s'effectue au niveau de l'agent.
Vous pouvez utiliser des modèles de globbing pour inclure de manière récursive les fichiers de répertoires entiers, par exemple, ou uniquement certains types de fichiers, voire des fichiers individuels.
En utilisant des modèles de globbing tels que /myfiles/*.*, vous risquez d'obtenir des listes de fichiers extrêmement volumineuses, alors que vous ne vous intéressez peut-être qu'aux fichiers particulièrement anciens ou volumineux.
De ce fait, il existe actuellement deux agents et deux jeux de règles de supervision associés :
L'ancien fileinfo est déjà intégré à l'agent et filtre uniquement par modèle de globbing/chemin d'accès, tandis que le plus récent mk_filestats doit être installé séparément en tant que plugin et filtre selon d'autres propriétés.
Il existe d'autres différences entre mk_filestats et fileinfo, que nous expliquerons ci-dessous. La différence la plus importante réside toutefois dans le fait que mk_filestats ne peut effectuer la supervision que sur les ordinateurs hôtes Linux, tandis que fileinfo peut également effectuer la supervision sur les ordinateurs hôtes Windows. Pour les ordinateurs hôtes Linux, vous devriez généralement utiliser mk_filestats, qui est à jour.
2. Les différences entre mk_filestats et fileinfo
Si vous souhaitez consulter les jeux de règles des deux variantes côte à côte pour plus de clarté, il vous suffit de saisir « size age » dans le menu « Setup ».
Les règles relatives aux fichiers individuels et aux groupes portent (pour la plupart) des noms identiques, mais les règles mk_filestats sont explicitement identifiées comme telles.
Les deux variantes de règles de service sont également disponibles en tant que services appliqués.

Des différences entre les deux variantes existent au niveau de l’agent et au niveau de service. Pour commencer, voici les différences théoriques de base. Vous trouverez des détails spécifiques plus loin dans les instructions relatives au plugin d’agent mk_filestats ainsi qu’à fileinfo de l’agent.
Dans le cas de l’agent, mk_filestats se distingue par deux options dont fileinfo est dépourvu :
Tout d’abord, mk_filestats offre les options de filtrage supplémentaires déjà mentionnées, à savoir par taille de fichier, nombre et nom, ce dernier sous forme d’expressions régulières.
Par exemple, avec un modèle de globbing de type /myfiles/*, vous pourriez n'inclure dans la supervision que les fichiers dont la taille est supérieure à 1 Ko et qui contiennent backup quelque part dans le nom de fichier.
D'autre part, avec mk_filestats, les groupes de fichiers sont également spécifiés directement dans la configuration du plugin, simplement en créant plusieurs filtres, dont chacun se retrouve ensuite sous forme de section distincte dans la sortie de l'agent et qui peut ensuite être référencé par des règles via l'en-tête de section.
En ce qui concerne les règles de supervision des services, les approches utilisées par mk_filestats et fileinfo diffèrent davantage dans les détails. Les deux permettent de limiter les évaluations à des périodes de temps spécifiques, mais seul fileinfo autorise la spécification explicite de plages horaires quotidiennes directement dans la règle. De plus, fileinfo est le seul à pouvoir configurer ce que l'on appelle des « conjunctions » pour les groupes de fichiers. Cela associe un ensemble de conditions à chaque statut, par exemple : « Le statut passe à CRIT dès que le fichier le plus ancien du groupe a exactement 5 heures et que le fichier le plus petit a exactement 8 mégaoctets. » À son tour, pour les groupes de fichiers, mk_filestats offre la possibilité de définir des cas particuliers : Supposons qu’un groupe de fichiers doive passer à « CRIT » dès que la taille du groupe dépasse 2 gigaoctets. Cependant, si le groupe ne doit pas passer à « CRIT » lorsqu’un seul fichier dépasse à lui seul 1 gigaoctet (comme un fichier temporaire), vous pouvez définir cela comme un cas particulier, en remplaçant la règle du groupe au cas par cas.
Aperçu des différences :
| Fonctionnalité | mk_filestats | fileinfo |
|---|---|---|
Systèmes d'exploitation pris en charge |
Linux |
Linux et Windows |
Agent |
Plugin d'agent |
Inclus dans l'agent |
Filtre |
Filtres directement dans l'agent pour les modèles de globbing et les propriétés |
Filtres dans l'agent uniquement pour les modèles de globbing |
Listes de fichiers |
Fournit des listes de fichiers allégées |
Fournit des listes de fichiers parfois détaillées |
Regroupement de fichiers |
Regroupe directement dans l'agent |
Regroupe via un jeu de règles de supervision distinct |
Affichage des fichiers |
Afficher les fichiers dans les détails du service (facultatif) |
Toujours afficher les fichiers dans les détails du service |
Évaluation des fichiers |
Possibilité de prendre en compte les valeurs aberrantes dans les fichiers |
Peut prendre en compte les relations entre les fichiers |
Dans les chapitres suivants, vous découvrirez ces deux fonctions individuellement à travers des exemples pratiques ; les différences et les fonctionnalités décrites devraient alors apparaître plus clairement.
mk_filestats fournit également des informations détaillées via l'appel filestats.py --help.
3. Supervision des fichiers avec mk_filestats (Linux)
L'exemple suivant illustre la procédure pour des groupes de fichiers.
Pour les fichiers individuels, la procédure est identique, mais les options sont moins nombreuses.
Supposons que vous souhaitiez effectuer la supervision d'un groupe d'un certain nombre de fichiers de sauvegarde (mybackup_01.zip, etc.) et que ces fichiers ne doivent pas descendre en dessous d'une taille minimale ; vous pouvez alors procéder comme suit :
3.1. Configuration de la règle pour le plugin d'agent
Configuration via la boulangerie d’agents
Dans les éditions commerciales,
appelez d'abord la règle pour le plugin d'agent Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files - mk_filestats (Linux).
Sous « Section name », attribuez un nom arbitraire, qui apparaîtra plus tard dans la sortie de l'agent sous forme de section indépendante.
Sous « Globbing pattern for input files », vous spécifiez ensuite les fichiers à soumettre à la supervision. Vous pouvez utiliser des modèles de globbing, c'est-à-dire des spécifications de chemin d'accès aux fichiers comportant des caractères de remplacement. À ce stade, nous souhaitons utiliser une spécification de chemin d'accès absolu qui inclut tous les fichiers du dossier spécifié.
Un filtrage supplémentaire est effectué par les deux options suivantes : « Filter files by matching regular expression » inclut les fichiers selon un modèle spécifié, dans cet exemple les fichiers dont le nom contient « my » quelque part, et
« Filter files by not matching regular expression », qui exclut ensuite les fichiers, ici ceux se terminant par « tmp ».

La configuration est maintenant terminée et vous pouvez distribuer le plugin, y compris sa configuration, via la boulangerie d’agents.
Configuration manuelle
Dans
Checkmk Community, vous configurez le plugin comme d’habitude à l’aide d’un fichier texte :
en tant qu’utilisateur de l’instance, vous trouverez un exemple de configuration dans le fichier share/check_mk/agents/cfg_examples/filestats.cfg.
Une configuration conforme aux spécifications ci-dessus se présente alors comme suit :
[myfiles]
input_patterns: /media/evo/myfiles/
filter_regex: .*my.*
filter_regex_inverse: tmp$La configuration est maintenant terminée et vous pouvez installer le plugin d'agent manuellement.
Données dans la sortie de l'agent
Vous trouverez ensuite le résultat de votre configuration sous forme de données brutes dans la sortie de l'agent :
<<<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. Configuration de la règle de service
La supervision a désormais accès aux données des fichiers via l'agent de supervision. Pour l'évaluation, appelez la règle Setup > Services > Service monitoring rules > Size, age and count of file groups (mk_filestats). Dans notre exemple, nous souhaitons être avertis dès qu'un nombre spécifié de fichiers est dépassé ou n'est pas atteint. Cela s'effectue à l'aide des options Minimal file count et Maximal file count, qui servent à définir les limites supérieure et inférieure. Toutes les autres options minimum-maximum fonctionnent de manière analogue.

Mais quel fichier génère alors, par exemple, un statut « CRIT » ? L'option Show files in service details vous aide ici : Si celle-ci est activée, vous verrez une liste des fichiers concernés dans la vue de la table du service.

Il se peut que le nombre de fichiers soit correct, mais qu’il y ait également des valeurs aberrantes, par exemple en ce qui concerne leur taille. Pour de telles exceptions, vous pouvez utiliser l’option « Additional rules for outliers » : Cela spécifie, par exemple, que pour les fichiers de moins de 5 mégaoctets, le statut « WARN » est défini, et que pour ceux de moins de 1 mégaoctet, le service passe à « CRIT ». Cela peut être utile pour être averti de sauvegardes potentiellement défectueuses, par exemple.

Dans la case « Conditions », vous pouvez désormais spécifier que la règle s'applique exclusivement au groupe de fichiers « myfiles » configuré dans le plugin d'agent :
Pour ce faire, saisissez le nom que vous avez attribué dans le plugin d'agent sous « Section name » comme « File Group Name ».

Cela achève également la règle de service. Vous pouvez également, si vous le souhaitez, limiter l'évaluation à une seule période de temps. Une fois cette opération terminée, ajoutez le nouveau service aux ordinateurs hôtes concernés et activez les modifications comme d'habitude.
3.3. mk_filestats dans la supervision
Vous pouvez ensuite consulter l'évaluation à partir de la supervision dans les listes et, bien sûr, dans les détails. En plus des paramètres du service, vous pourrez désormais voir les fichiers responsables des statuts « WARN » ou « CRIT ».

Toutefois, la prudence est de mise avec l'option Afficher les fichiers dans les détails du service : Si de nombreux fichiers ont été à l'origine d'un changement de statut, ils seront tous répertoriés, ce qui peut entraîner des listes longues et des problèmes de performances et d'affichage associés.

4. Supervision des fichiers avec fileinfo (Linux, Windows)
La supervision des fichiers avec fileinfo est fondamentalement identique à celle avec mk_filestats ; la procédure est donc un peu raccourcie ici, mais elle s'applique une fois encore à des groupes de fichiers.
4.1. Configuration de la règle pour l'agent
Configuration de la boulangerie d’agents
La configuration de l'agent dans les éditions commerciales sous Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files (Linux, Windows) est beaucoup plus simple :
Ici, vous définissez uniquement le chemin d'accès au fichier sous la forme d'un modèle de globbing.
Cela pose également le problème du transfert de listes de fichiers extrêmement longues, ce qui peut ralentir sensiblement la supervision. De plus, un service distinct est créé par défaut pour chaque fichier trouvé, ce qui ne peut être évité qu'en formant des groupes de service.

Inclure tous les sous-répertoires : Sur les ordinateurs hôtes Windows uniquement, vous pouvez utiliser ce que l'on appelle le « globstar » (deux astérisques consécutifs) pour inclure tous les fichiers de tous les sous-répertoires. Cependant, utilisez cette option avec prudence. Une configuration imprudente entraîne soit un nombre de services à six chiffres, soit un timeout lors de l'identification du service.

Date supplémentaire :
Sur les ordinateurs hôtes Linux, vous avez la possibilité de filtrer par date :
Dans le modèle de globbing, vous pouvez utiliser la variable d'$DATE pour n'inclure que les fichiers dont les noms contiennent la date du jour.
Le format de cette variable est le même que celui du programme Linux date.

Une spécification telle que /backups/mybackup_*_$DATE:%Y%m%d$ permettrait donc — à la date d'aujourd'hui, le 22/10/2021 — de trouver des fichiers tels que mybackup_01_20211022 et mybackup_foobar_20211022 :

Vous trouverez plus d’informations directement sur la page de la règle ainsi que dans l’aide en ligne correspondante.
La configuration est maintenant terminée et vous pouvez déployer le plugin, y compris sa configuration, via la boulangerie d’agents.
Configuration manuelle
Dans
Checkmk Community avec fileinfo, vous devez également effectuer la configuration à l'aide de fichiers, qui varient en fonction du système d'exploitation :
Linux : le fichier de configuration est fileinfo.cfg :
C:\myfiles\*
/myfiles/*
/media/evo/test_$DATE:%Y%m%d$Windows : le fichier de configuration est check_mk.user.yml :
Sur les ordinateurs hôtes Windows uniquement, vous pouvez utiliser ce que l'on appelle le « globstar » (deux astérisques consécutifs) pour inclure tous les fichiers de tous les sous-répertoires.
Cependant, utilisez cette option avec prudence.
Une C:\** imprudente entraîne soit un nombre de services à 6 chiffres, soit un timeout pendant l'identification du service.
Données dans la sortie de l'agent
Vous trouverez ensuite le résultat de votre configuration sous forme de données brutes dans la sortie de l'agent, en commençant par l'en-tête de section 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|1743070321Voici un exemple de sortie qui pourrait correspondre au fichier de configuration pour un ordinateur hôte Windows indiqué ci-dessus.
4.2. Configuration de la règle de service
Dans un deuxième temps, la règle de service Setup > Services > Service monitoring rules > Size, age and count of file groups est à nouveau configurée. Les options minimum-maximum correspondent à celles de mk_filestats, mais les options permettant d’afficher les noms de fichiers concernés dans les détails du service et celles relatives aux valeurs aberrantes ne sont pas présentes ici. Deux options supplémentaires sont disponibles à cet effet : Tout d’abord, vous pouvez saisir directement une période de temps via Add time range — en dehors de cette période de temps, le service aura toujours le statut « OK ».
D'autre part, la puissante fonctionnalité « Level conjunctions » est disponible : Cela vous permet de définir une série de conditions pour chacun des quatre états : « OK », « WARN », « CRIT » et « UNKNOWN ». Par exemple, vous pourriez spécifier que le service passe à « CRIT » si…
il y a exactement 7 fichiers
le fichier le plus petit fait moins de 10 mégaoctets,
le fichier le plus ancien date de moins de 5 jours

Et là encore, vous pouvez limiter cette règle au groupe d’myfiless souhaité en saisissant File Group Name dans la case « Conditions ».
Contrairement à mk_filestats, la formation du groupe n’a lieu que lors de la supervision via la règle de service Setup > Services > Service monitoring rules > File grouping patterns.
Vous garantissez l’affectation en saisissant également l’myfiles du groupe sous Group name.
Les modèles pour les fichiers à inclure et à exclure ne sont pas spécifiés ici par défaut via des expressions régulières, mais uniquement via le globbing.
Toutefois, si vous ajoutez un tilde (~) au début, vous pouvez également utiliser des expressions régulières ici.

Date supplémentaire : là encore, l'utilisation de la variable $DATE est possible. Vous pouvez également utiliser $YESTERDAY pour le filtrage, ce qui soustrait simplement un jour de $DATE.
Comme toujours, vous trouverez plus d'informations à ce sujet dans l'aide en ligne.
4.3. fileinfo dans la supervision
Dans la supervision, la vue du groupe fileinfo n'est pas très différente de celle du groupe mk_filestats.
Cependant, fileinfo répertorie toujours explicitement tous les fichiers concernés, qu'ils soient responsables d'un changement d'état ou non.
Dans l'exemple ci-dessous, vous pouvez voir les deux fichiers yourfile avec 0 mégaoctet, qui n'a aucun effet sur l'état, et yourfile_2.exe avec ses près de 11 mégaoctets, qui déclenche ainsi l'état CRIT :

yourfile
est affiché par fileinfo, bien qu’il ne soit pas à l’origine du changement de statutTous les fichiers transmis à la supervision par fileinfo et qui ne sont pas affectés à un groupe de service restent des services individuels :

Cette liste même montre pourquoi il est si important d’être précis quant aux filtres dans fileinfo :
Par exemple, si C:\ était spécifié ici sans aucune restriction, il y aurait par la suite plusieurs centaines de milliers de services individuels dans la supervision.
5. Dépannage
5.1. Aucun fichier ou trop de fichiers dans la supervision
Que vous utilisiez mk_filestats ou fileinfo, l'absence de fichiers ou même un nombre trop élevé d'entrées dans la supervision est souvent due à des filtres incorrects.
Il existe deux causes principales à cela : un conflit entre un modèle de globbing et une expression régulière, ou une configuration incorrecte.
Par exemple, l'astérisque se comporte différemment dans les deux variantes :
En globbing, * sert de caractère de remplacement pour un nombre quelconque de caractères arbitraires, tandis que dans une expression régulière, il représente une ou plusieurs occurrences du caractère qui le précède. Afin de saisir n'importe quel caractère en quantité illimitée via une expression régulière, vous devrez utiliser .* en conséquence.
6. Fichiers et répertoires
Comme toujours, tous les chemins d'accès aux fichiers du serveur Checkmk sont relatifs au répertoire d'instances (par exemple /omd/sites/mysite).
6.1. mk_filestats
| Emplacement | Chemin d'accès | Contenu |
|---|---|---|
Serveur Checkmk |
|
Exemple de fichier de configuration |
Serveur Checkmk |
|
Plugin d'agent Python 3 avec explications |
Serveur Checkmk |
|
Plugin d'agent Python 2 avec explications |
Ordinateur hôte Linux |
|
Fichier de configuration – créé par la boulangerie d’agents ou manuellement |
6.2. fileinfo
| Emplacement | Chemin d'accès au fichier | Contenu |
|---|---|---|
serveur Checkmk |
|
Exemple de fichier de configuration |
Ordinateur hôte Linux |
|
Fichier de configuration – créé par la boulangerie d’agents ou manuellement |
Ordinateur hôte Windows |
|
Fichier de configuration - créé par la boulangerie d’agents |
Ordinateur hôte Windows |
|
Fichier de configuration - créé manuellement |
