Syslog opsplitsen meerdere bestanden

Pagina: 1
Acties:

Vraag


  • stijnos1991
  • Registratie: Oktober 2005
  • Laatst online: 18-09 09:19
Ik ben bezig om wat meer inzicht te krijgen in de logging van mijn docker containers. Diverse containers draaien op mijn Ubuntu server. Met die logging gebeurde tot op heden helemaal niets. In de compose files ben ik er achter hoe ik de log output naar syslog van de host stuur.
code:
1
2
3
4
    logging:
      driver: syslog
      options:
        tag: docker-nginx

De logs verschijnen nu netjes in /var/log/syslog van de Ubuntu bak.
Maar, het syslog bestand staat nu vol met logs van verschillende docker containers. Ik wil deze uitsplitsen naar losse log bestanden. 1tje voor de nginx container, 1 voor de vpn container enzovoorts.

De oplossing zit waarschijnlijk in /etc/rsyslog.d/. Hier zou je regels aan kunnen maken, maar ik ben niet echt bekend met de syntax en het lukt me niet om goeie concrete voorbeelden te vinden om zelf iets in elkaar te flansen. Wat ik tot nu toe heb:
code:
1
2
3
4
if ( $hostname contains "docker-nginx[1028]" ) then {
    /var/log/nginx.log
    stop
}

Doet precies niks :|

Iemand die hiermee kan helpen? Een voorbeeld log regeltje uit syslog:
code:
1
Dec 17 21:02:48 linas docker-nginx[1028]: 192.168.3.1 - stijn [17/Dec/2020:21:02:48 +0100] "PROPFIND /remote.php/dav/files/stijn/ HTTP/1.1" 207 246 "-" "Mozilla/5.0 (Windows) mirall/3.0.3stable-Win64 (build 20201125) (Nextcloud)" "-"

Alle reacties


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 12:28

Hero of Time

Moderator LNX

There is only one Legend

Je geeft een tag op om mee te loggen, maar in je rule ga je op hostname controleren. Dat gaat natuurlijk niet goed. Ook het getal tussen blokhaken meenemen in je match is geen goed idee, want herstart je container en het komt niet meer overeen. Het is namelijk het PID. Dat matched nu, maar daarna waarschijnlijk nooit meer.

Wat info uit de manpage van rsyslog.conf:
programname
the "static" part of the tag, as defined by BSD syslogd. For example, when TAG is "named[12345]", programname is "named".
Lijkt op waar je naar op zoek bent.

Commandline FTW | Tweakt met mate