Portál AbcLinuxu, 25. října 2025 19:45
Už mě rozčiloval bordel ve /var/log/messages, tak jsem se trochu mrknul na filtrování v syslog-ng, když ho v Portage prezentují jako "syslog replacement with advanced filtering features". Následující postup je ukázka toho, jak logovat cron, sudo a iptables do extra logů.
Konfigurák syslog-ng.conf bývá buď v /etc nebo v /etc/syslog-ng. Zbytek konfigurace počítá s nastaveným zdrojem logů "src". Třeba takhle:
source src {
unix-stream("/dev/log");
internal();
pipe("/proc/kmsg"); # roura
};
Zvolte si názvy souborů pro různé hlášky.
destination messages {
file("/var/log/messages");
};
destination cron {
file("/var/log/cron");
};
destination iptables {
file("/var/log/iptables");
};
destination sudo {
file("/var/log/sudo");
};
Potom je třeba vymyslet filtry. Tady bych se chtěl zmínit o filtru DEFAULT, který je dostupný vždy a zachytí všechny ještě nezpracované hlášky.
filter f_cron {
facility(cron);
};
filter f_sudo {
# match() bere (rozšířené) regexy
match("^sudo:");
};
filter f_iptables {
facility(kern) and
match("^iptables: ");
};
filter f_messages {
# vše od informací až po varování a
level(info .. warn) and
# ne to, co chytí filtr f_iptables a
not filter(f_iptables) and
# ...
not filter(f_cron) and
not filter(f_sudo);
};
Poznámka: Aby fungoval filtr iptables, je třeba logovacím pravidlům přidat přepínač --log-prefix "iptables: ". V případě, že používate firehol, nastavte v konfiguráku firehol.conf proměnnou FIREHOL_LOG_PREFIX="iptables: ". Firehol s touto proměnnou pracuje až od verze 1.255, takže pokud máte starší verzi, můžete buď aktualizovat (což samozřejmě nelze než doporučit) nebo použít patch pro 1.226.
No a pak už mu jen stačí říct co s těmi všemi pravidly dělat
log {
source(src); # zdroj
filter(f_messages); # filtr
destination(messages); # cíl
};
log {
source(src);
filter(f_cron);
destination(cron);
};
log {
source(src);
filter(f_sudo);
destination(sudo);
};
log {
source(src);
filter(f_iptables);
destination(iptables);
flags(final);
};
Hurá! Konečně je v tom pořádek.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.