OMS Log Analytics: Raccogliere i Log Custom

In alcuni scenari può sorgere l’esigenza di collezionare log provenienti da applicazioni che non utilizzano i tradizionali metodi come l’Event Log in ambiente Windows oppure Syslog per i sistemi Linux per scrivere le informazioni ed eventuali errori. Log Analytics ci consente di collezionare anche gli eventi presenti in file di testo sia su sistemi Windows che sulle diverse distribuzione Linux supportate.

2016_11_09_loganalytics-01
Figura 1 – Il processo di raccolta dei log custom

Le nuove entry scritte nel custom log vengono collezionate da Log Analytics ogni 5 minuti. L’agente è inoltre in grado di memorizzare qual è l’ultima entry collezionata in modo tale che anche se l’agente dovesse fermarsi per un certo periodo di tempo nessun dato viene perso, ma quando torna in esecuzione riprende l’elaborazione dal punto dove si era fermato.

Per poter collezionare i file di log utilizzando Log Analytics devono essere rispettati i seguenti requisiti:

  • Il log deve avere una singola entry per ogni riga del file oppure ogni entry deve iniziare con un timestamp che rispetti uno dei seguenti formati:
  • YYYY-MM-DD HH:MM:SS
  • M/D/YYYY HH:MM:SS AM/PM
  • Mon DD,YYYY HH:MM:SS
  • yyMMdd HH:mm:ss
  • ddMMyy HH:mm:ss
  • MMM d hh:mm:ss
  • Dd/MMM/yyyy:HH:mm:ss zzz
  • Il file di log non deve essere configurato per essere sovrascritto con circular updates.

Definizione di un custom log

Per poter collezionare le informazioni dei custom log è necessario seguire questa semplice procedura.

  1. Aprire il wizard dei custom Log:
    1. Accedere al portale OMS
    2. Settings – Data
    3. Custom Logs
    4. Add+
2016_11_09_loganalytics-02
Figura 2 – Custom Log Wizard

Di default tutti i cambiamenti apportati nella sezione Custom Logs vengono inviati in automatico a tutti gli agenti OMS. Per gli agenti Linux viene inviato un file di configurazione al data collector Fluentd. Se si vuole modificare manualmente questo file sugli agenti Linux è necessario rimuovere il flag “Apply below configuration to my Linux machines”.

  1. Effettuare l’upload e il parsing di un log di esempio:
2016_11_09_loganalytics-03
Figura 3 – Upload di un file di log di esempio

Selezionare il metodo che deve essere utilizzato per delimitare ogni record del file. Di defalut viene proposto di delimitare il file in base alle righe. Questo metodo può essere utilizzato quando il file di log contiene una singola entry per ogni riga del file. In alternativa è possibile selezionare il Timestamp per delimitare ogni record del file di log se inizia con un timestamp in un un formato supportato. Se viene utilizzato il Timestamp per delimitare i vari record la proprietà “TimeGenerated” di ogni record memorizzato in OMS verrà popolata con la data e l’ora specificata nel file di log. Se invece viene utilizzato il metodo alternativo (New Line) la proprietà “TimeGenerated” è valorizzata con la data e l’ora di raccolta del valore da parte di Log Analytics.

2016_11_09_loganalytics-04
Figura 4 – Parsing del log con metodo New Line
2016_11_09_loganalytics-04-bis
Figura 4bis – Parsing del log con metodo Timestamp
  1. Aggiungere i path dei log da collezionare:
    1. Selezionare Windows oppure Linux per specificare il formato del path opportuno
    2. Specificare il path e aggiungerlo con il pulsante +
    3. Ripetere il processo per ogni path da aggiungere
2016_11_09_loganalytics-05
Figura 5 – Percorsi da dove collezionare i log

Quando si inserisce un path è possibile specificare anche un valore contente un wildcard nel nome, utile per supportare applicazioni che creano nuovi file di log ogni giorno oppure al raggiungimento di una determinata dimensione.

  1. Assegnare un nome e una descrizione al log configurato.
2016_11_09_loganalytics-06
Figura 6 – Nome e descrizione del custom log

Il suffisso _CL viene aggiunto di default.

  1. Validare la configurazione effettuata.

Quando Log Analytics inizia a collezionare i custom log (può essere necessario attendere fino a 1 ora dal momento dell’attivazione per visualizzare i primi dati) è possibile consultarli dal portale OMS accedendo a Log Search. Come Type è necessario specificare il nome assegnato al custom Log (esempio Type=nginx_error_CL).

2016_11_09_loganalytics-07
Figura 7 – Ricerca dei log

Dopo avere configurato la raccolta dei custom log (ogni entry viene salvata come RawData) è possibile effettuare il parsing di ogni record presente all’interno del log in singoli campi utilizzando la funzionalità di Custom Fields presente in Log Analytics. Questo ci consente di analizzarli e di fare ricerche in modo più efficace.

Conclusioni

Ancora una volta Log Analytics si dimostra una soluzione potente e flessibile che ci consente di collezionare dati direttamente da log custom, sia per sistemi Windows che per macchine Linux, il tutto seguendo dei semplici e intuitivi passaggi guidati. Per chi vuole approfondire questa e altre funzionalità di OMS vi ricordo che è possibile provare la soluzione OMS gratuitamente.