{"id":38927,"date":"2019-10-31T22:26:48","date_gmt":"2019-10-31T19:26:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb\/"},"modified":"2019-10-31T22:26:48","modified_gmt":"2019-10-31T19:26:48","slug":"vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","title":{"rendered":"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A Zabbix egy monitoroz\u00f3 rendszer. Mint minden m\u00e1s rendszer, ez is h\u00e1rom alapvet\u0151 probl\u00e9m\u00e1val szembes\u00fcl, amelyek a monitoroz\u00f3 rendszerekre jellemz\u0151ek: adatok gy\u0171jt\u00e9se \u00e9s feldolgoz\u00e1sa, a t\u00f6rt\u00e9net t\u00e1rol\u00e1sa \u00e9s annak tiszt\u00edt\u00e1sa.<\/p>\n<p>Az adatok megszerz\u00e9se, feldolgoz\u00e1sa \u00e9s r\u00f6gz\u00edt\u00e9se id\u0151t vesz ig\u00e9nybe. Kicsit, de egy nagy rendszer eset\u00e9ben ez jelent\u0151s k\u00e9sleked\u00e9shez vezethet. A t\u00e1rol\u00e1s probl\u00e9m\u00e1ja az adatokhoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s k\u00e9rd\u00e9se. Ezeket jelent\u00e9sek, ellen\u0151rz\u00e9sek \u00e9s triggerek haszn\u00e1lj\u00e1k. Az adatok hozz\u00e1f\u00e9r\u00e9s\u00e9nek k\u00e9sleked\u00e9se szint\u00e9n befoly\u00e1solja a teljes\u00edtm\u00e9nyt. Amikor az adatb\u00e1zisok megn\u0151nek, a nem relev\u00e1ns adatokat el kell t\u00e1vol\u00edtani. Az elt\u00e1vol\u00edt\u00e1s pedig neh\u00e9z m\u0171velet, amely szint\u00e9n er\u0151forr\u00e1sokat ig\u00e9nyel.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/9b7aa23705cd32b4d8d858ad78b181fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Zabbix adatgy\u0171jt\u00e9si \u00e9s t\u00e1rol\u00e1si k\u00e9sleked\u00e9sprobl\u00e9m\u00e1it gyors\u00edt\u00f3t\u00e1raz\u00e1ssal oldj\u00e1k meg: k\u00fcl\u00f6nf\u00e9le gyors\u00edt\u00f3t\u00e1rak, adatb\u00e1zison bel\u00fcli gyors\u00edt\u00e1raz\u00e1s. A harmadik probl\u00e9m\u00e1ra a gyors\u00edt\u00e1raz\u00e1s nem megfelel\u0151, ez\u00e9rt a Zabbix a TimescaleDB-t alkalmazta. Err\u0151l fog besz\u00e9lni <strong>Andrej Gusszin<\/strong> \u2014 technikai t\u00e1mogat\u00f3 m\u00e9rn\u00f6k <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/zabbix\/\">Zabbix SIA<\/a><\/noindex>. Andr\u00e9 a Zabbix-n\u00e1l t\u00f6bb mint 6 \u00e9ve dolgozik a t\u00e1mogat\u00e1sban, \u00e9s k\u00f6zvetlen\u00fcl is foglalkozik a teljes\u00edtm\u00e9nnyel.<\/p>\n<p>Hogyan m\u0171k\u00f6dik a TimescaleDB, \u00e9s mekkora teljes\u00edtm\u00e9nyt ny\u00fajt a hagyom\u00e1nyos PostgreSQL-hez k\u00e9pest? Milyen szerepet j\u00e1tszik a Zabbix a TimescaleDB adatb\u00e1zis sz\u00e1m\u00e1ra? Hogyan lehet null\u00e1r\u00f3l elind\u00edtani, \u00e9s hogyan migr\u00e1lhatunk PostgreSQL-r\u0151l, \u00e9s melyik konfigur\u00e1ci\u00f3 teljes\u00edtm\u00e9nye a legjobb? Ezt mind a tov\u00e1bbiakban megismerheti.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"umRk94j5M8o\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/umRk94j5M8o\/hqdefault.jpg\" alt=\"Vide\u00f3 lej\u00e1tsz\u00e1sa\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2>Teljes\u00edtm\u00e9ny kih\u00edv\u00e1sok<\/h2>\n<p>\nMinden monitoroz\u00f3 rendszer bizonyos teljes\u00edtm\u00e9ny kih\u00edv\u00e1sokkal tal\u00e1lkozik. H\u00e1romr\u00f3l fogok besz\u00e9lni: adatok gy\u0171jt\u00e9se \u00e9s feldolgoz\u00e1sa, t\u00e1rol\u00e1s, a t\u00f6rt\u00e9net tiszt\u00edt\u00e1sa.<\/p>\n<p><strong>Gyors adatgy\u0171jt\u00e9s \u00e9s feldolgoz\u00e1s. <\/strong>Egy j\u00f3 monitoroz\u00f3 rendszernek gyorsan kell megszereznie az \u00f6sszes adatot \u00e9s azokat a triggerekkel \u00f6sszhangban feldolgoznia \u2014 saj\u00e1t krit\u00e9riumai szerint. A feldolgoz\u00e1s ut\u00e1n a rendszernek ezeket az adatokat is gyorsan el kell t\u00e1rolnia az adatb\u00e1zisban, hogy k\u00e9s\u0151bb felhaszn\u00e1lhassa \u0151ket.<\/p>\n<p><strong>T\u00f6rt\u00e9nelem t\u00e1rol\u00e1sa. <\/strong>Egy j\u00f3 monitoroz\u00f3 rendszernek t\u00e1rolnia kell a t\u00f6rt\u00e9nelmet az adatb\u00e1zisban, \u00e9s k\u00f6nnyen hozz\u00e1f\u00e9rhet\u0151v\u00e9 kell tennie a metrik\u00e1ihoz. A t\u00f6rt\u00e9net sz\u00fcks\u00e9ges, hogy jelent\u00e9sekhez, grafikonokhoz, triggerekkel, k\u00fcsz\u00f6b\u00e9rt\u00e9kekkel \u00e9s sz\u00e1m\u00edtott adatpontok figyelmeztet\u00e9sekhez t\u00f6rt\u00e9n\u0151 felhaszn\u00e1l\u00e1s\u00e1hoz hozz\u00e1f\u00e9rhess\u00fcnk.<\/p>\n<p><strong>A t\u00f6rt\u00e9nelem tiszt\u00edt\u00e1sa. <\/strong>N\u00e9ha el\u00e9rkezik az a nap, amikor m\u00e1r nincs sz\u00fcks\u00e9g a metrik\u00e1k t\u00e1rol\u00e1s\u00e1ra. Mi\u00e9rt lenne sz\u00fcks\u00e9ge \u00f6t \u00e9vvel ezel\u0151tt, egy h\u00f3nappal vagy k\u00e9t h\u00f3nappal ezel\u0151tti adatokra: egyes csom\u00f3pontok elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek, egyes hosztok vagy metrik\u00e1k m\u00e1r nem sz\u00fcks\u00e9gesek, mert elavultak \u00e9s m\u00e1r nem gy\u0171jtik \u0151ket. Egy j\u00f3 monitoring rendszernek t\u00e1rolnia kell a t\u00f6rt\u00e9nelmi adatokat, \u00e9s id\u0151nk\u00e9nt t\u00f6r\u00f6lnie kell \u0151ket, hogy az adatb\u00e1zis ne duzzadjon meg.<\/p>\n<blockquote><p>Az elavult adatok t\u00f6rl\u00e9se s\u00fcrget\u0151 k\u00e9rd\u00e9s, amely jelent\u0151sen befoly\u00e1solja az adatb\u00e1zis teljes\u00edtm\u00e9ny\u00e9t.<\/p><\/blockquote>\n<p><\/p>\n<h2>Zabbix cache-el\u00e9s<\/h2>\n<p>\nA Zabbixban az els\u0151 \u00e9s m\u00e1sodik h\u00edv\u00e1s a cache-el\u00e9s seg\u00edts\u00e9g\u00e9vel van megoldva. Az adatok gy\u0171jt\u00e9s\u00e9re \u00e9s feldolgoz\u00e1s\u00e1ra a RAM-ot haszn\u00e1lj\u00e1k. T\u00e1rol\u00e1s c\u00e9lj\u00e1b\u00f3l t\u00f6rt\u00e9nik az esem\u00e9nyekben, grafikonokban \u00e9s sz\u00e1m\u00edtott adatelemekben. Az adatb\u00e1zis oldal\u00e1n van egy bizonyos cache-el\u00e9s a f\u0151 lek\u00e9rdez\u00e9sekhez, p\u00e9ld\u00e1ul grafikonokhoz.<\/p>\n<p>A Zabbix szerver oldal\u00e1n a cache-el\u00e9s a k\u00f6vetkez\u0151ket foglalja mag\u00e1ban:<\/p>\n<ul>\n<li>ConfigurationCache;<\/li>\n<li>ValueCache;<\/li>\n<li>HistoryCache;<\/li>\n<li>TrendsCache.<\/li>\n<\/ul>\n<p>\nN\u00e9zz\u00fck meg \u0151ket r\u00e9szletesebben.<\/p>\n<h3>ConfigurationCache<\/h3>\n<p>\nEz a f\u0151 cache, ahol a metrik\u00e1kat, hosztokat, adatelemeket \u00e9s triggereket t\u00e1roljuk \u2014 mindazt, ami a PreProcessinghez \u00e9s az adatok gy\u0171jt\u00e9s\u00e9hez sz\u00fcks\u00e9ges.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/122708198f6cd136fbd0420876c06e9c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMindez a ConfigurationCache-ben t\u00e1rol\u00f3dik, hogy ne gener\u00e1ljon felesleges lek\u00e9rdez\u00e9seket az adatb\u00e1zisban. A szerver ind\u00edt\u00e1sa ut\u00e1n friss\u00edtj\u00fck ezt a cache-t, konfigur\u00e1ci\u00f3kat hozunk l\u00e9tre, \u00e9s id\u0151szakonk\u00e9nt friss\u00edtj\u00fck \u0151ket.<\/p>\n<h3>Adatgy\u0171jt\u00e9s<\/h3>\n<p>\nA s\u00e9ma el\u00e9g nagy, de a f\u0151 r\u00e9sze az <strong>gy\u0171jt\u0151k.<\/strong>Ezek k\u00fcl\u00f6nb\u00f6z\u0151 \u201epollerek\u201d \u2014 adatgy\u0171jt\u00e9si folyamatok. Ezek felel\u0151sek a k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa gy\u0171jt\u00e9s\u00e9rt: SNMP-n, IPMI-n kereszt\u00fcl gy\u0171jtik az adatokat, \u00e9s mindezt a PreProcessingre tov\u00e1bb\u00edtj\u00e1k.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/deff5d9ff358f1b04b505d18c7770f21.jpg\" style=\"display:block;margin: 0 auto;\" \/><em>A gy\u0171jt\u0151k narancss\u00e1rga vonallal vannak k\u00f6r\u00fclhat\u00e1rolva.<\/em><\/p>\n<p>A Zabbixban l\u00e9teznek sz\u00e1m\u00edtott aggreg\u00e1l\u00f3 adatelemek, amelyek sz\u00fcks\u00e9gesek az ellen\u0151rz\u00e9sek agreg\u00e1l\u00e1s\u00e1hoz. Ha rendelkez\u00e9s\u00fcnkre \u00e1llnak, akkor k\u00f6zvetlen\u00fcl a ValueCache-b\u0151l vonjuk el az adatokat.<\/p>\n<h3>PreProcessing HistoryCache<\/h3>\n<p>\nMinden gy\u0171jt\u0151 a ConfigurationCache-t haszn\u00e1lja, hogy feladatokat kapjon. Ezut\u00e1n a PreProcessingre tov\u00e1bb\u00edtj\u00e1k.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/116e25100ebdf9ed209a9b04fa6fa156.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA PreProcessing a ConfigurationCache-t haszn\u00e1lja, hogy megkapja a PreProcessing l\u00e9p\u00e9seit. K\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3dokon dolgozza fel ezeket az adatokat.<\/p>\n<p>Az adatok PreProcessing \u00e1ltali feldolgoz\u00e1sa ut\u00e1n a HistoryCache-be mentj\u00fck \u0151ket, hogy feldolgozhassuk. Ezzel \u00e9r v\u00e9get az adatgy\u0171jt\u00e9s, \u00e9s \u00e1tt\u00e9r\u00fcnk a Zabbix f\u0151 folyamat\u00e1ra \u2014 <strong>history syncer<\/strong>, mivel ez monolitikus architekt\u00fara.<\/p>\n<p><em>Megjegyz\u00e9s: A PreProcessing el\u00e9g neh\u00e9z m\u0171velet. A 4.2-es verzi\u00f3t\u00f3l proxy-ra ker\u00fclt. Ha nagyon nagy a Zabbixunk, sok adatelemmel \u00e9s gyakori gy\u0171jt\u00e9ssel, akkor ez jelent\u0151sen megk\u00f6nny\u00edti a munk\u00e1t.<\/em><\/p>\n<h3>ValueCache, t\u00f6rt\u00e9nelmi \u00e9s trendk\u00e9szlet<\/h3>\n<p><\/p>\n<blockquote><p>A t\u00f6rt\u00e9neti szinkroniz\u00e1l\u00f3 a f\u0151 folyamat, amely atom\u00e1risan dolgozza fel az adatokat, azaz minden egyes \u00e9rt\u00e9ket.<\/p><\/blockquote>\n<p>\nA t\u00f6rt\u00e9neti szinkroniz\u00e1l\u00f3 a HistoryCache-b\u0151l veszi az \u00e9rt\u00e9keket, \u00e9s ellen\u0151rzi a Configuration-ben a sz\u00e1m\u00edt\u00e1sokra vonatkoz\u00f3 kiv\u00e1lt\u00f3 okokat. Ha vannak, akkor kisz\u00e1molja \u0151ket.<\/p>\n<p>A t\u00f6rt\u00e9neti szinkroniz\u00e1l\u00f3 esem\u00e9nyt \u00e9s eszkal\u00e1ci\u00f3t hoz l\u00e9tre, hogy \u00e9rtes\u00edt\u00e9seket gener\u00e1ljon, ha a konfigur\u00e1ci\u00f3 ezt megk\u00f6veteli, \u00e9s nyilv\u00e1ntart\u00e1sba veszi. Ha vannak kiv\u00e1lt\u00f3 okok a tov\u00e1bbi feldolgoz\u00e1shoz, ezeket az \u00e9rt\u00e9keket mem\u00f3ri\u00e1ban tartja a ValueCache-ben, hogy ne kelljen az esem\u00e9nyt\u00e1bl\u00e1ra hivatkoznia. \u00cdgy a ValueCache olyan adatokat halmoz fel, amelyek a kiv\u00e1lt\u00f3 okok, illetve a sz\u00e1m\u00edtand\u00f3 elemek kisz\u00e1m\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9gesek.<\/p>\n<p>A t\u00f6rt\u00e9neti szinkroniz\u00e1l\u00f3 minden adatot t\u00e1rol az adatb\u00e1zisban, majd az az lemezre ker\u00fcl. A feldolgoz\u00e1si folyamat itt v\u00e9get \u00e9r.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/4d74195381fda7756b0250982f6896be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Az adatb\u00e1zisban val\u00f3 gyors\u00edt\u00f3t\u00e1raz\u00e1s<\/h3>\n<p>\nAz adatb\u00e1zis oldal\u00e1n k\u00fcl\u00f6nf\u00e9le gyors\u00edt\u00f3t\u00e1rak vannak, amikor grafikont vagy esem\u00e9nyjelent\u00e9st szeretne megjelen\u00edteni:<\/p>\n<ul>\n<li><code>Innodb_buffer_pool<\/code> a MySQL oldal\u00e1n;<\/li>\n<li><code>shared_buffers<\/code> a PostgreSQL oldal\u00e1n;<\/li>\n<li><code>effective_cache_size<\/code> az Oracle oldal\u00e1n;<\/li>\n<li><code>shared_pool<\/code> a DB2 oldal\u00e1n.<\/li>\n<\/ul>\n<p>\nSok m\u00e1s gyors\u00edt\u00f3t\u00e1r is l\u00e9tezik, de ezek a legfontosabbak minden adatb\u00e1zis sz\u00e1m\u00e1ra. Ezek lehet\u0151v\u00e9 teszik az operat\u00edv mem\u00f3ria haszn\u00e1lat\u00e1t a gyakran sz\u00fcks\u00e9ges adatokhoz a lek\u00e9rdez\u00e9sek sor\u00e1n. Mindegyiknek megvan a saj\u00e1t technol\u00f3gi\u00e1ja erre.<\/p>\n<h3>Az adatb\u00e1zis teljes\u00edtm\u00e9nye kritikus fontoss\u00e1g\u00fa<\/h3>\n<p>\nA Zabbix szerver folyamatosan \u00f6sszegy\u0171jti az adatokat \u00e9s t\u00e1rolja azokat. Ind\u00edt\u00e1skor szint\u00e9n olvas a t\u00f6rt\u00e9nelemb\u0151l a ValueCache felt\u00f6lt\u00e9s\u00e9hez. A <strong>Zabbix API<\/strong>, amely a webes interf\u00e9sz alapjain \u00e9p\u00fcl fel. A Zabbix API kapcsolatot l\u00e9tes\u00edt az adatb\u00e1zissal, \u00e9s megkapja a sz\u00fcks\u00e9ges adatokat a grafikonokhoz, jelent\u00e9sekhez, esem\u00e9nylists\u00e1khoz \u00e9s legfrissebb probl\u00e9m\u00e1khoz.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/dd0efdc4e57c1197d448ce453012091e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA vizualiz\u00e1l\u00e1shoz \u2014 <strong>Grafan\u00e1ba<\/strong>. Felhaszn\u00e1l\u00f3ink k\u00f6r\u00e9ben ez n\u00e9pszer\u0171 megold\u00e1s. K\u00e9pes k\u00f6zvetlen\u00fcl lek\u00e9rdez\u00e9seket k\u00fcldeni a Zabbix API-n kereszt\u00fcl az adatb\u00e1zisba, \u00e9s meghat\u00e1rozott versenyt teremt az adatok beszerz\u00e9s\u00e9hez. Ez\u00e9rt sz\u00fcks\u00e9g van egy finomabb \u00e9s jobb adatb\u00e1zisbe\u00e1ll\u00edt\u00e1sra, hogy megfeleljen a gyors eredm\u00e9nykiad\u00e1snak \u00e9s tesztel\u00e9snek.<\/p>\n<h2>Housekeeper<\/h2>\n<p>\nA Zabbix teljes\u00edtm\u00e9ny\u00e9nek harmadik kih\u00edv\u00e1sa a t\u00f6rt\u00e9netek tiszt\u00edt\u00e1sa a Housekeeper seg\u00edts\u00e9g\u00e9vel. Az \u00f6sszes be\u00e1ll\u00edt\u00e1st betartja \u2014 az adatgy\u0171jt\u00e9si elemekn\u00e9l meg van adva, hogy h\u00e1ny napig kell t\u00e1rolni a v\u00e1ltoz\u00e1sok dinamik\u00e1j\u00e1t.<\/p>\n<p>A TrendsCache-t pillanatok alatt sz\u00e1m\u00edtjuk ki. Amikor adatok \u00e9rkeznek, egy \u00f3r\u00e1ra aggreg\u00e1ljuk \u0151ket, \u00e9s t\u00e1bl\u00e1kba \u00edrjuk a trendek v\u00e1ltoz\u00e1sainak dinamik\u00e1j\u00e1hoz.<\/p>\n<p>A takar\u00edt\u00f3 program elindul \u00e9s elt\u00e1vol\u00edtja az inform\u00e1ci\u00f3kat az adatb\u00e1zisb\u00f3l a szok\u00e1sos \u201eselects\u201d seg\u00edts\u00e9g\u00e9vel. Ez nem mindig hat\u00e9kony, amit a bels\u0151 folyamatok teljes\u00edtm\u00e9nygrafikonjaib\u00f3l \u00e9rthet\u00fcnk meg.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/a3af1badd14b1092bc26e0b53845ae04.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA piros grafikon azt mutatja, hogy a History syncer folyamatosan dolgozik. A fels\u0151 narancss\u00e1rga grafikon pedig a Housekeeper, ami folyamatosan elindul. V\u00e1r a DB-t\u0151l, hogy elt\u00e1vol\u00edtsa az \u00f6sszes olyan sort, amelyet megadott.<\/p>\n<p>Mikor \u00e9rdemes kikapcsolni a Housekeeper-t? P\u00e9ld\u00e1ul, ha van egy \u201eItem ID\u201d \u00e9s el kell t\u00e1vol\u00edtani az utols\u00f3 5 ezer sort egy meghat\u00e1rozott id\u0151n bel\u00fcl. Nyilv\u00e1nval\u00f3an ez indexek r\u00e9v\u00e9n t\u00f6rt\u00e9nik. De \u00e1ltal\u00e1ban a dataset nagyon nagy, \u00e9s a DB \u00edgy is leolvassa a lemezr\u0151l \u00e9s a cache-be emeli az adatokat. Ez mindig egy nagyon dr\u00e1ga m\u0171velet a DB-nek, \u00e9s az adatb\u00e1zis m\u00e9ret\u00e9t\u0151l f\u00fcgg\u0151en teljes\u00edtm\u00e9nyprobl\u00e9m\u00e1khoz vezethet.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/0778318b539fbe33318e8a7310f8a89b.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p>A Housekeeper egyszer\u0171en kikapcsolhat\u00f3. A Web-interf\u00e9szen van egy be\u00e1ll\u00edt\u00e1s a \u201eGeneral Administration\u201d-ban a Housekeeper sz\u00e1m\u00e1ra. Kikapcsoljuk a bels\u0151 Housekeeping-et a bels\u0151 trendt\u00f6rt\u00e9nethez, \u00e9s m\u00e1r nem kezeli ezt.<\/p>\n<p>A Housekeeper-t kikapcsolt\u00e1k, a grafikonok egyens\u00falyba ker\u00fcltek \u2014 milyen probl\u00e9m\u00e1k mer\u00fclhetnek fel ilyenkor, \u00e9s mi seg\u00edthet a harmadik teljes\u00edtm\u00e9nyprobl\u00e9ma megold\u00e1s\u00e1ban?<\/p>\n<h2>Partitioning \u2014 szekcion\u00e1l\u00e1s vagy part\u00edcion\u00e1l\u00e1s<\/h2>\n<p>\n\u00c1ltal\u00e1ban a part\u00edcion\u00e1l\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3don van be\u00e1ll\u00edtva minden rel\u00e1ci\u00f3s DB-n\u00e9l, amelyet felsoroltam. Mindegyik saj\u00e1t technol\u00f3gi\u00e1val rendelkezik, de \u00f6sszess\u00e9g\u00e9ben hasonl\u00f3ak. Az \u00faj part\u00edci\u00f3 l\u00e9trehoz\u00e1sa gyakran meghat\u00e1rozott probl\u00e9m\u00e1khoz vezet.<\/p>\n<p>\u00c1ltal\u00e1ban a part\u00edci\u00f3kat a \u201esetup\u201d-t\u00f3l f\u00fcgg\u0151en \u00e1ll\u00edtj\u00e1k be \u2014 az egy nap alatt l\u00e9trej\u00f6v\u0151 adatok mennyis\u00e9g\u00e9t\u0151l. \u00c1ltal\u00e1ban a Partitioning-ot egy napra \u00e1ll\u00edtj\u00e1k be, ez a minimum. Az \u00faj part\u00edci\u00f3k trendjei \u2014 1 h\u00f3napra.<\/p>\n<p>Az \u00e9rt\u00e9kek v\u00e1ltozhatnak nagyon nagy \u201esetup\u201d eset\u00e9n. Ha a kis \u201esetup\u201d 5 000 nvps (\u00faj \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9nt) alatti, a k\u00f6zepes \u2014 5 000 \u00e9s 25 000 k\u00f6z\u00f6tt, akkor a nagy \u2014 25 000 nvps felett. Ezek nagy \u00e9s nagyon nagy telep\u00edt\u00e9sek, amelyek gondos adatb\u00e1zis-be\u00e1ll\u00edt\u00e1st ig\u00e9nyelnek.<\/p>\n<p>Nagyon nagy telep\u00edt\u00e9seken a napi szakasz nem biztos, hogy optim\u00e1lis. L\u00e1ttam m\u00e1r MySQL part\u00edci\u00f3kat, amelyek napi 40 GB vagy ann\u00e1l nagyobb m\u00e9ret\u0171ek voltak. Ez egy nagyon nagy adatmennyis\u00e9g, amely probl\u00e9m\u00e1khoz vezethet, \u00e9s cs\u00f6kkenteni kell.<\/p>\n<h3>Mit ad a Partitioning?<\/h3>\n<p>\n<strong>T\u00e1bl\u00e1k szekcion\u00e1l\u00e1sa<\/strong>. Gyakran ezek k\u00fcl\u00f6n f\u00e1jlok a lemezen. A lek\u00e9rdez\u00e9si terv optim\u00e1lisan v\u00e1laszt ki egy part\u00edci\u00f3t. A part\u00edcion\u00e1l\u00e1st \u00e1ltal\u00e1ban tartom\u00e1ny szerint hajtj\u00e1k v\u00e9gre \u2014 ez a Zabbixra is vonatkozik. Mi itt \"timestamp\"-ot haszn\u00e1lunk \u2014 az id\u0151 az epoch\u00e1t\u00f3l kezdve. N\u00e1lunk ezek hagyom\u00e1nyos sz\u00e1mok. Megadja a nap kezdet\u00e9t \u00e9s v\u00e9g\u00e9t \u2014 ez a part\u00edci\u00f3.<\/p>\n<p><strong>Gyors t\u00f6rl\u00e9s<\/strong> \u2014 <code>DELETE<\/code>. Egy f\u00e1jl\/altt\u00e1bla ker\u00fcl kiv\u00e1laszt\u00e1sra, nem pedig a sorok t\u00f6rl\u00e9s\u00e9nek lek\u00e9rdez\u00e9se.<\/p>\n<p><strong>Jelent\u0151sen felgyors\u00edtja az adatok lek\u00e9rdez\u00e9s\u00e9t<\/strong> <code>SELECT<\/code> \u2014 egy vagy t\u00f6bb part\u00edci\u00f3t haszn\u00e1l, nem az eg\u00e9sz t\u00e1bl\u00e1t. Ha k\u00e9t nappal ezel\u0151tt adatokra van sz\u00fcks\u00e9ge, azokat gyorsabban v\u00e1lasztj\u00e1k ki az adatb\u00e1zisb\u00f3l, mert csak egy f\u00e1jlt kell bet\u00f6lteni a cache-be, nem pedig egy nagy t\u00e1bl\u00e1t.<\/p>\n<p>Gyakran sok adatb\u00e1zis is gyors\u00edtja <code>INSERT<\/code> \u2014 a beilleszt\u00e9seket a child-t\u00e1bl\u00e1ba.<\/p>\n<h2>TimescaleDB<\/h2>\n<p>\nA 4.2-es verzi\u00f3n\u00e1l figyelmet ford\u00edtottunk a TimescaleDB-re. Ez egy PostgreSQL kiterjeszt\u00e9s nat\u00edv interf\u00e9sszel. A kiterjeszt\u00e9s hat\u00e9konyan kezeli az id\u0151beli adatsorokat, mik\u00f6zben meg\u0151rzi a rel\u00e1ci\u00f3s adatb\u00e1zisok el\u0151nyeit. A TimescaleDB automatikusan part\u00edcion\u00e1l is.<\/p>\n<p>A TimescaleDB-ben van egy fogalom <strong>hipert\u00e1bla<\/strong> (hypertable), amelyet l\u00e9trehoz. Ebben tal\u00e1lhat\u00f3k a <strong>chunkok<\/strong> \u2014 part\u00edci\u00f3k. A chunkok automatikusan kezelt darabjai a hipert\u00e1bl\u00e1nak, amelyek nem befoly\u00e1solj\u00e1k m\u00e1s darabokat. Minden chunk rendelkezik egy saj\u00e1t id\u0151tartom\u00e1ny\u00e1val.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/91a24560ff12aa17f98689e3445f50e1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>TimescaleDB vs PostgreSQL<\/h3>\n<p>\nA TimescaleDB val\u00f3ban hat\u00e9konyan m\u0171k\u00f6dik. A kiterjeszt\u00e9s k\u00e9sz\u00edt\u0151i azt \u00e1ll\u00edtj\u00e1k, hogy \u0151k a lek\u00e9rdez\u00e9sek feldolgoz\u00e1s\u00e1hoz helyesebb algoritmust haszn\u00e1lnak, k\u00fcl\u00f6n\u00f6sen az &lt;code&gt;inserts&lt;\/code&gt; eset\u00e9ben. Amikor a dataset-bek\u00e9r\u00e9s m\u00e9retei n\u0151nek, az algoritmus folyamatos teljes\u00edtm\u00e9nyt biztos\u00edt.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/52f042018180ffd2cb6a2cf4a3af603e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n200 milli\u00f3 sor ut\u00e1n a PostgreSQL \u00e1ltal\u00e1ban jelent\u0151sen lelassul \u00e9s teljes\u00edtm\u00e9ny\u00e9nek 0-ra cs\u00f6kken. A TimescaleDB hat\u00e9konyan t\u00e1mogatja az \"inserts\"-et b\u00e1rmilyen mennyis\u00e9g\u0171 adat mellett.<\/p>\n<h3>Telep\u00edt\u00e9s<\/h3>\n<p>\nA TimescaleDB telep\u00edt\u00e9se meglehet\u0151sen egyszer\u0171 b\u00e1rmely csomagra. A <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.timescale.com\/v1.3\/getting-started\">dokument\u00e1ci\u00f3<\/a><\/noindex> minden r\u00e9szletesen le van \u00edrva \u2014 ez a PostgreSQL hivatalos csomagjait\u00f3l f\u00fcgg. A TimescaleDB k\u00e9zzel is \u00f6sszegy\u0171jthet\u0151 \u00e9s leford\u00edthat\u00f3.<\/p>\n<p>A Zabbix adatb\u00e1zisban egyszer\u0171en aktiv\u00e1ljuk a kiterjeszt\u00e9st:<\/p>\n<pre><code class=\"sql\">echo \"CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;\" | sudo -u postgres psql zabbix<\/code><\/pre>\n<p>\nAktiv\u00e1lja a <code>kiterjeszt\u00e9st<\/code> \u00e9s l\u00e9trehozza azt a Zabbix adatb\u00e1zisban. Az utols\u00f3 l\u00e9p\u00e9s a hipert\u00e1bla l\u00e9trehoz\u00e1sa.<\/p>\n<h3>A t\u00f6rt\u00e9nelem t\u00e1bl\u00e1k migr\u00e1l\u00e1sa TimescaleDB-re<\/h3>\n<p>\nEhhez egy k\u00fcl\u00f6n funkci\u00f3 \u00e1ll rendelkez\u00e9sre <code>create_hypertable<\/code>:<\/p>\n<pre><code class=\"sql\">SELECT create_hypertable('history', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nSELECT create_hypertable('history_unit', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nSELECT create_hypertable('history_log', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nSELECT create_hypertable('history_text', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nSELECT create_hypertable('history_str', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nSELECT create_hypertable('trends', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nSELECT create_hypertable('trends_unit', 'clock', chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nUPDATE config SET db_extension='timescaledb', hk_history_global=1, hk_trends_global=1<\/code><\/pre>\n<p>\nA f\u00fcggv\u00e9ny h\u00e1rom param\u00e9tert tartalmaz. Az els\u0151 \u2014<strong> az adatb\u00e1zisban l\u00e9v\u0151 t\u00e1bla,<\/strong>melyhez hipert\u00e1bl\u00e1t kell l\u00e9trehozni. A m\u00e1sodik \u2014 <strong>mez\u0151<\/strong>, amely alapj\u00e1n l\u00e9trehozzuk a <code>chunk_time_interval<\/code> \u2014 az a chunkok id\u0151szaka, amelyet haszn\u00e1lni fogunk. Az \u00e9n esetemben az id\u0151szak egy nap \u2014 86 400.<\/p>\n<p>A harmadik param\u00e9ter \u2014 <code><strong>adatmigr\u00e1l\u00e1s<\/strong><\/code>. Ha be\u00e1ll\u00edtod a <code>igaz<\/code>, akkor az \u00f6sszes aktu\u00e1lis adat \u00e1tker\u00fcl az el\u0151re l\u00e9trehozott chunkokba. \u00c9n magam haszn\u00e1ltam <code>adatmigr\u00e1l\u00e1s<\/code>. Kb. 1 TB volt, ami t\u00f6bb mint egy \u00f3r\u00e1t vett ig\u00e9nybe. Egyes esetekben a tesztel\u00e9s sor\u00e1n elt\u00e1vol\u00edtottam a t\u00e1rol\u00e1sra nem k\u00f6telez\u0151 karaktert\u00edpus\u00fa t\u00f6rt\u00e9neti adatokat, hogy ne kelljen \u00e1tvinni \u0151ket.<\/p>\n<p>Az utols\u00f3 l\u00e9p\u00e9s \u2014\u00a0<code><strong>UPDATE<\/strong><\/code>: az <code>db_extension<\/code> be\u00e1ll\u00edt\u00e1sa <code>'timescaledb', hogy az adatb\u00e1zis tudja, hogy van ez a kiterjeszt\u00e9s. A Zabbix aktiv\u00e1lja ezt, \u00e9s helyesen haszn\u00e1lja a szintaxist \u00e9s a lek\u00e9rdez\u00e9seket az adatb\u00e1zisra \u2014 ezek azok a funkci\u00f3k, amelyek sz\u00fcks\u00e9gesek a TimescaleDB-hez.<\/code>A hardver konfigur\u00e1l\u00e1sa<\/p>\n<h2>K\u00e9t szervert haszn\u00e1ltam. Az els\u0151 \u2014<\/h2>\n<p>\nVMware g\u00e9p <strong>. Ez el\u00e9g kicsi: 20 Intel\u00ae Xeon\u00ae CPU E5-2630 v4 @ 2.20GHz processzor, 16 GB RAM \u00e9s 200 GB SSD meghajt\u00f3.<\/strong>Ezen telep\u00edtettem a PostgreSQL 10.8-t Debian 10.8-1.pgdg90+1 oper\u00e1ci\u00f3s rendszerrel \u00e9s xfs f\u00e1jlrendszert. Minden minim\u00e1lisan be\u00e1ll\u00edtottam, hogy ez a konkr\u00e9t adatb\u00e1zis legyen haszn\u00e1lva, kiv\u00e9ve azt, amit a Zabbix saj\u00e1t mag\u00e1nak fog haszn\u00e1lni.<\/p>\n<p>Ugyanezen a g\u00e9pen futott a Zabbix szerver, a PostgreSQL \u00e9s<\/p>\n<p>a terhel\u00e9smint\u00e1k <strong>. \u00d6sszesen 50 akt\u00edv \u00fcgyn\u00f6k\u00f6m volt, akik a<\/strong>LoadableModule <code>, hogy nagyon gyorsan k\u00fcl\u00f6nb\u00f6z\u0151 eredm\u00e9nyeket gener\u00e1ljanak: sz\u00e1mokat, sztringeket. Nagy mennyis\u00e9g\u0171 adatot t\u00f6lt\u00f6ttem fel az adatb\u00e1zisba.<\/code>Eredetileg a konfigur\u00e1ci\u00f3 tartalmazta<\/p>\n<p>5 000 adatpontot <strong>minden hoszton. Szinte minden elem tartalmazott egy triggert, hogy hasonl\u00edtson a val\u00f3s telep\u00edt\u00e9sekhez. N\u00e9h\u00e1ny esetben t\u00f6bb mint egy trigger is volt. Egy h\u00e1l\u00f3zati csom\u00f3pont sz\u00e1m\u00e1ra<\/strong> 3 000-7 000 triggert <strong>haszn\u00e1lunk. Az adatelemek friss\u00edt\u00e9si id\u0151k\u00f6ze \u2014<\/strong>.<\/p>\n<p>4-7 m\u00e1sodperc. <strong>4-7 m\u00e1sodperc<\/strong>A terhel\u00e9st \u00fagy szab\u00e1lyoztam, hogy nemcsak 50 \u00fcgyn\u00f6k\u00f6t haszn\u00e1ltam, hanem m\u00e9g t\u00f6bbet is hozz\u00e1adtam. Az adatok dinamikus elemeivel szab\u00e1lyoztam a terhel\u00e9st, \u00e9s az friss\u00edt\u00e9si intervallumot 4 m\u00e1sodpercre cs\u00f6kkentettem.<\/p>\n<h3>PostgreSQL. 35 000 nvps<\/h3>\n<p>\nAz els\u0151 ind\u00edt\u00e1s ezen a hardveren tiszta PostgreSQL-lel zajlott \u2014 35 ezer \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9nt. Mint l\u00e1that\u00f3, az adatok besz\u00far\u00e1sa m\u00e1sodpercek t\u00f6red\u00e9k\u00e9t vesz ig\u00e9nybe \u2014 minden j\u00f3l \u00e9s gyorsan m\u0171k\u00f6dik. Az egyetlen probl\u00e9ma, hogy a 200 GB-os SSD meghajt\u00f3 gyorsan megtelik.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/e84b2eb0f6fbbd902c5feab367c750ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz a Zabbix teljes\u00edtm\u00e9nym\u00e9r\u0151 standard m\u0171szerfala \u2014 a szerverek.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/c3afe021acf8e272813b8d8c2f82e762.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz els\u0151 k\u00e9k grafikon \u2014 az \u00e9rt\u00e9kek sz\u00e1ma m\u00e1sodpercenk\u00e9nt. A jobb oldali m\u00e1sodik grafikon \u2014 a gy\u0171jt\u0151 folyamatok terhel\u00e9se. A harmadik grafikon \u2014 a bels\u0151 gy\u0171jt\u00e9si folyamatok terhel\u00e9se: history syncerek \u00e9s Housekeeper, amely itt elegend\u0151 ideig futott.<\/p>\n<p>A negyedik grafikon a HistoryCache haszn\u00e1lat\u00e1t mutatja. Ez l\u00e9nyeg\u00e9ben egy puffert jelent az adatb\u00e1zisba val\u00f3 sz\u00far\u00e1s el\u0151tt. Az \u00f6t\u00f6dik z\u00f6ld grafikon a ValueCache haszn\u00e1lat\u00e1t mutatja, azaz hogy h\u00e1ny tal\u00e1lat van a ValueCache-ben a triggerekn\u00e9l \u2014 ez n\u00e9h\u00e1ny ezer \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9nt.<\/p>\n<h3>PostgreSQL. 50 000 nvps<\/h3>\n<p>\nEzut\u00e1n 50 ezer \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9nti terhel\u00e9sre n\u00f6veltem ezt a hardvert.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/8f10944486d5502b57d36059382d551b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHousekeeper bet\u00f6lt\u00e9s\u00e9n\u00e9l 10 ezer \u00e9rt\u00e9k besz\u00far\u00e1sa 2-3 m\u00e1sodpercet vett ig\u00e9nybe.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/5228c1735f0ee2da7f827093f3c7b1f9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>A Housekeeper m\u00e1r elkezdett h\u00e1tr\u00e1ltatni a munk\u00e1ban.<\/em><\/p>\n<p>A harmadik grafikonb\u00f3l l\u00e1tszik, hogy \u00e1ltal\u00e1ban a trapper-ek \u00e9s history syncerek terhel\u00e9se m\u00e9g mindig 60% k\u00f6r\u00fcl van. A negyedik grafikonon a HistoryCache m\u00e1r elkezdett akt\u00edvan felt\u00f6lt\u0151dni a Housekeeper m\u0171k\u00f6d\u00e9se alatt. Az 20%-ra t\u00f6lt\u0151d\u00f6tt fel \u2014 ez k\u00f6r\u00fclbel\u00fcl 0,5 GB.<\/p>\n<h3>PostgreSQL. 80 000 nvps<\/h3>\n<p>\nEzut\u00e1n a terhel\u00e9st 80 ezer \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9ntire n\u00f6veltem. Ez k\u00f6r\u00fclbel\u00fcl 400 ezer adatot \u00e9s 280 ezer trigert jelent.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/f6c6b0d6793f96523f7406e68f98c608.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>A harminc history syncer bet\u00f6lt\u00e9s\u00e9n\u00e9l a besz\u00far\u00e1s m\u00e1r el\u00e9gg\u00e9 magas.<\/em><\/p>\n<p>Ezenk\u00edv\u00fcl k\u00fcl\u00f6nb\u00f6z\u0151 param\u00e9tereket is n\u00f6veltem: history syncerek, cache-ek.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/6ca7edd76aea6fdec00a61a0a6dc34e5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA hardveremen a history syncerek terhel\u00e9se a maximumra n\u0151tt. A HistoryCache gyorsan felt\u00f6lt\u0151d\u00f6tt adatokkal \u2014 a pufferen feldolgoz\u00e1sra v\u00e1r\u00f3 adatok gy\u0171ltek \u00f6ssze.<\/p>\n<p>Ez id\u0151 alatt figyeltem, hogyan haszn\u00e1lj\u00e1k a processzort, a RAM-ot \u00e9s a rendszer egy\u00e9b param\u00e9tereit, \u00e9s felfedeztem, hogy a lemezhaszn\u00e1lat maxim\u00e1lis volt.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/e964a000156b561accd23b4e1644f4a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEl\u00e9rtem a <strong>lemez maxim\u00e1lis kihaszn\u00e1lts\u00e1g\u00e1t<\/strong> ezen a hardveren \u00e9s ezen a virtu\u00e1lis g\u00e9pen. Ilyen intenzit\u00e1s mellett a PostgreSQL m\u00e1r akt\u00edvan kezdte eldobni az adatokat, \u00e9s a lemez m\u00e1r nem tudta elv\u00e9gezni az \u00edr\u00e1st \u00e9s az olvas\u00e1st.<\/p>\n<h3>M\u00e1sodik szerver<\/h3>\n<p>\nK\u00e9rek egy m\u00e1sik szervert, amely m\u00e1r 48 processzort \u00e9s 128 GB RAM-ot tartalmazott. Finom\u00edtottam rajta \u2013 telep\u00edtettem 60 history syncert, \u00e9s el\u00e9rtem egy megfelel\u0151 teljes\u00edtm\u00e9nyt.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/591fc759b336d5fb2091460036b136bf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVal\u00f3j\u00e1ban ez m\u00e1r a teljes\u00edtm\u00e9ny hat\u00e1ra, ahol cselekedni kell.<\/p>\n<h3>TimescaleDB. 80 000 nvps<\/h3>\n<p>\nA f\u0151 feladatom az volt, hogy ellen\u0151rizzem a TimescaleDB k\u00e9pess\u00e9geit a Zabbix terhel\u00e9s\u00e9n. 80 ezer \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9nt \u2013 ez sok, a metrik\u00e1k gy\u0171jt\u00e9si gyakoris\u00e1g\u00e1val (Yandexen k\u00edv\u00fcl, term\u00e9szetesen) \u00e9s egy el\u00e9g nagy \u201esetup\u201d-pal.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/aa569847e7bc31baab91661db1ee78a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMinden grafikonon van egy g\u00f6rbe \u2013 ez \u00e9ppen az adatok migr\u00e1ci\u00f3ja. A Zabbix szerveren t\u00f6rt\u00e9nt g\u00f6rb\u00e9ket k\u00f6vet\u0151en a history syncer terhel\u00e9si profilja dr\u00e1maian megv\u00e1ltozott \u2013 h\u00e1romszoros\u00e1ra cs\u00f6kkent.<\/p>\n<blockquote><p>A TimescaleDB lehet\u0151v\u00e9 teszi, hogy az adatokat gyakorlatilag h\u00e1romszor gyorsabban illessz\u00fck be, \u00e9s kevesebb HistoryCache-t haszn\u00e1ljunk.<\/p><\/blockquote>\n<p>\nEnnek megfelel\u0151en az adatok id\u0151ben \u00e9rkeznek.<\/p>\n<h3>TimescaleDB. 120 000 nvps<\/h3>\n<p>\nEzut\u00e1n az adatelemek sz\u00e1m\u00e1t 500 ezerre n\u00f6veltem. A f\u0151 feladat az volt, hogy ellen\u0151rizzem a TimescaleDB k\u00e9pess\u00e9geit \u2013 a becs\u00fclt \u00e9rt\u00e9k 125 ezer \u00e9rt\u00e9k m\u00e1sodpercenk\u00e9nt.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/4770ca4030e1c086f2fd9305a12496bb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz egy m\u0171k\u00f6d\u0151 \u201esetup\u201d, amely sok\u00e1ig m\u0171k\u00f6dhet. De mivel a diskem csak 1,5 TB-os volt, p\u00e1r nap alatt megt\u00f6lt\u00f6ttem.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/1ad521b909a22a7db81a9ed802d348e7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA legfontosabb, hogy ekkor \u00faj TimescaleDB part\u00edci\u00f3k is l\u00e9trej\u00f6ttek.<\/p>\n<p>Teljes\u00edtm\u00e9ny szempontj\u00e1b\u00f3l ez teljesen \u00e9szrev\u00e9tlen. Amikor a MySQL-ben p\u00e9ld\u00e1ul part\u00edci\u00f3kat hoznak l\u00e9tre, minden m\u00e1sk\u00e9pp zajlik. \u00c1ltal\u00e1ban \u00e9jszaka t\u00f6rt\u00e9nik, mert blokkolja a k\u00f6z\u00f6s besz\u00far\u00e1st, a t\u00e1bl\u00e1kkal val\u00f3 munk\u00e1t, \u00e9s szolg\u00e1ltat\u00e1sroml\u00e1st okozhat. A TimescaleDB eset\u00e9ben erre nincs p\u00e9lda.<\/p>\n<p>P\u00e9ld\u00e1ul mutatok egy grafikont a k\u00f6z\u00f6ss\u00e9g sz\u00e1mos grafikonj\u00e1b\u00f3l. A k\u00e9pen a TimescaleDB be van kapcsolva, ennek k\u00f6sz\u00f6nhet\u0151en a processzor io.weight kihaszn\u00e1l\u00e1sa cs\u00f6kkent. A bels\u0151 folyamatok elemeinek haszn\u00e1lata is cs\u00f6kkent. R\u00e1ad\u00e1sul ez egy szok\u00e1sos virtu\u00e1lis g\u00e9p szokv\u00e1nyos plasztikus lemezein, nem SSD-n.<\/p>\n<p><img decoding=\"async\" alt=\"Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edci\u00f3s t\u00e1mogat\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal\" src=\"\/wp-content\/uploads\/2019\/10\/bea0cd0f1448e1d1b3a5f979d51ce61c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>K\u00f6vetkeztet\u00e9sek<\/h2>\n<p>\n<strong>A TimescaleDB j\u00f3 megold\u00e1s a kis \u201esetup\u201d-ok sz\u00e1m\u00e1ra<\/strong>, amelyek a lemez teljes\u00edtm\u00e9ny\u00e9be \u00fctk\u00f6znek. Ez lehet\u0151v\u00e9 teszi, hogy j\u00f3l m\u0171k\u00f6djenek, am\u00edg az adatb\u00e1zist gyorsabb hardverre nem migr\u00e1lj\u00e1k.<\/p>\n<p>A TimescaleDB egyszer\u0171en be\u00e1ll\u00edthat\u00f3, teljes\u00edtm\u00e9nyn\u00f6veked\u00e9st ad, j\u00f3l m\u0171k\u00f6dik a Zabbix-szal \u00e9s <strong>el\u0151ny\u00f6kkel b\u00edr a PostgreSQL-lel szemben.<\/strong>.<\/p>\n<p>Ha PostgreSQL-t haszn\u00e1l, \u00e9s nem tervezi a v\u00e1lt\u00e1st, akkor javaslom, <strong>hogy a PostgreSQL-t haszn\u00e1lja a TimescaleDB kiterjeszt\u00e9s\u00e9vel Zabbix-szal egy\u00fctt.<\/strong>Ez a megold\u00e1s hat\u00e9konyan m\u0171k\u00f6dik k\u00f6zepes \u201esetup\u201d-okig.<\/p>\n<blockquote>\n<p>Ha \u201emagas teljes\u00edtm\u00e9nyt\u201d mondunk \u2013 ezt \u00e9rtj\u00fck alatta. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a><\/noindex>. Nincs sok h\u00e1tra, hogy megismerj\u00fck azokat a technol\u00f3gi\u00e1kat \u00e9s gyakorlatokat, amelyek lehet\u0151v\u00e9 teszik a szolg\u00e1ltat\u00e1sok sz\u00e1m\u00e1ra, hogy milli\u00e1rdnyi felhaszn\u00e1l\u00f3t szolg\u00e1ljanak ki. Lista <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\">jelent\u00e9sekr\u0151l<\/a><\/noindex> november 7-re \u00e9s 8-ra m\u00e1r \u00f6ssze\u00e1ll\u00edtottuk, de <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/meetups\">meetupokat<\/a><\/noindex> m\u00e9g mindig lehet javasolni.<\/p>\n<p>Iratkozzon fel a <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/VYVaf\">h\u00edrlev\u00e9lre<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/HighLoadChannel\">telegram<\/a><\/noindex>, amelyeken bemutatjuk a k\u00f6zelg\u0151 konferencia k\u00fcl\u00f6nlegess\u00e9geit, \u00e9s megtudhatja, hogyan hozhatja ki a legt\u00f6bbet bel\u0151le.<\/p>\n<\/blockquote>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/470902\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. \u041a\u0430\u043a \u0438 \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u0440\u0435\u043c\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0432\u0441\u0435\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430: \u0441\u0431\u043e\u0440 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0435\u0435 \u043e\u0447\u0438\u0441\u0442\u043a\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0432\u0440\u0435\u043c\u044f. \u041d\u0435\u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0434\u043b\u044f \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c. \u041e\u043d\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38927","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: Zabbix \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TimescaleDB | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Magas teljes\u00edtm\u00e9ny \u00e9s nat\u00edv part\u00edcion\u00e1l\u00e1s: Zabbix TimescaleDB t\u00e1mogat\u00e1ssal | ProHoster","description":"A Zabbix egy megfigyel\u0151rendszer.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: Zabbix \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TimescaleDB | ProHoster","og:description":"Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:48+00:00","article:modified_time":"2019-10-31T19:26:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38927","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 23:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 21:14:06","updated":"2026-01-23 23:59:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/38927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=38927"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/38927\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/29204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=38927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=38927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=38927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}