Egy félresikerült frissítés avagy a Syslog-ng megint tüsszög.

Tegnapelőtt óvatlanul frissítettem a Syslog-ng-t 3.1.2-ről 3.1.3-ra. A művelet látszólag minden probléma nélkül lezajlott, a program fut, a naplók tiszták, mindenki boldog.

Vagyis majdnem. A mai rutinellenőrzés alkalmával kiderült, hogy a Syslog-ng teljes gőzzel tekeri az egyik CPU magot (micsoda szerencse hogy nem skálázódik több magra :)), közben az adatbázis naplózás egy ideje megállt.

Bekapcsolva a fájlba naplózást kiderül, hogy nem tud kapcsolódni a Postgresql-hez, csak “Connection refused” üzenetet kap. Mivel egy kisebb méretű DOS után se hajlandó a Google elmondani hogy miért is műveli ezt a Syslog-ng, úgyhogy ideje egy kicsit másképp gondolkozni.

Mint az a Gentoo ebuild-ből kiderült, a syslog-ng a libdbi-n keresztül éri el az adatbázist. Jött tehát az ötlet, hogy nézzük meg a 0.8.3-es helyett a 0.8.3-r2-es libdbi-drivers -en keresztül mit szól a dologhoz. Nos, nem talált, ugyanezt. Semmi baj, fordítsunk újra mindent, libdbi-drivers, libdbi, syslog-ng. Az újrafordítás után ugyanez a probléma.

Egy kis szöszölés után, gondoltam egyet, és megnéztem a telepített Postgresql összetevőket. Meglepő módon, a 8.4-es libek (postgresql-base) is telepítve voltak a 9-es mellett. Ezt leszedve, a 9-est, libdbi, libdbi-drivers és biztos ami biztos alapon a syslog-ng-t újrafordítva bíztatónak tűnik. Egy revdep-rebuild után, szerencsém volt, és semmi sem ragaszkodott a 8-as könyvtárakhoz.

Aki azt hiszi, hogy itt a mese vége az téved. Elindítva a syslog-ng -t, a következő üzenetet kapom: Error establishing SQL connection; type='pgsql', *blabla*, error='invalid port number: "0"\x0a'

Ahá, tehát nem jó a port. Eddig jó volt. Egy hírtelen ötlettől vezérelve kiegészítettem a syslog-ng.conf -ban a kapcsolódási adatokat tartalmazó sort port=(”5432”) opcióval és reménykedtem hogy jó lesz. Jó lett :)

Az Ubuntu szerver rendszergazdák ezt a kis bajlódást valószínűleg meg sem élik, hiszen ott a csomag karbantartója figyel a dolgokra. Egyedül a syslog-ng megváltozott beállítása tehet keresztbe.

Tehát a művelet „rizsa” nélkül:

1) postgresql-base verzió lecsekkol, ha nem 9-es frissítsd, régit pedig távolítsd el.
2) revdep-rebuild.
3) libdbi, libdbi-drivers, syslog-ng újrafordít.
4) syslog-ng.conf host sora így nézzen ki:
host("hoszt") username("usernev")password("jelszo") port("5432")

5) Syslog-ng újraindít, örül :)

Persze ez az egesz csak akkor

Persze ez az egesz csak akkor erdekes, ha 9-es PSQL-ed van telepitve. Szerencsere mi meg 8-asat hasznalunk, igy nem gondolom, hogy ilyen gondom valaha lesz. Bar, ki tudja.

Az alairas persze

Az alairas persze lemaradt:

hron84.