![]() |
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. Le basi del monitoraggio dei file
Con Checkmk puoi monitorare i file per numero, dimensione ed età, singolarmente o in gruppi. Questa funzione può essere utilizzata in molti modi diversi, ad esempio per monitorare il successo delle strategie di backup: qualcuno dei backup è più vecchio di X giorni? Puoi anche controllare i file server dell'azienda per vedere se gli utenti li usano impropriamente come spazio di archiviazione privato per i film, oppure tenere d'occhio i classici file di swap o i file volatili come i container.
La procedura di base è conforme allo standard Checkmk: nell'agente Checkmk viene installato un plug-in/configurazione che porta le informazioni desiderate sui file o sui gruppi di file all'interno del monitoraggio, dove vengono utilizzati i set di regole corrispondenti per determinare quali proprietà portano a quali stati.
Il filtraggio vero e proprio, cioè la determinazione dei dati che finiscono effettivamente nel monitoraggio, avviene nell'agente. Puoi usare i modelli di globbing per includere ricorsivamente i file di intere directory, ad esempio, o solo alcuni tipi di file o addirittura singoli file. Usando modelli di globbing come /myfiles/*.*
, potresti ritrovarti con elenchi di file enormemente grandi, anche se potresti essere interessato solo a file particolarmente vecchi o grandi.
Per questo motivo, attualmente esistono due agenti di monitoraggio e due set di regole associati: il più vecchio fileinfo è già integrato nell'agente e filtra solo in base al pattern globbing/percorso, mentre il più recente mk_filestats deve essere installato separatamente come plug-in e filtra in base ad altre proprietà.
Ci sono altre differenze tra mk_filestats e fileinfo, che spiegheremo di seguito. La differenza più importante, tuttavia, è che mk_filestats può monitorare solo host Linux, mentre fileinfo può monitorare anche host Windows. Per gli host Linux, di solito dovresti usare il più aggiornato mk_filestats.
2. Le differenze tra mk_filestats e fileinfo
Se vuoi vedere i set di regole delle due varianti fianco a fianco per maggiore chiarezza, digita semplicemente size age
nel menu Setup. Le regole per i singoli file e gruppi di servizi hanno nomi (in gran parte) identici, ma le regole di mk_filestats sono esplicitamente identificate come tali. Entrambe le varianti di regole di servizio sono disponibili anche come servizi forzati.

