Gli strumenti di log management permettono di individuare facilmente trend, minacce e attività inusuali che interessano i sistemi al cuore delle aziende, indipendentemente dai sistemi operativi utilizzati.
La maggior parte delle volte in cui i programmi software vengono avviati o si verificano errori nei sistemi, si generano messaggi, stringhe di caratteri contigui (token), righe di calcoli (count) e altri valori che confluiscono in log file. I software di log management riescono a penetrare in questi file, identificare i dati, e analizzare più log file distinti per individuare e tracciare dei trend, in modo da attribuire un significato alle informazioni. Gli stessi software, inoltre, si preoccupano di generare, trasmettere, analizzare e archiviare grandi moli (chunk) di dati, anche per poterli inviare a strumenti di terze parti.
Ecco i tool nativi di Linux
Come accedere e muoversi fra i software di log management? Iniziamo da due tool di logging presenti in modo nativo nei sistemi Linux: systemd e rsyslog.
Entrambi hanno diversi pregi, incluse la selezione delle informazioni che evidenziano e la qualità della loro formattazione. Va anche ricordato che in Linux le query ai file di database sono registrate a un livello granulare, il che facilita ulteriormente la navigazione nei file di logging.
Systemd permette di accedere a tutti i possibili messaggi scritti nel sistema e aiuta a trovare i log generati da journalctl, un comando Linux per effettuare query sul journal di systemd, un file centralizzato creato da journald, un daemon (demone, programma eseguito in background) che registra i messaggi provenienti dai boot di sistema, dal kernel e dalle applicazioni. Un vantaggio di systemd e quello che i suoi comandi sono identici su tutte le distribuzioni di Linux.
Systemd è il metodo più comune di logging in Linux, ma rsyslog offre ulteriori funzionalità. Una è quella di essere in grado di scrivere messaggi log verso uno specifico database. In questo modo è possibile configurare i log di rsyslog in modo tale da essere inviati a un server principale per consentire un accesso centralizzato ad essi.
Quali sono altri log management tool
Oltre ai log management tool presenti nelle distribuzioni di Linux ci sono alcune altre opzioni da tenere in considerazione se interessati a un efficace log file management. Systemd e rsyslog, peraltro, richiedono agli utenti di entrare in profondità di ciascun log file per trovare le informazioni che interessano maggiormente, e pertanto sono più indicati per attività di log file management svolte in modalità batch (cioè programmata per essere svolta in maniera automatica ma sequenziale). Pertanto, questi due tool non sempre garantiscono quella user experience che chi necessita di individuare trend o effettuare analisi si attenderebbe.
Ecco quindi un’altra alternativa: Graylog. Si tratta di uno strumento compatibile con i sistemi di logging di device Linux e Windows. Inoltre fornisce una funzionalità di configuration management centralizzato per data collector (strumenti che raccolgono dati di log all’interno di specifici server, o host) di terze parti quali Beats, Fluentd e NXlog.
Essendo installato su un web server, Graylog consente di avere un’unica interfaccia attraverso la quale monitorare diverse fonti di log information. Inoltre può essere configurato per inviare a un utente alert di alto livello circa l’attività di un data center. Il log file è basato su Linux e fornisce panoramiche giornaliere. Una volta filtrati gli eventi di log ordinari, il sistema può anche inviare via email messaggi con i riassunti delle informazioni più importanti e segnalazioni di potenziali anomalie. Per accedere direttamente a questi digest è possibile utilizzare un utente Linux locale (local user), ma è consigliabile utilizzare un user account esterno.
Una volta scelti i log management tool, è necessario stabilire i livelli di granularità delle loro funzionalità. Per i programmi come i log file è possibile configurare diversi livelli di reporting, dai digest giornalieri agli aggiornamenti più ansiogeni, fino al tracciamento dei trend relativa per ciascuna postazione di lavoro. Dall’interfaccia web di Graylog si possono filtrare le fonti dei log ed espandere le funzionalità della soluzione attingendo alle proposte presenti sul Graylog marketplace.
Come implementare best practice di log management
Le buone prassi costituiscono un aspetto essenziale per un efficace log management e la migliore performance a lungo termine per un data center. Le best practice sono necessarie anche perché non esiste un approccio standardizzato alla creazione dei log file. Questa assenza può essere fonte di confusione nel momento in cui si accede da diversi tipi di file.
Considerati i metodi di raccolta utilizzati è possibile ottimizzare le informazioni presenti in un log file. Systemd-journald produce messaggi log file recanti un proprio formato di marcatura temporale (timestamp). Se si utilizza un sistema operativo diverso da Linux, si può essere utile prendere in considerazione Apache Log4j for Java, una libreria Java che permette di costruire un sistema di logging multipiattaforma. Per l’integrazione di sistemi legacy occorre assicurarsi che i tool selezionati siano compatibili con quelli di aggregazione e analisi, e che trasmettano dati log utili.
Un’altra best practice è evitare di aggiungere campi di dati insoliti nei log. Questo complica l’aggregazione dei log e rende più difficile individuare i dati simili attraverso diversi gruppi di log file. Se si desidera raggruppare i dati, è necessario aggiungere uno schema all’interno di ciascun tool di log management in maniera da evitare confusioni di dati.
Infine, anche la sicurezza deve essere considerata parte delle best practice, in particolare oggi, che è cresciuta l’attenzione intorno alla privacy delle informazioni sensibili. Finché è possibile, bisognerebbe evitare che queste informazioni siano incluse nei log file. Se lo sono, è bene che siano criptate e che si prevedano meccanismi per eliminarle dai log dopo un determinato periodo di tempo.