Prométheusz és Grafana bemutatása

A Prometheus egy nyílt forráskódú, metrikákon alapuló megfigyelő rendszer. Adatokat gyűjt a szolgáltatásoktól és a gazdagépektől úgy, hogy HTTP-kéréseket küld a metrika végpontjaira. Ezután az eredményeket egy idősoros adatbázisban tárolja, és elérhetővé teszi elemzés és riasztás céljából.

Miért figyelni?

  • Figyelmeztetéseket engedélyez, ha valami rosszul sül el, lehetőleg még azelőtt, hogy elromolnának. Hogy valaki megnézze.
  • Betekintést nyújt a probléma elemzéséhez, hibakereséséhez és megoldásához.
  • Lehetővé teszi a trendek/változások megtekintését az idő múlásával. Például egy adott időpontban hány aktív munkamenet. Ez segít a tervezési döntésekben és a kapacitástervezésben.

A monitorozás általában eseményekhez kapcsolódik. Egy esemény magában foglalhatja a HTTP-kérés fogadását, a válasz küldését, a lemezről való olvasást vagy a felhasználói bejelentkezést. A rendszer felügyelete magában foglalhatja a profilalkotást, a naplózást, a nyomkövetést, a mérőszámokat, a riasztásokat és a megjelenítést.

Blackbox vs. Whitebox megfigyelés

A monitorozás két fő kategóriába sorolható:

Blackbox figyelés

A Blackbox megfigyelés során a megfigyelés az alkalmazás vagy a gazdagép szintjén történik, mivel azokat kívülről figyelik. Ez eléggé korlátozó lehet.

Whitebox figyelés

A Whitebox figyelése egy szolgáltatás belső elemeinek figyelését jelenti. Ez adatokat szolgáltatna a belső komponensek állapotáról és teljesítményéről.

A négy arany jel

A Google szerintha csak négy mérőszámot tudja mérni a felhasználó felé néző rendszerében, összpontosítson a következő négyre, amelyeket négy aranyjelnek neveznek:

#1. Késleltetés

A kérelem kézbesítéséhez szükséges idő – sikeres vagy sikertelen. Fontos, hogy ne csak a sikeres, hanem a sikertelen kéréseket is nyomon kövessük.

  Biztonságos egy másik laptop töltőjének használata a laptopon?

#2. Forgalom

Annak mértéke, hogy mekkora kereslet van a rendszerben. Egy webszolgáltatás esetében ez általában másodpercenkénti HTTP-kérés.

#3. Hibák

A sikertelen kérelmek aránya.

#4. Telítettség

Mennyire teljes a szolgáltatása. A késleltetés növekedése gyakran a telítettség fontos mutatója. Sok rendszer teljesítménye jóval azelőtt leromlik, hogy elérné a 100%-os kihasználtságot.

Prometheus metrika típusai

A Prometheus-metrikák négy fő típusra oszthatók:

#1. Számláló

A számláló értéke mindig növekszik. Csökkenteni soha nem lehet, de nullára visszaállítható. Tehát, ha a törlés meghiúsul, az csak egy kihagyott adatpontot jelent. A halmozott növekedés a következő felolvasáskor lesz elérhető. Példák:

  • A beérkezett HTTP kérések teljes száma
  • A kivételek száma.

#2. Nyomtáv

A mérőeszköz egy pillanatfelvétel egy adott időpontban. Növekedhet vagy csökkenhet is. Ha az adatlekérés sikertelen, elveszik a minta; a következő lekérés más értéket mutathat: példák lemezterület, memóriahasználat.

#3. Hisztogram

A hisztogram mintákat vesz a megfigyelésekből, és konfigurálható gyűjtőhelyeken számolja meg azokat. Olyan dolgokra használják őket, mint a kérés időtartama vagy a válaszméretek. Például mérheti egy adott HTTP-kérelem kérésének időtartamát. A hisztogram egy gyűjtőcsoportot tartalmaz, mondjuk 1 ms, 10 ms és 25 ms. Ahelyett, hogy minden kérés minden időtartamát eltárolná, a Prometheus eltárolja az adott vödörbe eső kérések gyakoriságát.

#4. Összegzés

A hisztogram minták megfigyeléseihez hasonlóan jellemzően a kérések időtartama vagy válaszmérete. Megadja a megfigyelések teljes számát és az összes megfigyelt érték összegét, lehetővé téve a megfigyelt értékek átlagának kiszámítását. Például egy perc alatt három kérése volt, amelyek 2,3,4 másodpercig tartottak. Az összeg 9 lenne, a szám pedig 3. A késleltetés 3 másodperc lenne.

  7 Active Directory adminisztrációs és felügyeleti eszközei a Sysadmin számára

A Prometheus ökoszisztéma összetevői

A Prometheus szerver

Összegyűjti a mérőszámokat, tárolja, és lekérdezhetővé teszi, riasztásokat küld az összegyűjtött mérőszámok alapján.

Kaparás

Prométheusz egy húzás alapú rendszer. A mérőszámok lekéréséhez a Prometheus HTTP-kérést küld, amelyet scrape-nek neveznek. A konfigurációja alapján kaparásokat küld a célpontoknak.