Le differenze tra le due varianti esistono a livello di agente e di servizio. Per cominciare, ecco le differenze teoriche di base. Troverai dettagli specifici più avanti nelle istruzioni per il plug-in dell'agente mk_filestats e per il fileinfo dell'agente.
Nel caso dell'agente, mk_filestats si distingue per due opzioni che mancano a fileinfo: innanzitutto, mk_filestats offre le opzioni di filtraggio aggiuntive già menzionate, ossia per dimensione, numero e nome del file, quest'ultimo sotto forma di espressioni regolari. Ad esempio, con un modello di globbing /myfiles/*
, puoi inserire nel monitoraggio solo i file di dimensioni superiori a 1 KB e che contengono backup
da qualche parte nel nome del file.
D'altra parte, con mk_filestats, i gruppi di file possono essere specificati direttamente nella configurazione del plug-in, semplicemente creando più filtri, ognuno dei quali finisce per essere una sezione a sé stante nell'output dell'agente e può essere successivamente indirizzato da regole tramite l'header sezione.
Per quanto riguarda le regole di monitoraggio del servizio, gli approcci utilizzati da mk_filestats e fileinfo differiscono maggiormente nei dettagli. Entrambi possono limitare le valutazioni a periodi di tempo specifici, ma solo fileinfo permette di specificare esplicitamente le finestre temporali giornaliere direttamente nella regola. Inoltre, esclusivamente fileinfo può configurare il cosiddetto conjunctions per i gruppi di file. Questo associa un set di regole per ogni stato, ad esempio: "Lo stato passa a CRIT non appena il file più vecchio del gruppo ha esattamente 5 ore di vita e il file più piccolo ha esattamente 8 megabyte"."A sua volta, per i gruppi di file, mk_filestats offre la possibilità di definire dei valori anomali: supponiamo che un gruppo di file debba andare in CRIT non appena le dimensioni del gruppo superano i 2 gigabyte. Tuttavia, se il gruppo non deve andare in CRIT quando un singolo file supera da solo 1 gigabyte (ad esempio un file temporaneo), puoi definirlo come un caso speciale, sovrascrivendo la regola del gruppo caso per caso.
Una panoramica delle differenze:
Caratteristica | mk_filestats | fileinfo |
---|---|---|
Sistemi operativi supportati |
Linux |
Linux e Windows |
Agente |
Plug-in dell'agente |
Incluso nell'agente |
Filtro |
Filtra direttamente nell'agente per i modelli di globbing e le proprietà |
Filtri nell'agente solo per i modelli di globbing |
Elenchi di file |
Fornisce elenchi di file snelli |
Fornisce elenchi di file talvolta verbosi |
Raggruppamento di file |
Raggruppa direttamente nell'agente |
Gruppi tramite un set di regole di monitoraggio separato |
Visualizzazione dei file |
Mostra i file nei dettagli del servizio facoltativamente |
Mostra sempre i file nei dettagli del servizio |
Valutazione dei file |
Può considerare gli outlier nei file |
Può considerare le relazioni tra i file |
Nei capitoli successivi vedrai le due funzioni singolarmente in esempi pratici - le differenze e le caratteristiche descritte dovrebbero diventare più chiare. mk_filestats stesso fornisce anche informazioni dettagliate tramite la chiamata filestats.py --help
.
3. Monitorare i file con mk_filestats (Linux)
L'esempio seguente mostra la procedura per i gruppi di file. Per i singoli file la procedura è identica, semplicemente ci sono meno opzioni. Supponiamo che tu voglia monitorare un gruppo di un certo numero di file di backup (mybackup_01.zip
ecc.) e che questi file non debbano scendere al di sotto di una dimensione minima, allora puoi procedere come segue:
3.1. Configurazione della regola per il plug-in dell'agente
Configurazione tramite l'agent bakery
Nelle edizioni commerciali, per prima cosa chiama la regola per il plug-in dell'agente Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files - mk_filestats (Linux). Alla voce Section name assegna un nome arbitrario, che apparirà successivamente nell'output dell'agente come sezione indipendente.
In Globbing pattern for input files specifichi quali file devono essere monitorati. Puoi usare modelli di globbing, cioè specifiche di percorso dei file con segnaposto. A questo punto, vogliamo usare una specifica di percorso assoluta che includa tutti i file nella cartella specificata.
Un ulteriore filtro viene effettuato dalle due opzioni successive: Filter files by matching regular expression include i file secondo un modello specificato, in questo caso i file con my
da qualche parte nel loro nome, eFilter files by not matching regular expression che esclude i file, in questo caso quelli che terminano con tmp
.

Questo completa la configurazione e puoi distribuire il plug-in dell'agente con la sua configurazione tramite l'agent bakery.
Configurazione manuale
In Checkmk Raw puoi configurare il plug-in come di consueto utilizzando un file di testo: come utente dell'istanza Checkmk puoi trovare un esempio di configurazione nel file share/check_mk/agents/cfg_examples/filestats.cfg
. Una configurazione secondo le specifiche di cui sopra si presenta come segue:
[myfiles]
input_patterns: /media/evo/myfiles/
filter_regex: .*my.*
filter_regex_inverse: tmp$
Questo completa la configurazione e puoi installare il plug-in dell'agente manualmente.
Dati nell'output dell'agente
Troverai i risultati della tua configurazione sotto forma di dati grezzi nell'output dell'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. Configurazione delle regole del servizio
L'agente di monitoraggio ha ora accesso ai dati dei file tramite l'agente. Per la valutazione, chiama la regola Setup > Services > Service monitoring rules > Size, age and count of file groups (mk_filestats). Nel nostro esempio, vogliamo essere avvisati non appena viene superato o non raggiunto un determinato numero di file. Questo avviene tramite le opzioni Minimal file count e Maximal file count, che servono a impostare i limiti superiore e inferiore. Tutte le altre opzioni minimo-massimo funzionano in modo analogo.

Ma quale file genera, ad esempio, uno stato CRIT? L'opzione Show files in service details ti aiuta in questo caso: se è attivata, vedrai tutti i file interessati elencati nella visualizzazione dei dettagli del servizio.

A questo punto potrebbe accadere che sia presente il numero corretto di file, ma che ci siano dei valori anomali, ad esempio per quanto riguarda le loro dimensioni. Per queste eccezioni puoi utilizzare l'opzione Additional rules for outliers: questa specifica, ad esempio, che per i file al di sotto dei 5 megabyte viene impostato lo stato WARN, mentre al di sotto di 1 megabyte il servizio passa a CRIT. Questo può essere utile per essere avvisati, ad esempio, di backup difettosi.

Nel box Conditions, puoi ora specificare che la regola deve essere applicata esclusivamente al gruppo di file myfiles
configurato nel plug-in dell'agente: per farlo, inserisci il nome che hai assegnato nel plug-in dell'agente alla voce Section name come File Group Name.

In questo modo si completa anche la regola del servizio. Puoi anche limitare la valutazione a un singolo periodo di tempo. Una volta completato, aggiungi il nuovo servizio agli host interessati e attiva le modifiche come di consueto.
3.3. mk_filestats nel monitoraggio
A questo punto potrai vedere la valutazione del monitoraggio negli elenchi e, naturalmente, nei dettagli. Oltre ai parametri del servizio, ora potrai vedere anche i file responsabili dello stato WARN o CRIT.

Tuttavia, si consiglia di fare attenzione all'opzione Mostra i file nei dettagli del servizio: se molti file sono stati responsabili di un cambiamento di stato, verranno tutti elencati, il che può portare a lunghi elenchi e a problemi di prestazioni e visualizzazione associati.

4. Monitoraggio dei file con fileinfo (Linux, Windows)
Il monitoraggio dei file con fileinfo è sostanzialmente uguale a quello di mk_filestats, quindi la procedura qui è un po' più breve, ma riguarda ancora una volta i gruppi di file.
4.1. Configurazione della regola per l'agente
Configurazione dell'agent bakery
La configurazione dell'agente nelle edizioni commerciali su Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files (Linux, Windows) è molto più semplice: qui si definisce solo il percorso dei file sotto forma di un modulo di globbing. Questo solleva anche il problema del trasferimento di elenchi di file estremamente lunghi, che possono rallentare notevolmente il monitoraggio. Inoltre, per default viene creato un servizio separato per ogni file trovato, cosa che può essere evitata solo formando dei moduli.

Includi tutte le sottodirectory:solo sugli host Windows, puoi usare la cosiddetta globstar (due asterischi consecutivi) per includere tutti i file in tutte le sottodirectory. Tuttavia, usa questa opzione con cautela: un'incauta C:\**
porta a un numero di servizi a 6 cifre o a un timeout durante la ricerca.

Data aggiuntiva:sugli host Linux hai la possibilità di filtrare in base alla data: nel modello di globbing, puoi utilizzare la variabile $DATE
per includere solo i file il cui nome contiene la data corrente. Il formato di questa variabile è lo stesso del programma Linux date
.

Una specifica come /backups/mybackup_*_$DATE:%Y%m%d$
troverebbe di conseguenza - a partire da oggi, 22/10/2021 - file come mybackup_01_20211022
e mybackup_foobar_20211022
:

Ulteriori informazioni possono essere trovate direttamente nella pagina della regola e nel relativo aiuto inline.
La configurazione è completata e puoi deployare il plug-in dell'agente, compresa la sua configurazione, tramite l'agent bakery.
Configurazione manuale
In Checkmk Raw con fileinfo è necessario configurare anche i file, che variano a seconda del sistema operativo:
Linux: il file di configurazione è fileinfo.cfg
:
C:\myfiles\*
/myfiles/*
/media/evo/test_$DATE:%Y%m%d$
Windows: il file di configurazione è check_mk.user.yml
:
fileinfo:
enabled: yes
path:
- c:\myfiles\*
- c:\myotherfiles\**
Solo sugli host Windows, puoi utilizzare la cosiddetta globstar (due asterischi consecutivi) per includere tutti i file in tutte le sottodirectory. Tuttavia, usa questa opzione con cautela: un'incauta C:\**
porta a un numero di servizi a 6 cifre o a un timeout durante la ricerca.
Dati nell'output dell'agente
Troverai i risultati della tua configurazione sotto forma di dati grezzi nell'output dell'agente, a partire dall'header sezioni 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
Questo è un esempio di output che potrebbe corrispondere al file di configurazione per un host Windows riportato sopra.
4.2. Configurazione delle regole del servizio
Nel secondo passo, viene configurata nuovamente la regola del servizio Setup > Services > Service monitoring rules > Size, age and count of file groups. Le opzioni minimo-massimo corrispondono a quelle di mk_filestats, ma le opzioni per la visualizzazione dei nomi del servizio interessati e per gli outlier non sono presenti in questo caso. Ci sono due opzioni aggiuntive: innanzitutto, puoi inserire direttamente un periodo di tempo tramite Add time range- al di fuori di questo periodo di tempo il servizio avrà sempre uno stato di OK.
D'altra parte, è disponibile la potente funzione Level conjunctions che ti permette di impostare una serie di condizioni per ciascuno dei quattro stati OK, WARN, CRIT e SCONOSCIUTO. Ad esempio, puoi specificare che il servizio passa a CRIT se...
ci sono esattamente 7 file
il file più piccolo è inferiore a 10 megabyte,
il file più vecchio ha meno di 5 giorni

E ancora, puoi limitare questa regola al gruppo myfiles
desiderato con File Group Name nel box Conditions.
A differenza di mk_filestats, la formazione del gruppo avviene solo nel monitoraggio tramite la regola di servizio Setup > Services > Service monitoring rules > File grouping patterns. Per garantire l'assegnazione, inserisci anche il gruppo myfiles
nella casella Group name.
Gli schemi per i file da includere ed escludere non sono specificati di default tramite espressioni regolari, ma solo tramite globbing. Tuttavia, se anteponi una tilde (~
), puoi utilizzare le espressioni regolari anche in questo caso.

Data aggiuntiva: anche in questo caso è possibile utilizzare la variabile $DATE
. In alternativa puoi anche utilizzare $YESTERDAY
per il filtraggio, che semplicemente sottrae un giorno da $DATE
. Come sempre, puoi trovare maggiori informazioni in merito nell'aiuto inline.
4.3. fileinfo nel monitoraggio
Nel monitoraggio, la visualizzazione di un gruppo fileinfo non è molto diversa da quella di un gruppo mk_filestats. Tuttavia, fileinfo elenca sempre tutti i file interessati in modo esplicito, indipendentemente dal fatto che siano o meno responsabili di un cambiamento di stato. Nell'esempio puoi vedere i due file yourfile
con 0 megabyte, che non ha alcun effetto sullo stato, e yourfile_2.exe
con i suoi quasi 11 megabyte, che quindi fa scattare lo stato CRIT:

yourfile
viene visualizzato da fileinfo, anche se non è responsabile della modifica dello stato.Tutti i file consegnati al monitoraggio da fileinfo e non assegnati a un gruppo rimangono come servizi individuali:

Questo elenco dimostra perché è così importante essere precisi nei filtri di fileinfo: ad esempio, se C:\
fosse specificato qui senza alcuna restrizione, ci sarebbero diverse centinaia di migliaia di servizi individuali nel monitoraggio.
5. Risoluzione dei problemi
5.1. Nessun file o troppi file nel monitoraggio
Indipendentemente dal fatto che tu lavori con mk_filestats o fileinfo, i file mancanti o addirittura troppe voci nel monitoraggio sono spesso dovuti a filtri errati. Le cause principali sono due: un conflitto tra un modello di globbing e un'espressione regolare oppure una configurazione errata. Ad esempio, l'asterisco si comporta in modo diverso nelle due varianti: nel globbing, *
funge da segnaposto per un numero qualsiasi di caratteri arbitrari, mentre in un'espressione regolare rappresenta una o più occorrenze del carattere che lo precede. Per abbinare qualsiasi carattere in qualsiasi quantità tramite una regex, dovrai lavorare di conseguenza con .*
.
6. File e directory
Come sempre, tutti i percorsi dei file del server Checkmk sono relativi alla directory del sito (es. /omd/sites/mysite
).
6.1. mk_filestats
Posizione del file | Percorso del file | Contenuto |
---|---|---|
Server Checkmk |
|
File di configurazione di esempio |
Server Checkmk-Server |
|
Plug-in dell'agente per Python 3, con spiegazioni incluse |
Server Checkmk-Server |
|
Plug-in dell'agente in Python 2 con spiegazioni |
Host Linux |
|
File di configurazione - creato dall'agent bakery o manualmente |
6.2. fileinfo
Posizione | Percorso del file | Contenuto |
---|---|---|
Server Checkmk |
|
File di configurazione di esempio |
Host Linux |
|
File di configurazione - creato dall'agent bakery o manualmente |
Host Windows |
|
File di configurazione - creato dall'agent bakery |
Host Windows |
|
File di configurazione - creato manualmente |