rsyslog: remote logging en leren van fouten [2/2]

rsyslog: remote logging en leren van fouten [2/2]

In het vorige deel hadden we remote logging goed op orde. Alles leek in kannen en kruiken tot we de MongoDB wilde installeren. De SHA-1 hash van de MongoDB repo was depricated en we konden er niet omheen tweaken. In deze installatie herhalen we de stappen uit het vorige deel maar dan op een CT die gebaseerd is op Debian 12 Bookworm.

Voordat de oude CT verwijderd wordt, kopiëren we het MAC-adres zodat we de DHCP reservation in OPNsense kunnen blijven gebruiken. De configuratie van de vorige installatie heb ik overgezet met scp naar de nieuwe CT. Alles helemaal mooi totdat ik MongoDB wil installeren op Debian 12.

It's alive!

Na MongoDB is OpenSearch aan de beurt. Een zware jongen met 975 MiB. Hierna via apt GrayLog geinstalleerd. Configuratie gedaan en klaar is kees.

De Graylog interface

Vanuit Graylog is het mogelijk om meerdere streams aan te maken. Een stream is eigenlijk niet anders dan een filtering van de binnenkomende logs. We kunnen filteren op bijvoorbeeld de bron of bepaalde trefwoorden. Ik liep hier best wel mee te worstelen. Gisteren had ik een stream toegevoegd voor OPNsense, echter kwamen daar geen messages voor binnen. Toen ik vandaag keek kwamen er wel messages binnen. heel vreemd.
Met het toepassen van logging op de Docker host liep ik ook tegen wat uitdagingen aan. Normaal gesproken wordt logging lokaal gedaan via JSON bestanden. Na Docker geconfigureerd te hebben om de logs te exporteren, kwam er niets binnen. Zelfs na een reboot niet. Wat bleek: alle containers moesten opnieuw aangemaakt worden. Gelukkig heb ik overal compose bestanden van 😄

Alles leek lekker te werken totdat ik de logs van m'n UPS naar de logserver wilde sturen. Wat bleek, de UPS stuurde de bestanden niet volgens de RFC standaard. Toen had ik het idee om in plaats van de log entries te monitoren, de SNMP-traps op te vangen. Deze feature is alleen beschikbaar voor Graylog premium. Als workaround heb ik een SNMP daemon geïnstalleerd op de VM die Graylog host. De binnenkomende traps worden vervolgens naar journalctl gestuurd. Vanaf daar wordt het geparsed door rsyslogd en kunnen we de boel importeren in Graylog.

rsyslogd configuratie die het mogelijk maakt SNMP traps op te vangen

Pipelines
Een hoop log entries zijn eigenlijk allemaal meuk. Zo geeft TrueNAS af en toe een melding 'EDID checksum is invalid'. Ik schrikken, dacht dat het iets te maken had met m'n zpool. Wat blijkt: deze melding wordt gegeven als er geen monitor aangesloten is. Een typische melding die weg kan. Hiervoor beschikt Graylog over pipelines. In een pipeline kunnen regels aangepast of verwijderd worden. Precies wat ik nodig heb om van die checksum error af te komen. Regels kunnen gescript worden wat de boel heel eenvoudig maakt.

Een message filter/rule

Conclusie
Graylog was echt een draak om te installeren en configureren. Uiteindelijk ben ik voor een Docker installatie gegaan. Een hypervisor inrichten is een stuk makkelijker als je het mij vraagt. Desalniettemin is het een heel krachtig middel; Voor een homelab schiet het misschien zijn doel voorbij (zoals de meeste dingen in een homelab). Toch vond ik het erg leuk om ermee te spelen en ik kan me voorstellen dat als men eenmaal wat ervaring heeft met het interpreteren van logs, er een hoop te winnen valt.