( wildy | 2015. 03. 16., h – 15:10 )

Probaljuk ujra, epp raerek. A bejovo syslog uzenet (altalaban mezei ASCII karakterkeszletu szoveg, hopp, ez mar magaban szivas) hogy erkezhet? Legyen mondjuk /dev/log, AF_UNIX (ismertebb neven unix domain socket). Ha ez pechunkre SOCK_STREAM, akkor rab*szas esete forog fenn, mert gozunk sincs, hol van az uzenet vege (LF, NUL, ?), pufferelni es talalgatni kell. Ugyanez tortenik AF_INET[6]+SOCK_STREAM kapcsan (kozismertebb neven TCP). Hogy is nez ki az uzenet? Van fejlec. Ebben mi van? Egy prioritas es egy idopont (milyen formatumban is? Idozona? Evszam?). Kuldo gep neve? Programnev (amit amugy barki barmire allithat)? Opcionalisak. Annak idejen nem kellettek. A kulonfele implementaciok hegesztettek hozza ezeket az adatokat. Mekkora az uzenet maximalis merete? Tradicionalisan 1k, de altalaban 64k-ig emelheto, mert ennyi meg belefer egy UDP csomagba. Az 1k-s okolszabaly ellenere volt olyan syslog implementacio, amelyik alapbol 2k-ra novelte a rovidebb uzeneteket. Mi a bejovo uzenet facility-je? Ha 0-t lat, a libc beallitja 1-re (USER). Hopp, a kernel epp a 0-t hasznalja. Nosza, kezeljuk specialisan a kernel logokat (ez akkor macera, ha szeretnel logokat ujra bekuldeni feldolgozasra, direktben ra kell connect-elni a /dev/log-ra). Folytassam? Ugye felesleges lenne?

Nincs olyan, hogy a syslog transzport onmagaban strukturat ad, a strukturalas elotte tortenik meg a parser oldalan - en legalabbis nem lattam meg pl. a libc-ben nativ syslog proto tamogatast. Ha a bejovo adat tovabbra is freetext, akkor mindegy, hogy a /var/log ala irja ezeket a syslog daemon, vagy a halozaton kuldene at, ugyanaz a katyvasz az eredmeny itt is, ott is - marad az elofeldolgozas, amit altalaban jobb a kuldo oldalon megtenni, mint kozpontilag. Amugy keresd meg mondjuk par tucat GB-nyi logban az osszetartozo sorokat, sok sikert hozza...

Komolyabb biztonsagu helyeken meg az uzemeltetes is ki van zarva a gepekrol, csak ideiglenes hozzaferest engedelyeznek az adatgazdak, azt is felugyelet mellett. Alltam en mar kollegak hata mogott, es diktaltam nekik a parancsokat, mert a vezetes szerint igy volt celszeru szetvalasztani az eltero (operations vs engineering) feladatkorokkel jaro jogosultsagokat.

Egyebkent mondta valaki is, hogy nem maradnak hozzaferhetoek a lokalisan generalt logok? Miert lennenek ezek barmilyen mas formatumra konvertalva? Ez csak eroforrast emesztene fel, feleslegesen. Tudtommal csak arrol volt szo, hogy a remote transport lesz HTTP-alapu. Ebbe belefer az erkezo logok ack-ja (ami komoly hianyossaga az RFC szintjen letezo syslog protoknak), tomorites, ... Miert is kene valami ujat, nativ protokollt feltalalnia a systemd fejlesztoinek, amit a kutya se tamogat meg, es jo esellyel nem is fog? Nem kellene oket hulyenek nezni meg akkor sem, ha sokak szerint nem a KISS elv menten dolgoznak. Aki jobban ismeri, mirol is szol a systemd, annak altalaban joval arnyaltabb a velemenye.

Kihagytam valamit?