Portál AbcLinuxu, 8. května 2025 04:24
$ 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.