Portál AbcLinuxu, 28. října 2025 19:28
$ cat /etc/syslog-ng/syslog-ng.conf
@version: 3.6
@include "scl.conf"
#
# /etc/syslog-ng/syslog-ng.conf
#
options {
stats_freq (0);
flush_lines (0);
time_reopen (10);
log_fifo_size (10000);
chain_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
perm(0640);
group("log");
};
source net {
udp();
};
destination d_journald { program("/usr/local/bin/mk_syslog2journald.sh"); };
filter f_router { facility(local7); };
log { source(net); filter(f_router); destination(d_journald); };
Pomocný skript:
cat /usr/local/bin/mk_syslog2journald.sh #!/bin/bash read line echo $line | cut -d":" -f 4- | sed "s@ \(.*\)@MESSAGE=\"\1\"@" | xargs printf "%s\n%s\n%s\n" PRIORITY=7 SYSLOG_IDENTIFIER=router | logger --journaldSice to funguje, ale zdá se mi to poněkud kostrbaté. Navíc nelze nastavit _HOSTNAME na původní stroj (mikrotik). Namísto syslog-ng jsem zkoušel jednoduché "socat -u UDP-RECV:541 STDOUT" spouštěné jako systemd service, má to ale tu chybu, že bez EOL se zápis v journald neobjeví (tj. zabralo např. z terminálu paralelně poslat "echo blabla | nc -u localhost 514"). Pravda, nezkoušel jsem, zda by tak nastalo i samo nějaké době. Nenapadá někoho lepší řešení jak logovat Mikrotik do journald?
Řešení dotazu:
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.