Inviare i log di WordPress a un server syslog remoto
Da qualche giorno sto utilizzando su questo blog WPsyslog2, un plugin per WordPress realizzato dal team di OSSEC, uno tra i più noti intrusion detection open source. WPsyslog2 permette di loggare tutta una serie di eventi (impostabili nelle configurazioni) come ad esempio un login fallito, la cancellazione di un post, la creazione di una nuova regola di URL rewrite.
I report del plugin vengono salvati in una tabella MySQL, consultabile dalla dashboard di WP, ma anche localmente sulla macchina dove il plugin è installato. Nel caso di una macchina Linux, i log vengono inviati al “log server” di default, cioè syslogd (o rsyslogd nel caso di distro aggiornate come Ubuntu 9.10), e salvati in /var/log/syslog o /var/log/messages, in caso ci si trovi su Windows il plugin va a scrivere nell’Event log.
Purtroppo non è stata inclusa la possibilità di inviare i log a un server syslog remoto, cosa che sarebbe stata molto comoda per chi ha il proprio blog su un hosting (e quindi non ha completo accesso ai log della macchina su cui è ospitato il blog né ha controllo sul file /etc/syslogd.conf). L’invio a un demone syslogd remoto è molto utile per chi abbia una macchina Linux (reale o virtualizzata) che si occupi soltanto della raccolta dei log di altri sistemi.
Avendo ricevuto risposta negativa da parte degli autori di WPsyslog2 sull’eventuale modifica del plugin per il logging su server remoto, ho deciso di fare da me. Dico subito che il plugin utilizza delle funzioni PHP standard per inviare i log al demone syslogd della macchina locale, in particolare le funzioni utilizzate si trovano nel file wpsyslog.php del plugin e sono le seguenti:
openlog("WPsyslog", LOG_PID, LOG_DAEMON);
syslog(LOG_WARNING, "$block_header $severityname: $message");
closelog();
Fondamentale è la funzione PHP syslog() che genera un log di sistema. Purtroppo la funzione è in grado di comunicare solo con l’istanza locale di syslogd, quindi mi sono messo alla ricerca di una soluzione che ho trovato, dopo molte ricerche, nella libreria syslog client 1.1.3. Quest’ultima, una volta inclusa in uno script, permette di inviare log a una macchina remota. Per poterla utilizzare in wpsyslog.php è necessario collocare la libreria, chiamata syslog.php, nella stessa cartella del plugin WPsyslog2. Fatto questo basta andare a modificare wpsyslog.php eliminando la funzione syslog() e andandola a rimpiazzare con la nuova funzione di invio su una macchina remota ottenuta grazie alla syslog.php. Personalmente mi è bastato effettuare una modifica banale servendomi di uno degli esempi presentati in syslog.php, ecco la mia modifica:
require_once('syslog.php'); /*richiamo la libreria*/
$syslog = new Syslog(); /*la nuova funzione*/
$syslog->Send("192.168.1.x", "$block_header $severityname: $message"); /*invio i log impostando l'indirizzo IP del server syslogd remoto e il messaggio che apparirà nei log*/
Probabilmente chi conosce PHP potrà raffinare ulteriormente i log dato che la libreria syslog.php consente di impostare moltissimi parametri, per le mie esigenze questa soluzione “grossolana” ha funzionato da subito egregiamente.
Ho effettuato dei test per verificare l’efficacia di questa soluzione solo nella mia LAN casalinga, utilizzando una Slackware 13.0 (virtualizzata su VirtualBox) su cui ho abilitato il remote logging modificando lo script /etc/rc.d/rc.syslog. Per poter capire se avevo abilitato correttamente il remote logging su Slackware mi è stato utile Kiwi SyslogGen, un freeware per Windows di pochi KB che genera messaggi e li invia a un host remoto. Per comodità di chi legge ho deciso di zippare la versione modificata da me del plugin WPsyslog2, includendovi anche la libreria syslog.php.
DOWNLOAD: wpsyslog2 modificato
Post correlati:
3 Responses to Inviare i log di WordPress a un server syslog remoto
Lascia un Commento Annulla risposta
Newsletter
I più visti
- Groupon Citydeal: le truffe sono in agguato (aggiornato)
- Già possibile attivare Windows 7 Ultimate RTM con Hazar Activator
- Multiboot: installare Windows 7 dopo XP e Ubuntu
- Installare Mac OS X 10.7 Lion in VMware su Windows
- Dispositivo MTP non riconosciuto in Windows XP: ecco come fare
- Vista, hard disk e pendrive USB: problema risolto
Categorie
Archivi
Commenti recenti
- matteoca su Bucare una rete Wi-Fi protetta con Ubuntu usando Reaver
- Hiroshi su Pagelines Platform in italiano per WordPress
- jovy60 su Pagelines Platform in italiano per WordPress
- MICHELA su Groupon Citydeal: le truffe sono in agguato (aggiornato)
- michela su Groupon Citydeal: le truffe sono in agguato (aggiornato)
Twitter
- How To Setup SiriServer On Ubuntu For Use With Spire Tweak http://t.co/lmVnVb1Q 11 ore fa
- Oil industry sees no threat from electric car http://t.co/gcQal70v 11 ore fa
- Integrating Google Analytics into your Company Loop with a Microsoft Excel Add-on http://t.co/OBQgDLNf 11 ore fa
- F.B.I. Admits Hacker Group’s Eavesdropping http://t.co/qiHZEcRa 11 ore fa
- Want 4.5GB of free Dropbox space? Be a guinea pig http://t.co/nWCaV301 12 ore fa







[...] Inviare i log di WordPress a un server syslog remoto [...]
Che tu sappia esiste un modo per avere un report sui risultati della funzione cerca di wordpress??
grazie anticipatamente
Ciao Guido, di default il plugin non prevede il log delle ricerche ma nulla ti vieta di modificarne il funzionamento, io non ne ho avuto bisogno quindi non so indirizzarti sulle modifiche necessarie.