28/01/2013

Monitoraggio logs con Nagios

Monitorare i log è un’attività spesso tediosa ma fondamentale per essere certi del corretto funzionamento di un servizio, un modo per rendere tutto più semplice e automatico è sfruttare il buon vecchio Nagios in combutta con l’ottimo plugin check_logfiles.

Il vantaggio di questo plugin rispetto a soluzioni più “caserecce” (es script bash che ‘greppa’ il file di log e genera un output differente in base alla presenza o meno del pattern ricercato) consiste prima di tutto nel fatto di concentrare in un unico service il monitoraggio di differenti log, in secondo luogo check_logfiles non riprocessa i pattern già rilevati e segnalati, evitando quindi di ricevere molteplici segnalazioni relative allo stesso problema.

L’installazione e configurazione è a dir poco banale:

  • scaricate l’archivio tar.gz dal sito ufficiale, decomprimetelo (nell’esempio in /usr/src) ed entrate nella directory creata
    check_logfile01
  • lanciate il consueto ./configure, i parametri di default andranno più che bene per la maggior parte dei casi, nel caso doveste personalizzarli lanciate il comando seguito da –help per visualizzare tutti i possibili parametri.
    check_logfile02
  • compilate i sorgenti lanciando il comando make
    check_logfile03
  • installate i file lanciando il comando make install
    check_logfile04
  • al termine dell’installazione il binario del plugin sarà disponibile in /usr/local/nagios/libexec/check_logfiles (ovviamente a patto di non aver modificato il parametro –previx, in caso contrario verificate nel percorso che avete definito come valore di quel parametro).
    check_logfile05

A questo punto l’installazione del plugin è completata, non resta che configurare il service direttamente su nagios.
Una soluzione più razionale e comoda può essere quella di definire un solo service e utilizzare nrpe per effettuare la verifica remota, definendo lo stesso comando su tutti i server da monitorare e limitare la personalizzazione al solo file di configurazione di check_logfiles.

Create il file di configurazione di check_logfiles (es /usr/local/nagios/libexec/logfiles.cfg) con un qualsiasi editor di testo e inserite la sintassi necessaria a verificare il vostro file di log, i parametri da modificare sono:

  • ‘tag’ (inserite una descrizione del log che state controllando)
  • ‘logfile’ (devo spiegare?)
  • ‘warningpattern’ (elenco di pattern da cercare nel log che scatena un alert warning in Nagios)
  • ‘criticalpattern’ (elenco di pattern da cercare nel log che scatena un alert critical in Nagios)

Quello che segue è un esempio di file di configurazione per monitorare il file catalina.out di una istanza Tomcat posta in /opt/jakarta-tomcat-5.0.28, ciascun avvio di Tomcat (org.apache.catalina.startup.Catalina start) scatena un alert warning, mentre episodi di Out of memory ed esaurimento del pool di connessione ai datasource scatenano un alert di tipo critico.

@searches = (
  {
    tag => 'tomcat_catalina.out',
    logfile => '/opt/jakarta-tomcat-5.0.28/logs/catalina.out',
    warningpatterns => [
        'org.apache.catalina.startup.Catalina start',
    ],
    criticalpatterns => [
        'OutOfMemoryError',
        'pool exhausted',
    ],
  });

Una volta configurato il file logfiles.cfg non resta che editare il file di configurazione di nrpe (/etc/nagios/nrpe.conf o equivalente) aggiungendo la riga che segue (verificate sempre il path in base alle vostre esigenze):

command[check_logfiles]=/usr/local/nagios/libexec/check_logfiles --config /usr/local/nagios/libexec/logfiles.cfg

Riavviate il servizio per rendere effettivo il nuovo command check_logfiles (/etc/init.d/nrpe stop && /etc/init.d/nrpe start).

A questo punto la configurazione del plugin e di nrpe è terminata, non vi resta che aggiungere il service sul server Nagios e associarlo al server che volete monitorare, a titolo di esempio il servizio potrebbe essere definito come segue:

define service{
        use                             generic-service
        host_name                       hostdamonitorare.domain.tld
        service_description             Controllo logs
        check_command                   check_nrpe!check_logfiles
        max_check_attempts              1
        }

Naturalmente la configurazione del service e degli host a cui applicare questo controllo varia a seconda della vostra configurazione di Nagios e della modalità con cui preferite associare services a hosts, l’unico parametro differente rispetto alla configurazione standard dei services è il numero di verifiche necessarie per far scattare l’evento warning o critico che deve essere impostato a 1 (max_check_attempts).

Dato che ogni controllo di check_logfiles verifica soltanto i record del file di log modificati dall’ultimo controllo è essenziale che i warning (e relative notifiche email o sms) partano alla prima rilevazione dei pattern definiti nel file di configurazione.
Per questo motivo è essenziale che questo service non utilizzi il consueto meccanismo di alert softt e hard di Nagios con la sequenza standard di 4 rilevazioni per scatenare la notifica.

Ecco fatto, ora non avete più scuse per ignorare un OutOfMemory ;)

14/01/2013

Aaron Swartz

 

Aaron H. Swartz (November 8, 1986 – January 11, 2013)

 Requiescat in pace

Aaron_Swartz

03/01/2013

Windows 8: abilitare condivisioni amministrative

