Nu este duplicat acest întrebare pentru că acesta folosește rsyslog pe client, în timp ce eu folosesc syslog-ng pe ambele părți.
Am o instanță syslog-ng atât pe client, cât și pe server și, indiferent de motiv, există linii de jurnal repetate în jurnalul serverului.
Jurnalele sunt trimise în facilitatea de e-mail.
2021-12-18T21:01:44+01:00 192.168.1.11 [avertisment] Avertisment: acesta este un test
2021-12-18T21:01:44+01:00 192.168.1.11 [err] EROARE DE TEST
2021-12-18T21:01:44+01:00 192.168.1.11 [crit] nu este o condiție critică de fapt
2021-12-18T21:01:44+01:00 192.168.1.11 [alertă] wee woo wee woo
(liniile duplicate încep aici)
2021-12-18T21:01:44+01:00 192.168.1.11 [avertisment] Avertisment: acesta este un test
2021-12-18T21:01:44+01:00 192.168.1.11 [err] EROARE DE TEST
2021-12-18T21:01:44+01:00 192.168.1.11 [crit] nu este o condiție critică de fapt
2021-12-18T21:01:44+01:00 192.168.1.11 [alertă] wee woo wee woo
Configurația clientului meu syslog-ng
@versiunea: 3.33
@include „scl.conf”
#
# /etc/syslog-ng/syslog-ng.conf
#
Opțiuni {
frecvență_statistică (0);
linii_line (0);
timp_redeschidere (10);
log_fifo_size (10000);
chain_hostnames (dezactivat);
dns_cache (nu);
use_dns (nu);
use_fqdn (nu);
create_dirs (nu);
keep_hostname (da);
perm(0640);
grup ("jurnal");
};
sursă src {
sistem();
intern();
};
destinație d_authlog { fișier("/var/log/auth.log"); };
destinație d_syslog { fișier("/var/log/syslog.log"); };
destinație d_cron { fișier("/var/log/crond.log"); };
destinație d_daemon { fișier("/var/log/daemon.log"); };
destinație d_kernel { fișier("/var/log/kernel.log"); };
destinație d_lpr { fișier("/var/log/lpr.log"); };
destinație d_user { fișier("/var/log/user.log"); };
destinație d_uucp { fișier("/var/log/uucp.log"); };
destinație d_mail {
syslog("raspi" port(8000) transport("tcp"));
#file("/var/log/mail.log");
};
destinație d_news { fișier("/var/log/news.log"); };
destinație d_ppp { fișier("/var/log/ppp.log"); };
destinație d_debug { fișier("/var/log/debug.log"); };
destinație d_messages { fișier("/var/log/messages.log"); };
destinație d_errors { fișier("/var/log/errors.log"); };
destinație d_everything { fișier("/var/log/everything.log"); };
destinație d_iptables { fișier("/var/log/iptables.log"); };
destinație d_acpid { fișier("/var/log/acpid.log"); };
destinație d_console { usertty("rădăcină"); };
# Înregistrați totul în tty12
destinație console_all { fișier("/dev/tty12"); };
filtru f_auth { facilitate(auth); };
filtru f_authpriv { facilitate(auth, authpriv); };
filtru f_syslog { program(syslog-ng); };
filtru f_cron { facilitate(cron); };
filtru f_daemon { facilitate(daemon); };
filter f_kernel { facilitate(kern) și nu filter(f_iptables); };
filtru f_lpr { facilitate(lpr); };
filtru f_mail { facilitate(mail); };
filtru f_știri { facilitate(știri); };
filtru f_utilizator { facilitate(utilizator); };
filtru f_uucp { facilitate(uucp); };
filtru f_ppp { facilitate(local2); };
filtru f_debug { nu facilitate(auth, authpriv, news, mail); };
filter f_messages { level(info..warn) și nu facilitate(auth, authpriv, mail, news, cron) și nu program(syslog-ng) și nu filter(f_iptables); };
filter f_everything { level(debug..emerg) si nu facilitate(auth, authpriv); };
filtru f_emergency { level(emerg); };
filtru f_info { level(info); };
filtru f_notice { level(notice); };
filtru f_warn { level(warn); };
filtru f_crit { level(crit); };
filtru f_err { level(err); };
filtru f_iptables { potrivire("IN="valoare("MESAJ")) și potrivire("OUT="valoare("MESAJ")); };
filtru f_acpid { program("acpid"); };
log { sursa(src); filter(f_acpid); destinație(d_acpid); };
log { sursa(src); filter(f_authpriv); destinație(d_authlog); };
log { sursa(src); filter(f_syslog); destinație(d_syslog); };
log { sursa(src); filter(f_cron); destinație(d_cron); };
log { sursa(src); filter(f_daemon); destinație(d_daemon); };
log { sursa(src); filter(f_kernel); destinație(d_kernel); };
log { sursa(src); filtru (f_lpr); destinație(d_lpr); };
log { sursa(src); filtru (f_mail); destinație(d_mail); };
log { sursa(src); filter(f_news); destinație(d_știri); };
log { sursa(src); filtru (f_ppp); destinație(d_ppp); };
log { sursa(src); filter(f_user); destinație(d_user); };
log { sursa(src); filtru (f_uucp); destinație(d_uucp); };
#log { sursa(src); filter(f_debug); destinație(d_debug); };
log { sursa(src); filter(f_messages); destinație(d_mesaje); };
log { sursa(src); filter(f_err); destinație(d_erori); };
log { sursa(src); filtru(f_emergency); destinație(d_console); };
log { sursa(src); filtru (f_totul); destinație(d_totul); };
log { sursa(src); filter(f_iptables); destinație(d_iptables); };
# Înregistrați totul în tty12
#log { sursa(src); destinație(console_all); };
Configurația serverului
@versiunea: 3.27
@include „scl.conf”
# Fișier de configurare Syslog-ng, compatibil cu Debian syslogd implicit
# instalare.
# În primul rând, setați câteva opțiuni globale.
opțiuni { chain_hostnames(off); linii_linii(0); use_dns(nu); use_fqdn(nu);
dns_cache(nu); proprietar ("rădăcină"); grup ("adm"); perm(0640);
frecvență_statistică(0); bad_hostname("^gconfd$");
};
#######################
# Surse
#######################
# Acesta este comportamentul implicit al pachetului sysklogd
# Jurnalele pot veni din fluxul Unix, dar nu de la o altă mașină.
#
sursă s_src {
syslog(ip("0.0.0.0") port(8000) transport("tcp"));
};
# Dacă doriți să obțineți jurnalele de la o mașină la distanță, ar trebui să anulați comentariile
# asta și comentați linia sursă de mai sus.
#
#source s_net { tcp(ip(127.0.0.1) port(1000)); };
#######################
# Destinații
#######################
# Mai întâi niște fișiere jurnal standard
#
template recv {
template("${ISODATE} ${HOST} [${LEVEL}] ${MESAJ}\n");
};
destinație d_auth { fișier("/var/log/auth.log"); };
destinație d_cron { fișier("/var/log/cron.log"); };
destinație d_daemon { fișier("/var/log/daemon.log"); };
destinație d_kern { fișier("/var/log/kern.log"); };
destinație d_lpr { fișier("/var/log/lpr.log"); };
destinație d_mail { file("/var/log/${YEAR}-${LUNA}.log" template(recv)); };
destinație d_syslog { fișier("/var/log/syslog"); };
destinație d_user { fișier("/var/log/user.log"); };
destinație d_uucp { fișier("/var/log/uucp.log"); };
# Aceste fișiere sunt jurnalul care provin din subsistemul de e-mail.
#
#destination d_mailinfo { fisier("/var/log/mail.info"); };
#destination d_mailwarn { fisier("/var/log/mail.warn"); };
#destination d_mailerr { fisier("/var/log/mail.err"); };
# Înregistrare pentru sistemul de știri INN
#
destinație d_newscrit { fișier("/var/log/news/news.crit"); };
destinație d_newserr { fișier("/var/log/news/news.err"); };
destinație d_newsnotice { fișier("/var/log/news/news.notice"); };
# Unele fișiere jurnal „catch-all”.
#
destinație d_debug { fișier("/var/log/debug"); };
destinație d_error { fișier("/var/log/error"); };
destinație d_messages { fișier("/var/log/messages"); };
# Consola rădăcină.
#
destinație d_console { usertty("rădăcină"); };
# Consolă virtuală.
#
destinație d_console_all { fișier(`tty10`); };
# Tubul numit /dev/xconsole este pentru utilitarul nsole. Pentru a-l folosi,
# trebuie să invocați nsole' cu opțiunea -file':
#
# $ xconsole -file /dev/xconsole [...]
#
destinație d_xconsole { pipe("/dev/xconsole"); };
# Trimite mesajele către o altă gazdă
#
#destination d_net { tcp("127.0.0.1" port(1000) log_fifo_size(1000)); };
# Doar Debian
destinație d_ppp { fișier("/var/log/ppp.log"); };
#######################
# Filtre
#######################
# Iată opțiunile de filtrare. Cu aceste reguli, putem stabili care
# mesaj merge unde.
filtru f_dbg { level(debug); };
filtru f_info { level(info); };
filtru f_notice { level(notice); };
filtru f_warn { level(warn); };
filtru f_err { level(err); };
filtru f_crit { level(crit .. emerg); };
filtru f_debug { level(debug) si nu facilitate(auth, authpriv, news, mail); };
filtru f_error { level(err .. emerg) ; };
filtru f_messages { level(info,notice,warn) și
nu facilitate(auth,authpriv,cron,daemon,mail,news); };
filter f_auth { facilitate(auth, authpriv) și nu filter(f_debug); };
filter f_cron { facilitate(cron) și nu filter(f_debug); };
filter f_daemon { facilitate(daemon) și nu filter(f_debug); };
filter f_kern { facilitate(kern) și nu filter(f_debug); };
filter f_lpr { facilitate(lpr) și nu filter(f_debug); };
filtru f_local { facilitate(local0, local1, local3, local4, local5,
local6, local7) și nu filter(f_debug); };
filter f_mail { facilitate(mail) și nu filter(f_debug) și nu host("localhost"); };
filter f_news { facilitate(știri) și nu filter(f_debug); };
filter f_syslog3 { nu facilitate(auth, authpriv, mail) și nu filter(f_debug); };
filter f_user { facilitate(utilizator) și nu filter(f_debug); };
filter f_uucp { facilitate(uucp) și nu filter(f_debug); };
filtru f_cnews { level(notice, err, crit) and facility(news); };
filtru f_cother { level(debug, info, notice, warn) sau facilitate (daemon, mail); };
filter f_ppp { facilitate(local2) și nu filter(f_debug); };
filtru f_console { level(warn .. emerg); };
#######################
# Căi de jurnal
#######################
log { sursa(s_src); filtru (f_auth); destinație(d_auth); };
log { sursa(s_src); filter(f_cron); destinație(d_cron); };
log { sursa(s_src); filter(f_daemon); destinație(d_daemon); };
log { sursa(s_src); filter(f_kern); destinație(d_kern); };
log { sursa(s_src); filtru (f_lpr); destinație(d_lpr); };
log { sursa(s_src); filtru (f_syslog3); destinație(d_syslog); };
log { sursa(s_src); filter(f_user); destinație(d_user); };
log { sursa(s_src); filtru (f_uucp); destinație(d_uucp); };
log { sursa(s_src); filtru (f_mail); destinație(d_mail); };
#log { sursa(s_src); filtru (f_mail); filter(f_info); destinație(d_mailinfo); };
#log { sursa(s_src); filtru (f_mail); filter(f_warn); destinație(d_mailwarn); };
#log { sursa(s_src); filtru (f_mail); filter(f_err); destinație(d_mailerr); };
log { sursa(s_src); filter(f_news); filter(f_crit); destinație(d_newscrit); };
log { sursa(s_src); filter(f_news); filter(f_err); destinație(d_newserr); };
log { sursa(s_src); filter(f_news); filter(f_notice); destinație(d_newsnotice); };
#log { sursa(s_src); filter(f_cnews); destinație(d_console_all); };
#log { sursa(s_src); filtru(f_cother); destinație(d_console_all); };
#log { sursa(s_src); filtru (f_ppp); destinație(d_ppp); };
log { sursa(s_src); filter(f_debug); destinație(d_debug); };
log { sursa(s_src); filter(f_error); destinație(d_error); };
log { sursa(s_src); filter(f_messages); destinație(d_mesaje); };
log { sursa(s_src); filter(f_console); destinație(d_console_all);
destinație(d_xconsole); };
log { sursa(s_src); filter(f_crit); destinație(d_console); };
# Toate mesajele sunt trimise către un site la distanță
#
#log { sursa(s_src); destinație(d_net); };
###
# Includeți toate fișierele de configurare în /etc/syslog-ng/conf.d/
###
@include „/etc/syslog-ng/conf.d/*.conf”