Docker konténerek központi naplózása

  • Leírás
  • Tanmenet
  • Kérdések
  • Értékelések

A hagyományos környezetekben a naplózás gyárilag megvan és egyszerű: fut a syslog szerver, gyűjti az adatokat és leteszi a /var/log könyvtárba értelmesen szortírozva. A másik eset, amikor egy alkalmazás (tipikusan a webszerverek) saját maguk írják a naplófájlokat.

Míg ez jól működik egy komplett Linux szerveren, konténereknél több problémát is felvet. Egyrészt a konténeren belül megváltozó adatok a konténer leállításakor elvesznek. Erre megoldás, ha a /var/log külön köteten van, de ez így kissé káoszos: minden konténernek saját /var/log könyvtára van, nehéz lesz összevetni a leveleket fogadó (SMTP) szerver és a leveleket tároló (IMAP, csoportmunka, stb.) szerver naplózását, így a hibakeresés is nehézkessé válik. Ráadásul ha a konténered költözik egyik cluster node-ról a másikra, akkor a naplózás is megy vele. Végignézni a cluster összes node-ját egy bejegyzésért pedig elég gyötrelmes…

Mivel ez a probléma nem csak nekem tűnt fel, számos megoldás született rá. Sőt, nem csak a gyűjtésre, de a keresésre, kiértékelésre is. A legegyszerűbb egy központi naplózó szerverre küldeni mindent. De az az egyszerű ötlet is hoz azonnal újabb problémákat: akkor futtassunk minden konténerben egy-egy önálló syslog szervert, ami küldi a központi szerverre a logot? Nem tűnik jó megoldásnak. Ahogy az sem hogy gyűjtse a futtató környezet: mi van, ha a konténered egy telejsen más rendszerre kerül? Lehet azt nem is te üzemelteted.

Olyan megoldásra van szükség, ami független a futtató környezettől, azaz csak a konténereiden múlik, de nem kell minden konténerbe syslog szervert tenni hozzá, valamint a csak fájlba naplózni hajlandó alkalmazásoktól is be tudja gyűjteni a logokat. Végül ezt beküldi egy központi szerverre, ahol te azt kényelmesen tudod keresni és azokból statisztikákat tudsz lekérni. És ki ne felejtsük magának a futtatókörnyezetnek és a Dockernek a naplózását, amire szintén szükséged lehet.

A Docker konténerek központi naplózása képzésen megtanulod a Linux szervereden futó konténerekben keletkező logokat központi helyre gyűjteni a futtatókörnyezettől függetlenül. Legyen az szabványos syslog vagy egyedi fájlba naplózás, illetve magának a Dockernek az üzenetei. Az így összegyűjtött logokhoz pedig megtanulsz egy egyszerű gyűjtő és webes kereső környezetet felépíteni. Természetesen mindent konténerben, hogy az szabadon hordozható legyen.

Subscribe
Visszajelzés
guest
0 Kérdés
Most Voted
Newest Oldest
Inline Feedbacks
View all comments

DevOps képzés
30
tanuló
1
fejezet
3
tananyag
Czakó Krisztián Czakó Krisztián