Minden egyes (statikusan meghatározott vagy dinamikusan felfedezett) célt szabályos időközönként (kaparási időközönként) lekapar a rendszer. Minden adatmásolat beolvassa a /metrics HTTP-végpontot, hogy megkapja az ügyfélmetrikák aktuális állapotát, és megőrizze az értékeket a Prometheus idősoros adatbázisában.

Több idősoros adatbázis létezik a megfigyelési megoldásokhoz, amelyeket érdemes lehet felfedezni.

Ügyfélkönyvtárak

Egy szolgáltatás figyeléséhez műszereket kell hozzáadnia a kódhoz. Minden népszerű nyelvhez és futtatókörnyezethez rendelkezésre állnak ügyfélkönyvtárak. E könyvtárak használatával néhány sor kód hozzáadása után a kód elkezdhet mutatókat bocsátani. Ezt nevezzük közvetlen műszerezésnek. Ezek a könyvtárak lehetővé teszik belső metrikák meghatározását, és HTTP-végponton keresztül történő megjelenítését is. Amikor a Prometheus lekaparja a metrikák HTTP-végpontját, az ügyfélkönyvtár elküldi a metrikákat a kiszolgálónak.

A hivatalos klienskönyvtárakat a Prometheus for Go, Java, Python és Ruby kínálja. A Prometheus nyitott ökoszisztémával rendelkezik. A C, a PHP, a Node.js, a C#/.NET és még sok más számára elérhetők közösségi épített klienskönyvtárak is.

Exportőrök

Sok alkalmazás nem Prometheus formátumban teszi közzé a metrikákat. Ezekhez és azokhoz az alkalmazásokhoz, amelyeknek nem Ön a tulajdonosa, vagy amelyekhez nincs hozzáférése a kódhoz, nem adhat hozzá közvetlenül műszereket. Például MySQL, Kafka, JMX, HAProxy és NGINX szerver. Ezekben a forgatókönyvekben kihasználja a exportőrök.

Az exportőr egy olyan eszköz, amelyet azzal az alkalmazással együtt telepít, amelyből mérőszámokat szeretne. Az exportőr proxyként működik az alkalmazás és a Prometheus között. Megkapja a kéréseket a Prometheus szervertől, adatokat gyűjt az alkalmazás hozzáférési naplóiból, hibanaplóiból, átalakítja azokat a megfelelő formátumba, és végül visszatér a Prometheus szerverre.

  A sebességkorlátozás megjelenítése a Google Térképen

Néhány népszerű exportőr:

  • ablakok – a Windows szerver mérőszámaihoz
  • Csomópont – Linux szerver metrikákhoz
  • Fekete doboz – a DNS és a webhely teljesítménymutatóihoz
  • JMX – Java alapú alkalmazási metrikákhoz

Miután az alkalmazások műszerezettek, vagy az exportőrök a helyükre kerültek, meg kell mondania a Prometheusnak, hogy hol vannak. Ezt statikus konfigurációval lehet megtenni. Dinamikus környezetek esetén ez nem tehető meg; ezért a szolgáltatás felderítést használják.

Figyelmeztetés

A Prometheus-szal történő riasztás két részből áll:

A riasztási szabályok figyelmeztetéseket küldenek az Alertmanagernek.

Ezután az Alertmanager kezeli ezeket a riasztásokat. Értesítéseket küld számos készenléti integráció segítségével, mint például az e-mail, a Slack, a Hipchat és a PagerDuty. Az Alertmanager elnémítást vagy összesítést is végezhet az értesítések számának csökkentése érdekében.

Itt található az útmutató a Linux-kiszolgáló felügyeletéhez a Prometheus és a Dashboard segítségével.

Vizualizálás irányítópultokkal

A Prometheus számos API-val rendelkezik, amelyek segítségével a PromQL lekérdezések nyers adatokat állíthatnak elő a vizualizációkhoz.

Bár a Prometheus tartalmaz egy kifejezésböngészőt, amely ad-hoc lekérdezésekhez használható, a legjobb elérhető eszköz Grafana. A Grafana teljes mértékben integrálható a Prometheusszal, és sokféle műszerfalat képes előállítani.

Be kell állítania a Prometheust a Grafana adatforrásaként.

Irányítópultokat a következőképpen adhat hozzá:

  • Közösségben épített irányítópultok importálása
  • Saját építés
  • Előre meghatározott irányítópult használata.

Így néz ki egy előre meghatározott csomópont-exportőr irányítópultja:

A Grafana rendelkezik egy worldPing modullal, amely lehetővé teszi a webhely- és DNS-teljesítménymutatók figyelését világszerte.

Összegzés

A Prometheusnak nagyon kevés követelménye van. A futtatása meglehetősen egyszerű lehet, mivel egyetlen bináris konfigurációs fájlt tartalmaz. Több ezer célpontot képes kezelni, és több millió mintát képes lenyelni másodpercenként. A Prometheust arra tervezték, hogy nyomon kövesse a rendszer általános állapotát, egészségét és viselkedését.

A Grafana a legjobb elérhető eszköz a mutatók megjelenítésére, és zökkenőmentesen integrálható vele Prométheusz.