Logging su MySQL: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
Allora iniziamo, prima di tutto chiariamo un paio di cose, questo emulatore � nato per poter giocare con i nostri giochi "originali" psx e psx-one, per poter giocare con giochi psx sul nostro fidato debian-box necessitiamo di un processore medio/potente e di una scheda accelerata, e naturalmente i nostri giochi preferiti.
{{Versioni compatibili|Debian Etch 4.0<br/>Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid|}}
=Premessa=
Questa piccola guida, in questa sua prima versione, descrive velocemente la procedura per abilitare il logging di sistema su di un database MySQL. Essendo questo un compito di indirizzo prettamente professionale, non mi sono soffermato più di tanto nello spiegare i dettagli della procedura. Tantomeno ho elencato nel dettaglio '''tutti''' i comandi necessari, presumendo che chi legge abbia le competenze necessarie a completare le mie eventuali lacune. Qualsiasi commento o correzione è il benvenuto e sarà integrato in eventuali riscritture di questa guida che, in questa stesura, è poco più della traccia da me seguita in diverse occasione per realizzare quanto spiegato.


bene dopo questo preamobolo iniziamo.
Buona lettura e happy hacking!
Scarichiamo il pacchetto contenente l'emulatore:


<pre>
=Logging su MySQL=
$ wget http://www.epsxe.com/files/epsxe160lin.zip
Spesso, specie in ambiente professionale, si ha la necessità di memorizzare i logs di sistema in una località centralizzata vuoi per motivi di sicurezza che di semplice monitoraggio. Syslogd permette di implementare in maniera banale questa possibilità, ma a volte ci si trova nella necessità/desiderio di voler dare a questi logs una forma facilmente gestibile e interrogabile come ad esempio un database MySQL.
</pre>
Esiste un syslogger che fa questo per noi, si tratta di syslogd-ng, però non sempre è possibile sostituire il logger in maniera indolore e trasparente.
In tutte queste situazioni viene in nostro aiuto una piccola utility : sqlsyslogd, realizzata da [mailto:venglin@freebsd.lublin.pl Przemyslaw Frasunek].
 
