syslog-ng segítségkérés

Fórumok

Sziasztok
Van egy ilyen logsorom:
Oct 1 17:50:46 gw1 FlashLog: freeroom-1234-2008-10-01-17-50-hello

filter f_flash_msg {
host("gw*") and facility(local0) and level(notice) and
match ("^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9]{4})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9a-zA-Z]+)");
};

destination df_out { file("/var/log/client/flashlog/${1}/${2}/${3}/${4}/${5}/${6}.txt"); };

log {
source(s_all);
filter(f_flash_msg);
destination(df_out);
};
A Cél az alábbi könyvtárstrukúra lenne:

/var/log/client/flashlog/freeroom/2008/10/01/17/50.txt

Mit hibázok el ?

köszi

Hozzászólások

Ugyan nem ertek igy a syslog-ng-hez, viszont a regexp a fenti sorra biztosan nem fog illeszkedni, mert az elejen honap van, utana szokoz. Javaslom, hogy vedd ki a ^-t a regexp elejerol vagy illeszd hozza a regexpet a freeroom elotti reszhez is.
--
HUP Firefox extension

Mit szeretnél? A match() az a logüzenetre illeszt (a syslog() hívás 2. paramétere). Szerintem neked a program() filter kéne... (Az adminguide-ot már belinkeltem...).

Ha a PHP-ben a $room értéke csak meghatározott értékeket vehet fel, akkor annyi "program() AND match()" filter, és annyi destination -- a destination-nél az útvonalban makrókat használva.

Akkor mégegyszer, ahogy lentebb már szóba került: A logüzenet tartalmát match()-olva egyelőre nem fog menni a destination()-nek a módosítása. Ha ismered az adminguide-ot, akkor rágd át rajta magad mégegyszer :-))

A program() illeszkedik a "FlashLog"-ra, a match() meg a "freeroom-satöbbi"-re, a host() a gw1-re.
(A logbejegyzés a DATE HOST PROGRAM: MSGONLY formában áll össze).

Tehát ismét: "A syslog-ng az ident stringtől kezdve vizsgálja a sort".

"Vagy vedd le az elejéről a "^" karaktert...":
match ("([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9]{4})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9a-zA-Z]+)");

"... vagy tegyél utána "FlashLog: "-re illeszkedő mintát". Azaz nem "(?:[0-9a-zA-Z :]+)FlashLog: ", hanem csak simán "FlashLog: ":
match ("^FlashLog: ([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9]{4})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9a-zA-Z]+)");