Newsgroup: it.comp.os.linux.sys
Titolo: documentazione syslog-ng

sapete se esiste una documentazione decente su sylog-ng?
la documentazione ufficiale di balabit e' talmente ristretta all'osso al 
punto che non si capisce niente (questo perche' loro tentano di vendere 
il supporto).
Si trova qualcosa solo su dei forum sparsi...
-- 
Massimiliano



Provato a cercare "syslog-ng + documentazione"?
(
http://www.dia.unisa.it/professori/ads/corso-security/www/CORSO-0304/Syslog/syslog-ng.htm
)


si tratta della documentazione di balabit tradotta in italiano:
Esempio della sua inutilita:
FACILITY:  Il nome della facility da cui il messaggio è segnato come 
proveniente
so bene che per i filtri ci sono i parametri "mmatch" not match" 
"program", ma che caXXX e' una facility e come si usa? Cosa succede se 
uso il parametro "facility" o "not_facility"?
Niente di tutto questo e' spiegato in nessuna documentazione e bisogna 
andare a tentativi.
-- 
Massimiliano

 "program", ma che caXXX e' una facility e come si usa?
La facility è "quell'etichetta" che identifica il "canale" con cui il
programma comunica i log al syslog server.
Quella cosa che si chiama
mail
news
kernel
[...]
local0
local1
local2
[...]
e con la quale si discriminano i log da quando esiste Unix.
Non ci trovo nulla di strano che la documentazione di syslog-ng la dia
per concetto scontato e assimilato...

 e con la quale si discriminano i log da quando esiste Unix.
ti dico che in syslog-ng non e' tutto cosi scontato.
La facility in syslog-gn (adesso lo capisco un po' di piu') e' qualcosa 
che si sovrappone in alcuni casi con altri parametri.
se 'mail' viene normalmente identificato come facility, in syslog-ng 
puo' essere identificato anche con il nome del programma che viene 
eseguito, tramite il parametro 'program', e nel caso di postfix, 
l'etichetta per questo parametro sara' proprio 'postfix', o nel caso di 
samba sara 'nmbd' e 'smbd'...
-- 
Massimiliano

> programma comunica i log al syslog server.
lasciamo perdere le polemiche :)
...
io ho questo in .bashrc:
(ps -u XXXX|grep [f]etchyahoo &>/dev/null) || 
(/usr/bin/fetchyahoo|logger -p 
mail.info
&)
bene, poiche' questo programmino non comunica con syslog, allore devo 
fare tutto da me.
Questa linea di comando inserisce un messaggio in syslog, usando la 
facility: 
mail.info
Peccato che la voce in syslog viene sempre inserita come se il porgramma 
lanciato fosse logger (e non fetchyahoo).
Esempio:
Jan  2 14:34:24 gentoo logger: Logging in securely via SSL as XXXXX on 
Mon Jan  2 14:34:24 2006
come cavolo si fa? logger non ha poi tante opzioni tra le quali poter 
scegliere....
-- 
Massimiliano

 (/usr/bin/fetchyahoo|logger -p 
mail.info
&)
adesso invece ho questo:
(ps -u XXXX|grep [f]etchyahoo &>/dev/null) ||
(/usr/bin/fetchyahoo|logger -p 
mail.info
 -t fetchyahoo&)
e tutto fila liscio.
-- 
Massimiliano

 samba sara 'nmbd' e 'smbd'...
Già. La differenza però c'è ed è ben chiara. La facility è quel "canale"
di identificazione con cui i log sono separati, ed è una cosa interna
alla gestione "classica" di syslog (fa parte del suo protocollo).
Quando il singolo programma logga via syslog, richiama la funzione del
caso passandole facility, level[1] e la stringa da loggare.
Syslog (o la libreria del caso) provvede a "metterci attorno" gli altri
dati, tra cui il nome del processo che ha generato il log.
Se vuoi fare qualche esperimento per capire che intendo, usa logger, il
man di logger e syslog(3).
Syslog-ng ti permette di creare filtri anche sulla base del nome del
programma, liddove invece il syslog "classico" permette di scremare
solamente sulla base di facility e level.
[1] che è quell'ulteriore label che identifica la criticità del singolo
messaggio di log, e che fa "alert, crit, debug, emerg, err, ...")

 Direi di no. Quel "canale" era tra virgolette mica per caso...
ok, vada per questo: ho capito cio' che ovlevi dire.
resta un altro mini-problema, forse non risolvibile (che pensavo di aver 
risolto)
uso logger per inviare messaggi a syslog.
con l'opzione "-t" cambio cio' che viene normalmente identificato come 
programma e, nel mio caso ad esempio, scrivo: fetchyahoo
dopo creo un filtro basato sul nome del programma, inserendo ovviamente 
'fetchyahoo' e non funziona. Con fetchmail funziona.
Ho aggirato il problema in questo modo:
#fetchmail log
filter f_fetchmail {
         program("fetchmail")
         or match("fetchyahoo");
};
destination d_fetchmail { file("/var/log/mail/fetchmail.log"); };
log { source(src); filter(f_fetchmail); destination(d_fetchmail); };
per funzionare funziona, ma non e' giusto che debba funzionare cosi'.
-- 
Massimiliano

 'fetchyahoo' e non funziona. Con fetchmail funziona.
destination d_fetchyahoo { file("/var/log/fetchyahoo.log"); };
filter f_fetchyahoo { program("fetchyahoo"); };
log { source(src); filter(f_fetchyahoo); destination(d_fetchyahoo); };
$ logger -p 
local0.info
 -t fetchyahoo "blah"
$ cat /var/log/fetchyahoo.log
Jan  2 14:10:28 
badabum.spin.it
 fetchyahoo: blah
A me funge.. :-\

 A me funge.. :-\
mmmhhhh ....adesso prova:
ps -ef | grep [f]etchyahoo
e fammi sapere...
-- 
Massimiliano

 
infatti non funge.
'-t' modifica il nome del tag e 'blah' e cio' che viene inserito nel 
syslog. Di fatto fetchyahoo non viene avviato... nemmeno usando:
logger -p 
local0.info
 -t fetchyahoo "/usr/bin/fetchyahoo"
-- 
Massimiliano

 logger -p 
local0.info
 -t fetchyahoo "/usr/bin/fetchyahoo"
e non vedo perchè dovrebbe.... quel "-t" indica solo che processo
indicare a syslog, altrimenti viene messo un laconico "logger"...
E' corretto l'uso in pipe, invece.
Piuttosto: sei sicuro che quel "fetchyahoo", logghi su stdout e non su
stderr?
Altrimenti in pipe non ci va nulla...


no per loggare logga solo che non veniva "greppato" dal filtro.
MA .... booohhhh ... adesso il filtro funziona alla perfezione:
#fetchmail log
filter f_fetchmail {
         program("fetchmail|fetchyahoo");
};
destination d_fetchmail { file("/var/log/mail/fetchmail.log"); };
log { source(src); filter(f_fetchmail); destination(d_fetchmail); };
niente di strano se ho fatto un errore di battitura scrivendo "fetchyahoo".
mmhh ... adesso e' fetchmail che fa lo stupido. Se non metto l'opzione 
-v per avviare fetchmail, mi fa vedere solo la prima mail specificata in 
.fetchmailrc e le altre non vengono mandate in syslog (in realta', 
ovviamente, le guarda tutte e tre).
-- 
Massimiliano