rsyslog vs syslog-ng - apróság, de gáz...
A routerem logja egy syslog-ng szerveren köt ki. Minap rámjött a hülyeség, regisztráltam az asuscomm.com-ra egy saját nevet és kértem, hogy akkor már egy Let's encrypt tanúsítványt is szerezzen be hozzá a router firmware.
Szép, jó, működik.
Viszont a syslog-ng által írt logba került pár érdekes sor. :(
Ugyanis a tanúsítvány gyártás/törlés készít pár olyan bejegyzést, ami sorvége (^M, \n) karaktert is tartalmaz.
Ezt a syslog-ng egy laza mozdulattal beletolja a logba úgy, ahogy van.
Emiatt, ha soronként olvasom a logot, mondjuk pythonból vagy akár egy grep-pel, akkor ezek a sorok több sorként jelennek meg, szabálytalan bejegyzésként.
Ugyanis az így létrejövő sorok elejéről hiányzik a dátum, időpont, küldő kliens stb.
Az rsyslog (debian 9 alatt) normálisan kezeli, az üzenetben lévő sorvég karakterből két karaktert csinál, ha jól láttam: ^M.
Megnézem a syslog-ng konfigot, van-e erre valami megoldása, de félek, hogy nincs. (3.x verzió)
Update: közben megtaláltam, bár nem tökéletes, de használható módszer, a syslog-ng konfigban, az output definícióját kell picit módosítani: a file(...)-ba kell egy flags(no-multi-line) - így kiszedi az üzenetből a sorvég karaktereket.
Szép, jó, működik.
Viszont a syslog-ng által írt logba került pár érdekes sor. :(
Ugyanis a tanúsítvány gyártás/törlés készít pár olyan bejegyzést, ami sorvége (^M, \n) karaktert is tartalmaz.
Ezt a syslog-ng egy laza mozdulattal beletolja a logba úgy, ahogy van.
Emiatt, ha soronként olvasom a logot, mondjuk pythonból vagy akár egy grep-pel, akkor ezek a sorok több sorként jelennek meg, szabálytalan bejegyzésként.
Ugyanis az így létrejövő sorok elejéről hiányzik a dátum, időpont, küldő kliens stb.
Az rsyslog (debian 9 alatt) normálisan kezeli, az üzenetben lévő sorvég karakterből két karaktert csinál, ha jól láttam: ^M.
Megnézem a syslog-ng konfigot, van-e erre valami megoldása, de félek, hogy nincs. (3.x verzió)
Update: közben megtaláltam, bár nem tökéletes, de használható módszer, a syslog-ng konfigban, az output definícióját kell picit módosítani: a file(...)-ba kell egy flags(no-multi-line) - így kiszedi az üzenetből a sorvég karaktereket.
Megjegyzések
Megjegyzés küldése