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
- 1304 megtekintés
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
- A hozzászóláshoz be kell jelentkezni
Ezt a syslog bol masoltam ki, ez a php kuldi a logot:
<?php
$datum = date("Y-m-d-H-i");
$room = "freeroom";
$mid = 1234;
$msg = "hello";
openlog("FlashLog", LOG_NDELAY, LOG_LOCAL0);
syslog(LOG_NOTICE, $room."-".$mid."-".$datum."-".$msg);
closelog();
?>
--
--ha magyar MAC-et akarsz--
- A hozzászóláshoz be kell jelentkezni
Ajnasz jól látja. A syslog-ng az ident stringtől kezdve vizsgálja a sort, így az jelen állapotban nem illeszkedhet a "sor eleje - alfanumerikus karakterek - kötőjel" mintára. Vagy vedd le az elejéről a "^" karaktert, vagy tegyél utána "FlashLog: "-re illeszkedő mintát.
- A hozzászóláshoz be kell jelentkezni
match ("(?:[0-9a-zA-Z :]+)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]+)");
-al sem megy :(
--
--ha magyar MAC-et akarsz--
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Szia
a fenti logsorból szeretném a fenti struktúrát. Az admin guide-t ismerem :)
Oct 1 17:50:46 gw1 FlashLog: freeroom-1234-2008-10-01-17-50-hello
akkor ebből a sorból a Flashlog: résztől illeszkedik?
- A hozzászóláshoz be kell jelentkezni
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).
- A hozzászóláshoz be kell jelentkezni
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]+)");
- A hozzászóláshoz be kell jelentkezni
köszi, nem talaltam meg ezt a topicot.
Tehat:
az ident string a dflash3 tol kezdödik, elötte a date/time rész van.
Ha az ident töl nezem, akkor is jo a regexp.
- A hozzászóláshoz be kell jelentkezni
A destination-nél használj makrókat.
- A hozzászóláshoz be kell jelentkezni
Ha nagyon nem megy, kerdezd meg a syslog-ng levlistan (https://lists.balabit.hu/mailman/listinfo/syslog-ng), vagy vard meg a 3.0-s syslog-ng-t, azzal felparsolhatod az ilyen uzeneteket, es szepen hivatkozhatsz egyes reszeire a filenevben.
- A hozzászóláshoz be kell jelentkezni