Syslogd-ng

Syslogd-ng

Hozzászólások

Szoval adott egy szerver, amelyik egy masik gepre logol. Minden szepen megy, de amit en szeretnek, hogy pl a logokat ami az A geprol a B gepre logolok, akkor a B gepen hogyan allitsam be, hogy ne a /var/log/messages -ba tegye az A es a B gep logjait, hanem hogy csinaljon egy dirt (vagy en csinalok dirt), es a cuccok pl a /var/log/A/messages-ba menyen?

[quote:d3b51dae3a="radulovity"]Szoval adott egy szerver, amelyik egy masik gepre logol. Minden szepen megy, de amit en szeretnek, hogy pl a logokat ami az A geprol a B gepre logolok, akkor a B gepen hogyan allitsam be, hogy ne a /var/log/messages -ba tegye az A es a B gep logjait, hanem hogy csinaljon egy dirt (vagy en csinalok dirt), es a cuccok pl a /var/log/A/messages-ba menyen?

Amennyiben a bazsi fele syslog-ng-re gondolsz, akkor:
destination B { file("/var/log/B/all.log"); }; a syslog-ng.conf-ba...

Nemegesszen erre gondoltam, hanem arra, hogy a messages, syslog, exim, stb logjait a /var/log/B/ -be tegye, nem pedig hogy az osszesset egy fileba ...

Akkor szopas, duplikalnod kell az osszes targetet meg mindent, es annak megfeleloen beallitani a szuroket A-ra es B-re.

Nem feltetlenul. En legalabbis is igy oldom meg az ilyeneket:

filter f_debug { not facility(auth, authpriv, news, mail)
and not match("named")
and not match("IPTABLES"); };

log { source(src); filter(f_named); destination(named); };
filter f_named { match("named"); };
destination named { file("/var/log/named.log" owner("root") group("adm") perm(0640)); };

mintha valahogy lehetne valtozokat hasznalni :roll:
/var/log/%GEPNEV/ize

man, google, stb :)

[quote:191cfe049b="Elbandi"]mintha valahogy lehetne valtozokat hasznalni :roll:
/var/log/%GEPNEV/ize

man, google, stb :)

Pontosan, van lehetőség többféle beépített változó használatára is.
dátum,programnév,gépnév, meg hasonlók.

im egy példa:
[code:1:191cfe049b]
destination full {
file("/dev/tty12");
file("/var/log/full_$DAY-$MONTH-$YEAR.log"
owner("root")
group("adm")
perm(0640));
};

destination hosts {
file("/var/log/HOSTS/$HOST/$FACILITY/$YEAR/$MONTH/$DAY/$FACILITY$YEAR$MONTH$DAY"
owner(root)
group(root)
perm(0600)
dir_perm(0700)
create_dirs(yes));
};
[/code:1:191cfe049b]

Nem találtam jobban illeszkedő szálat, ez pedig elég általánosnak tűnik.

Van 2 teszt virtuális szerverem mindkettőn syslog-ng-t használok,
tcp-n küldöm a logokat -- OK
szűröm azokat a logokat amikről mail-t akarok kapni --- OK
mail küldés ---- Nem teljesen OK

Küld levelet, de ha rövid időn belül több olyan log esik be amiről kellene levelet küldeni akkor csak az elsőt küldi el (esetleg a másodikat is).
Rövid idön belül : for ciklussal generálom, vagy pl : logger "" && logger "" .....

Van valakiek ötlete, hogy lehetne megoldai, hogy
1) minden log sorrol kapjak mail
2) (vágy) kötegelve kaphassak levelet ha olyan sok lenne a küldeni szánt sor.

Próbáltam játszani a flush_lines(); flush_timeout(); értékekkel de eredménytelen voltam (értsd 9000-re állítva sem volt észlelhető hatás)

syslog-ng konf részlet :

source src_tcp{ tcp(port(5140) keep-alive(yes)); };
filter teszt { match("kernel"); };
destination email { program("/home/mail.sh"); };
log { source(src_tcp); filter (teszt); destination (email); };

mail küldö script :

#!/bin/bash
read body
if [ "$body" == "" ]
then
body="Restart miatti syslog-ng meghivas"
fi
sendEmail -f kovacsl@mail.kfki.hu -t kovacsl@mail.kfki.hu -s smtp-in.kfki.hu -u teszt-mail -m $body

Még nem, egyenlőre semmi más ilyen jellegű megoldást nem néztem.

Egy rsyslog-os infrastrukturát kellene leváltanom az összes szerveren. Nemtudom hogy az rsyslog-os jelenlegi megoldás mit reagálna ilyen burst-re. Ebben a megoldásban egy ilyen hibára bukkantam a tesztelés alatt, így merült fel.

Megnézem a logwatch-os megoldásokat hátha nem kell a spanyol viaszt feltalálni (újra :) )