Una feature di Windows che qualunque amministratore di rete utilizza pesantemente sono le condivisioni amministrative.
Sono utili per un sacco di motivi, permettono di eseguire software in remoto, permetto di accedere ai dettagli di un sistema da remoto, permettono di accedere ai volumi di un sistema da remoto (i celebri \\server\C$, D$ etc etc).
So già che qualcuno storcerà il naso per quanto sto per dire, però queste condivisioni di rete sono estremamente comode anche per fare dei backup (e non a caso io le uso per i miei backup domestici, mount in sola lettura ovviamente…).

Ahimè Windows 8 non va molto d’accordo con le admin shares, pertanto per usarle occorre essere un tantino… insistenti ;)

Per prima cosa occorre abilitare le share di rete, per farlo basta aprire il pannello di controllo e selezionare il link “Rete e Internet”
01

Poi cliccare su “Centro di connessioni di rete e condivisione”
02

E infine su “Modifica impostazioni di condivisione avanzate”
03

Arrivati a questo punto abilitate le condivisioni di rete per i profili di rete che vi interessano.

Una volta fatto aprite l’editor di registro (WIN+R, digitate “regedit” e date invio) e spostatevi alla chiave:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System

Create quindi un nuovo valore di tipo DWORD, chiamatelo LocalAccountTokenFilterPolicy e assegnategli valore 1.

04

Cliccando su OK il risultato dovrebbe essere il seguente
05

Riavviate e magicamente le condivisioni amministrative saranno attive a accessibili agli utenti del gruppo Administrators.

24/12/2012

Windows 8: wake on lan

Il wake on lan è fondamentale, lo vado ripetendo da anni ma ahimè troppa gente sottovaluta questo strumento tanto semplice da usare quanto utile per la manutenzione dei sistemi, sia in ambito lavorativo che domestico.

E’ fondamentale per i backup, è fondamentale per i defrag, è fondamentale per le scansioni antivirus, è sostanzialmente fondamentale per tutte quelle operazioni lunghe, “pesanti” e ahimè necessarie, che proprio per questo vengono spesso viste come un male necessario ma rimandabile a tempo indeterminato… almeno finchè qualcosa non si rompe, e allora saranno “pianto e stridore di denti” :\
Avere la possibilità di schedulare queste operazioni di notte, senza interferire con il proprio lavoro e in totale sicurezza è impagabile, wake on lan permette di fare tutto questo senza dover lasciare il proprio pc acceso in eterno, e quindi senza incidere in modo sensibile sulla bolletta elettrica.

Purtroppo una delle prime problematiche che ho riscontrato migrando a Windows 8 Professional è l’impossibilità di utilizzare Wake on Lan, o meglio non poterlo usare dopo aver effettuato un normale shutdown del sistema.
Pare infatti che quello che Windows 8 spaccia per shutdown in realtà non sia altro che uno stato  intermedio tra lo spegnimento puro e l’hybernate del sistema operativo, in sostanza Windows 8 salva i dati di sessione del kernel e i drivers caricati in memoria nel file di hybernate permettendo un più veloce ripristino del sistema all’avvio successivo.

2768.Relative-time-needed-for-different-phases-of-startup_thumb_0ABE24BF

Questa caratteristica (chiamata fast startup) è di fatto incompatibile con wake on lan (che invece funziona ponendo il sistema in stato sleep).

Per poter tornare ad utilizzare normalmente wake on lan occorre disabilitare fast startup mediante una piccola modifica al registro di sistema:

  • aprire regedit (WIN+R, digitare regedit e dare invio)
  • spostarsi alla chiave di registro HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Power
  • modificare il valore della chiave HiberbootEnabled da 1 a 0 (zero)
  • riavviare

Dopo il riavvio del sistema wake on lan tornerà a funzionare a dovere anche con Windows 8, un grande vantaggio al costo di un leggero aumento delle tempistiche di boot, che risultano comunque drasticamente più basse di tanti altri sistemi operativi concorrenti (MacOS X su tutti che effettua il boot con tempistiche geologiche).

22/12/2012

Condono informatico?

win8_logoHo approfittato dell’offerta Microsoft per effettuare l’upgrade del mio sistema operativo di casa da Windows 7 a Windows 8 Professional.

A prescindere dai pareri positivi o negativi su questa nuova incarnazione di Windows devo ammettere di essere rimasto fortemente sorpreso dalla politica dei prezzi attuata da Microsoft, anche in considerazione delle blande restrizioni presenti in questo “upgrade”, anzi chiamiamolo col suo vero nome, ovvero “condono” informatico, visto che permette di ottenere una istanza regolare anche a chi non è in possesso di una copia genuina di una delle precedenti versioni di Windows.

Sicuramente ci sarà chi si è imbufalito per questo, francamente da possessore di licenza di Windows 7 la cosa non mi fa ne caldo ne freddo, anzi trovo che sia una cosa positiva che abbia finalmente spinto a fare il “grande salto” verso la legalità (anche se borderline) a molte persone che fino a poco tempo fa non avrebbero mai sganciato una lira per una licenza di Windows.

Si tratta dell’ennesima dimostrazione del fatto che per vincere la pirateria non servono protezioni più efficaci (sebbene quelle di Win8 fin’ora si siano dimostrate rocciose sappiamo tutti che è solo questione di tempo prima che esca una “cura” efficace a tempo indeterminato o quasi) ma serve semplicemente una politica di prezzi che renda il prodotto licenziato e regolare più conveniente della controparte pirata.

« Post precedenti | Post successivi »