syslog-ng remote log problem
Som totalne zufaly, nastavujem syslog-ng pre vzdialene logovanie. Zatial logujem z jednej masiny (klient) na serverovu masinu. Jedna sa o subor cca 30 nesystemovych logov (vytvaranych PHPckom), avsak momentalne sa snazim posielat skusobne dva. Tych 30 spominam pre to aby bolo zrejme ze nie je mozne pouzit facilities. Rozhodol som sa teda riesit pomocou prefixu. Mam subor 404-file.log ktoreho obsah posielam na server s prefixom 404 a subor BAN-file.log ktory posielam s prefixom BAN. Na serverovej strane mam vsetko nastavene OK. Aby mi na serverovej strane rozdelovalo logy do suborov mam vo filtroch nastaveny match na 404 a BAN na zaciatku riadku (skusal som aj (.*404.*)), samozrejme mam nastavene prislusne destinations. Problem je ten ze to "nemtachuje" spravne. Vyskytuju sa logy z prefixom 404 v BAN.log a naopak. Najprv som myslel, ze posielam rovnaky obsah do obidvoch suborov naraz a teda mi nefunguje filter, ale o opaku ma presvedcili rozdielne velkosti suborov. v 404-file.log sa mi vyskytnu riadky z prefixom BAN aj ked nikde v riadku nie je 404 a podobne. Vie mi niekto poradit? Prikladam este nejake odstavce z konfiguracie:
Server side:
#####
source remote { tcp(port(514) keep-alive(no)); };
#####
log { source(remote); destination(bla); destination(BAN); };
#####
destination bla { file("/var/log/hellshare/404-file.log"); };
destination BAN { file("/var/log/hellshare/BAN.log"); };
#####
filter f_BAN {
match('.*BAN.*');
};
filter f_bla {
match('.*404.*');
};
Client side:
###############################################################
## The IP address of the loghost.
destination loghost {tcp("192.168.1.0" port(514));};
# send everything to loghost now that we've defined it.
log { source(bla); source (BAN); destination(loghost); };
###############################################################
# destinations
source bla {
file("/home/www/stranka.com/www/logs/404-file.2009-02-25.log" follow_freq(1) log_prefix('404 ') flags(no-parse));
};
source BAN {
file("/home/www/stranka.com/www/logs/BAN.2009-02-25.log" follow_freq(1) log_prefix('BAN ') flags(no-parse));
};
Pre pridávanie komentárov sa musíte prihlásiť.
Ak som dobre pochopil tak skus nastavit na serverovej strane namiesto parametra
"log { source(remote); destination(bla); destination(BAN); };"
strane toto:
log {
source(remote);
filter(f_BAN);
destination(BAN);
};
log {
source(remote);
filter(f_bla);
destination(bla);
};
Mozno by bolo dobre nastavit aj jednotlive filtre na:
filter f_BAN {
match("BAN");
and not match("404");
};
filter f_bla {
match("404");
and not match("BAN");
};
Popripade ak sa ti v logoch maju vyskytovat dane retazce, tak je vhodnejsie upravit regularny vyraz.