Sqlsyslogd è un wrapper per syslogd scritto in C per FreeBSD, ma è comunque compatibile con qualsiasi piattaforma POSIX e ANSI-C compliant (chi scrive non ha mai avuto problemi nell' usarlo su piattaforma GNU/Linux, in particolare Debian).


Se non potete rinuciare all interfaccia grafica, vi consiglio di scaricare anche il front-end:
Andiamo con ordine:
<pre>
$ wget http://www.epsxe.com/files/ePSXeCutor1060.zip
</pre>


bene ora scompattiamo i due archivi in una cartella a nostra scelta (es <tt>/home/utente/psx</tt>):
==Ottenere i sorgenti==
Procuriamoci il sorgente all' indirizzo: [http://www.frasunek.com/sources/security/sqlsyslogd/sqlsyslogd.c sqlsyslogd.c]. Procuriamoci anche il [http://www.frasunek.com/sources/security/sqlsyslogd/Makefile MakeFile] e lo script che useremo per creare il nostro database: [http://www.frasunek.com/sources/security/sqlsyslogd/sqlsyslogd.sql sqlsyslogd.sql]


==Compilazione del logger==
Una volta ottenuto il sorgente del file compiliamolo digitando semplicemente:
<pre>
<pre>
$ mkdir psx
$ make
$ cd psx
$ unzip /home/utente/epsxe160lin.zip
$ unzip /homeutente/ePSXeCutor1060.zip
</pre>
</pre>
 
nella directory in cui abbiamo scaricato i nostri files.<br>
ora abbiamo nella directory <tt>/home/utente/psx</tt> l'emulatore e il suo frontend. Ci servono ancora i plugin per grafica, suono e lettura cd:
ora copiamo l' eseguibile creato in /usr/local/sbin (ad esempio):
 
<pre>
<pre>
$ wget http://www.pbernert.com/gpupetexgl206.tar.gz
$ su
$ wget http://www.pbernert.com/cdrpeops104.zip
Password:
$ wget http://www.pbernert.com/spupeopsoss109.tar.gz
# cp sqlsyslogd /usr/local/sbin/
</pre>
</pre>


Ora abbiamo nella nostra home i tre plugin in serie: video, cdr, audio.
==Creare il database==
Scompattiamo i plugin cd-r e audio nella sub-directory <tt>/home/utente/psx/plugins</tt>:
Creiamo il database con il comando:
 
<pre>
<pre>
$ cd /home/utente/psx/plugins
$ mysql -u root -p < sqlsyslogd.sql
$ unzip /home/utente/cdrpeops104.zip
$ tar xvfz /home/utente/spupeopsoss109.tar.gz
</pre>
</pre>
questo comando crea il database sqlsyslogd, che contiene l' unica tabella logs.


Ora rimane solo da estrarre i plugin per il video;
Fermiamoci un momento a spiegare il funzionamento del wrapper: sqlsyslogd è un programma C che "intercetta" le chiamate di syslogd e le redirige verso una pipe. Dato che il syslogger syslogd non può puntare direttamente ad un altro programma (come invece può fare il suo cugino di FreeBSD), ma soltanto ad una named pipe, abbiamo bisogno di un ulteriore passaggio:
questo lo estraiamo in un altra directory (dopo vedremo il perch�):


<pre>
==Il Wrapper==
$ cd /home/utente
Scarichiamo questo [http://www.frasunek.com/sources/security/sqlsyslogd/contrib/sqlsyslogd-on-redhat-7.3 script perl] e rinominiamolo ad esempio in "sqlsyslogd.wrapper".<br>
$ mkdir video
Questo script crea per noi un FIFO socket. Syslogd manderà i suoi messaggi al socket, e il wrapper li inoltrerà a sqlsyslogd.
$ cd video
$ tar xvfz /home/utente/video/gpupetexgl206.tar.gz
$ mv gpuPeteXGL2.cfg /home/utente/psx
$ mv cfgPeteXGL2 /home/utente/psx
$ mv libgpuPeteXGL2.so.2.0.6 /home/psx/plugins
</pre>


Ora ci manca solo il bin del bios, questo per� lo dovrete trovare voi su google, in quanto non � legale detenere la suddetta se non si � in possesso di una psx originale.  
=Configurazione=
Creaimo il file /usr/local/etc/sqlsyslogd.conf e come unica riga, digitiamo la password necessaria a poter scrivere nel nostro database. Dato che sqlsyslogd gira con le credenziali dell' utente che lo lancia e che - presumibilmente - vorremo avviarlo al boot della nostra macchina, potremo creare un utente apposito o più semplicemente usare le creadenziali dell' utente "root". In questo caso in sqlsyslogd.conf inseriremo la password di root (occhio ai permessi su questo file!).


Il nome del file � <tt>'''scph1001.bin'''</tt>
Lo script perl permette di specificare sia il server che ospita il database, sia l' utente con con collegarsi.
e v� messo nella subdirectory <tt>/home/utente/psx/bios</tt>.
Il mio suggerimento, rivolto a ovvie questioni di sicurezza, consiste nel creare un apposito utente con cui far girare il wrapper e con cui accedere al database!!


Ora proviamo se funziona:
Editiamo il file sqlsyslogd.wrapper e adattiamolo alla nostra configurazione e alle nostre esigenze.


Editiamo /etc/syslogd.conf e scriviamo una riga del tipo:
<pre>
<pre>
$ cd /home/utente/psx
*.* |/path/to/sqlsyslogd.wrapper
$ ./epsxe
</pre>
</pre>
Possiamo specificare tutte le facilities che vogliamo e loggare soltano quello che ci interessa. La direttiva dell' esempio regirige tutto quello che viene loggato.


Se si apre la finestra siamo a cavallo. Bene, ora possiamo configurare il nostro emulatore.
Assicuriamoci che sqlsyslogd e sqlsyslogd.wrapper vengano lanciati ad ogni riavvio della macchina, aggiungendoli ad esempio ad uno script di avvio.
 
Clicchiamo sul men� config e sul sotto men� bios, e impostiamo la dir dove abbiamo estratto in precedenza il bios. Stessa cosa per la voce video.
 
Dopo aver selezionato il plugin adatto facciamo click su test:
se ci appare una finesta che dice ''plugin work correctly'' siamo a cavallo.
 
Settare nello stesso modo l'audio, e stessa cosa pure per il cdrom.
 
Ora passiamo a configurare la tastiera. Click sul menu config e su GamePad--gamepad1. Qui possiamo selezionare i tasti con cui ci troviamo meglio.
 
Ora non rimane che testare se tutto funziona:
click su file---runCDROM, happy game.
 
In caso di malfunzionamento video o audio, andiamo alla pagina dei plugin e proviamo con altri.
Quelli qui proposti funzionano sulla maggior parte delle macchine. Andando nella sezione configure dei vari plugin � possibile settare al meglio i suddetti in base alla potenza della macchina su cui viene fatto girare l'emulatore.
 
Vi consiglio di crearvi un link simbolico in <tt>/bin</tt> cosi da poter lanciare l'emultaore solo scrivendo <tt>epsxe</tt>:


=Conclusioni=
Finalmente possiamo riavviare syslogd e cominciare a importare in tempo reale i nostri logs in MySQL!!
<pre>
# killall -HUP syslogd
</pre>
o anche
<pre>
<pre>
$ su
# /etc/init.d/sysklogd reload
password di root.
# cd /bin
# ln -s /home/utente/psx/epsxe epsxe
</pre>
</pre>
==Link==
* http://www.epsxe.com/news.php Home Page dell proggetto ePSXe
* http://www.pbernert.com/ plugin
* http://www.pbernert.com/pluginpetedoc_ita_104.zip FAQ italiane
Per qualsiasi problema il forum a vostra disposizione, oppure potete contattarmi per email o messaggio privato.


----
----
Autore: debian
Autore: [[User:Keltik|Keltik]]
[[Categoria:Sistema]]
[[Categoria:Sicurezza]]

Versione delle 18:26, 9 gen 2010

Debian-swirl.png Versioni Compatibili

ERRORE: valore non valido ( Debian Etch 4.0
Debian Lenny 5.0
Debian Squeeze
Debian Sid )! Vedi qui.

Premessa

Questa piccola guida, in questa sua prima versione, descrive velocemente la procedura per abilitare il logging di sistema su di un database MySQL. Essendo questo un compito di indirizzo prettamente professionale, non mi sono soffermato più di tanto nello spiegare i dettagli della procedura. Tantomeno ho elencato nel dettaglio tutti i comandi necessari, presumendo che chi legge abbia le competenze necessarie a completare le mie eventuali lacune. Qualsiasi commento o correzione è il benvenuto e sarà integrato in eventuali riscritture di questa guida che, in questa stesura, è poco più della traccia da me seguita in diverse occasione per realizzare quanto spiegato.

Buona lettura e happy hacking!

Logging su MySQL

Spesso, specie in ambiente professionale, si ha la necessità di memorizzare i logs di sistema in una località centralizzata vuoi per motivi di sicurezza che di semplice monitoraggio. Syslogd permette di implementare in maniera banale questa possibilità, ma a volte ci si trova nella necessità/desiderio di voler dare a questi logs una forma facilmente gestibile e interrogabile come ad esempio un database MySQL. Esiste un syslogger che fa questo per noi, si tratta di syslogd-ng, però non sempre è possibile sostituire il logger in maniera indolore e trasparente. In tutte queste situazioni viene in nostro aiuto una piccola utility : sqlsyslogd, realizzata da Przemyslaw Frasunek.

Sqlsyslogd è un wrapper per syslogd scritto in C per FreeBSD, ma è comunque compatibile con qualsiasi piattaforma POSIX e ANSI-C compliant (chi scrive non ha mai avuto problemi nell' usarlo su piattaforma GNU/Linux, in particolare Debian).

Andiamo con ordine:

Ottenere i sorgenti

Procuriamoci il sorgente all' indirizzo: sqlsyslogd.c. Procuriamoci anche il MakeFile e lo script che useremo per creare il nostro database: sqlsyslogd.sql

Compilazione del logger

Una volta ottenuto il sorgente del file compiliamolo digitando semplicemente:

$ make

nella directory in cui abbiamo scaricato i nostri files.
ora copiamo l' eseguibile creato in /usr/local/sbin (ad esempio):

$ su
Password:
# cp sqlsyslogd /usr/local/sbin/

Creare il database

Creiamo il database con il comando:

$ mysql -u root -p < sqlsyslogd.sql

questo comando crea il database sqlsyslogd, che contiene l' unica tabella logs.

Fermiamoci un momento a spiegare il funzionamento del wrapper: sqlsyslogd è un programma C che "intercetta" le chiamate di syslogd e le redirige verso una pipe. Dato che il syslogger syslogd non può puntare direttamente ad un altro programma (come invece può fare il suo cugino di FreeBSD), ma soltanto ad una named pipe, abbiamo bisogno di un ulteriore passaggio:

Il Wrapper

Scarichiamo questo script perl e rinominiamolo ad esempio in "sqlsyslogd.wrapper".
Questo script crea per noi un FIFO socket. Syslogd manderà i suoi messaggi al socket, e il wrapper li inoltrerà a sqlsyslogd.

Configurazione

Creaimo il file /usr/local/etc/sqlsyslogd.conf e come unica riga, digitiamo la password necessaria a poter scrivere nel nostro database. Dato che sqlsyslogd gira con le credenziali dell' utente che lo lancia e che - presumibilmente - vorremo avviarlo al boot della nostra macchina, potremo creare un utente apposito o più semplicemente usare le creadenziali dell' utente "root". In questo caso in sqlsyslogd.conf inseriremo la password di root (occhio ai permessi su questo file!).

Lo script perl permette di specificare sia il server che ospita il database, sia l' utente con con collegarsi. Il mio suggerimento, rivolto a ovvie questioni di sicurezza, consiste nel creare un apposito utente con cui far girare il wrapper e con cui accedere al database!!

Editiamo il file sqlsyslogd.wrapper e adattiamolo alla nostra configurazione e alle nostre esigenze.

Editiamo /etc/syslogd.conf e scriviamo una riga del tipo:

*.* |/path/to/sqlsyslogd.wrapper

Possiamo specificare tutte le facilities che vogliamo e loggare soltano quello che ci interessa. La direttiva dell' esempio regirige tutto quello che viene loggato.

Assicuriamoci che sqlsyslogd e sqlsyslogd.wrapper vengano lanciati ad ogni riavvio della macchina, aggiungendoli ad esempio ad uno script di avvio.

Conclusioni

Finalmente possiamo riavviare syslogd e cominciare a importare in tempo reale i nostri logs in MySQL!!

# killall -HUP syslogd

o anche

# /etc/init.d/sysklogd reload

Autore: Keltik