Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

ʻO Zabbix kahi ʻōnaehana nānā. E like me nā ʻōnaehana ʻē aʻe, ke kū nei ʻo ia i ʻekolu mau pilikia nui o nā ʻōnaehana nānā a pau: ʻohi a hoʻoili i ka ʻikepili, mālama i ka mōʻaukala, a me ka hoʻomaʻemaʻe ʻana.

ʻO nā pae o ka loaʻa ʻana, ka hana ʻana a me ka hoʻopaʻa ʻana i ka ʻikepili he manawa. ʻAʻole nui, akā no kahi ʻōnaehana nui hiki ke hopena i nā lohi nui. ʻO ka pilikia o ka mālama ʻana he pilikia komo ʻikepili. Hoʻohana ʻia lākou no nā hōʻike, nā loiloi a me nā hoʻoiho. Hoʻopili pū ʻia ka hana ʻana o nā lohi i ka ʻike ʻikepili. Ke ulu ka waihona, pono e holoi ʻia nā ʻikepili pili ʻole. He hana paʻakikī ka wehe ʻana e ʻai ai i kekahi mau kumuwaiwai.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Hoʻoholo ʻia nā pilikia o ka lohi i ka wā o ka hōʻiliʻili ʻana a me ka mālama ʻana ma Zabbix ma o ka hoʻopaʻa ʻana: he mau ʻano o ka cache, ka hoʻopaʻa ʻana i ka waihona. No ka hoʻoponopono ʻana i ke kolu o ka pilikia, ʻaʻole kūpono ka caching, no laila ua hoʻohana ʻo Zabbix iā TimescaleDB. E haʻi aku ʻo ia iā ʻoe Andrey Gushchin - ʻenehana kākoʻo ʻenehana Zabbix SIA. Ke kākoʻo nei ʻo Andrey iā Zabbix ma mua o 6 mau makahiki a loaʻa iā ia ka ʻike pololei me ka hana.

Pehea e hana ai ʻo TimescaleDB, he aha ka hana e hiki ai ke hoʻohālikelike i ka PostgreSQL maʻamau? He aha ka hana a Zabbix no ka ʻikepili TimescaleDB? Pehea e hoʻomaka ai mai ka ʻōpala a pehea e neʻe ai mai PostgreSQL a ʻo wai ka hoʻonohonoho ʻoi aku ka maikaʻi o ka hana? E pili ana i kēia mau mea ma lalo o ka ʻoki.

Nā Luʻi Huahana

Ke kū nei kēlā me kēia ʻōnaehana nānā i nā pilikia hana kūikawā. E kamaʻilio wau e pili ana i ʻekolu o lākou: ka hōʻiliʻili ʻikepili a me ka hoʻoili ʻana, ka mālama ʻana, a me ka holoi ʻana i ka mōʻaukala.

ʻOhi ʻikepili wikiwiki a hana. Pono e loaʻa koke i kahi ʻōnaehana kiaʻi maikaʻi nā ʻikepili āpau a hoʻoponopono iā ia e like me nā ʻōlelo hoʻāla - e like me kāna mau pae. Ma hope o ka hana ʻana, pono e mālama koke ka ʻōnaehana i kēia ʻikepili i ka waihona no ka hoʻohana hope.

Waihona mōʻaukala. Pono ka ʻōnaehana nānā maikaʻi e mālama i ka mōʻaukala i loko o kahi waihona a hāʻawi maʻalahi i ke komo ʻana i nā ana. Pono e hoʻohana ʻia ka mōʻaukala i nā hōʻike, nā kiʻi, nā mea hoʻoulu, nā paepae, a me nā mea ʻikepili makaʻala i helu ʻia.

Hoʻomaʻemaʻe i ka mōʻaukala. I kekahi manawa hiki mai kahi lā ʻaʻole pono ʻoe e mālama i nā metric. No ke aha ʻoe e makemake ai i ka ʻikepili i hōʻiliʻili ʻia i 5 mau makahiki i hala, hoʻokahi mahina a ʻelua paha: ua holoi ʻia kekahi mau nodes, ʻaʻole pono kekahi mau pūʻali a i ʻole metric no ka mea ua kahiko lākou a ʻaʻole i hōʻiliʻili hou ʻia. Pono ka ʻōnaehana nānā pono e mālama i ka ʻikepili mōʻaukala a holoi i kēlā me kēia manawa i ʻole e ulu ka waihona.

He pilikia koʻikoʻi ka hoʻomaʻemaʻe ʻana i ka ʻikepili palaka e pili nui ana i ka hana ʻikepili.

Hoʻokomo ʻia ma Zabbix

Ma Zabbix, hoʻopau ʻia nā kelepona mua a me ka lua me ka hoʻohana ʻana i ka caching. Hoʻohana ʻia ka RAM e hōʻiliʻili a hoʻoili i ka ʻikepili. No ka mālama ʻana - ka mōʻaukala i nā mea hoʻoheheʻe, nā kiʻi a me nā mea ʻikepili helu. Aia ma ka ʻaoʻao waihona waihona no nā koho maʻamau, no ka laʻana, nā kiʻi.

ʻO ka mālama ʻana ma ka ʻaoʻao o ka server Zabbix ponoʻī:

  • ConfigurationCache;
  • ValueCache;
  • HistoryCache;
  • TrendsCache.

E noʻonoʻo pono iā lākou i nā kikoʻī.

ConfigurationCache

ʻO kēia ka hūnā nui kahi e mālama ai mākou i nā metrics, hosts, data items, triggers - nā mea āpau a mākou e pono ai no PreProcessing a no ka hōʻiliʻili ʻikepili.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Mālama ʻia kēia mau mea a pau ma ConfigurationCache i ʻole e hana i nā nīnau pono ʻole i ka waihona. Ma hope o ka hoʻomaka ʻana o ke kikowaena, hoʻonui mākou i kēia cache, hana a hoʻololi i nā hoʻonohonoho i kēlā me kēia manawa.

ʻOhi ʻikepili

He nui ka kiʻi, akā ʻo ka mea nui i loko nā ʻohi ʻohi. ʻO kēia nā ʻano "pollers" - nā kaʻina hana hui. Na lākou ke kuleana no nā ʻano hui like ʻole: hōʻiliʻili lākou i ka ʻikepili ma o SNMP, IPMI, a hoʻoili iā ia a pau i PreProcessing.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDBHōʻike ʻia nā mea ʻohi i ka ʻalani.

Ua helu ʻo Zabbix i nā mea hōʻuluʻulu e pono ai e hōʻuluʻulu i nā loiloi. Inā loaʻa iā mākou, kiʻi mākou i ka ʻikepili no lākou mai ka ValueCache.

PreProcessing HistoryCache

Hoʻohana nā mea ʻohi a pau i ka ConfigurationCache no ka loaʻa ʻana o nā hana. A laila hoʻololi lākou iā lākou i PreProcessing.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Hoʻohana ʻo PreProcessing i ka ConfigurationCache e loaʻa i nā ʻanuʻu PreProcessing. Hana ia i kēia ʻikepili ma nā ʻano like ʻole.

Ma hope o ka hoʻoili ʻana i ka ʻikepili me ka hoʻohana ʻana i ka PreProcessing, mālama mākou iā ia ma HistoryCache no ka hana ʻana. Hoʻopau kēia i ka hōʻiliʻili ʻikepili a neʻe mākou i ke kaʻina hana nui ma Zabbix - mea hoʻoponopono mōʻaukala, no ka mea, he hale hana monolithic.

Nānā: He hana paʻakikī ka PreProcessing. Me ka v 4.2 ua hoʻoneʻe ʻia i kahi koho. Inā loaʻa iā ʻoe kahi Zabbix nui loa me ka nui o nā mea ʻikepili a me ka pinepine o ka hōʻiliʻili ʻana, a laila e maʻalahi ka hana.

ValueCache, mōʻaukala a me nā ʻano cache

ʻO ka mōʻaukala syncer ke kaʻina hana nui e hoʻoheheʻe ʻia i kēlā me kēia mea ʻikepili, ʻo ia hoʻi, kēlā me kēia waiwai.

Lawe ʻo History Syncer i nā waiwai mai HistoryCache a nānā i ka Configuration no ka loaʻa ʻana o nā mea hoʻomaka no ka helu ʻana. Inā loaʻa lākou, helu ia.

Hoʻokumu ka mōʻaukala syncer i kahi hanana, escalation e hana i nā mākaʻikaʻi inā koi ʻia e ka hoʻonohonoho ʻana, a me nā moʻolelo. Inā loaʻa nā mea hoʻonā no ka hana ʻana ma hope, a laila mālama ia i kēia waiwai ma ValueCache i ʻole e komo i ka papa mōʻaukala. ʻO kēia keʻano o ka hoʻopihaʻiaʻana o ValueCache me nāʻikepili e pono ai ke helu i nā mea hoʻomaka a me nā mea i heluʻia.

Kākau ʻo History Syncer i nā ʻikepili a pau i ka waihona, a kākau i ka disk. Pau ke kaʻina hana ma ʻaneʻi.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Hoʻokomo i ka waihona

Aia ma ka ʻaoʻao ʻikepili he mau huna huna ke makemake ʻoe e nānā i nā kiʻi a i ʻole nā ​​​​hōʻike i nā hanana:

  • Innodb_buffer_pool ma ka ʻaoʻao MySQL;
  • shared_buffers ma ka ʻaoʻao PostgreSQL;
  • effective_cache_size ma ka aoao Oracle;
  • shared_pool ma ka aoao DB2.

Nui nā waihona ʻē aʻe, akā ʻo kēia nā mea nui no nā ʻikepili āpau. Hāʻawi lākou iā ʻoe e mālama i ka ʻikepili i ka RAM i makemake pinepine ʻia no nā nīnau. Loaʻa iā lākou kā lākou ʻenehana ponoʻī no kēia.

He mea koʻikoʻi ka hana ʻikepili

ʻOhi mau ke kikowaena Zabbix i ka ʻikepili a kākau iā ia. Ke hoʻomaka hou, heluhelu ʻia mai ka mōʻaukala e hoʻopiha i ka ValueCache. Hoʻohana i nā palapala a me nā hōʻike Zabbix API, i kūkulu ʻia ma luna o kahi kikowaena pūnaewele. Loaʻa ka Zabbix API i ka waihona a hoʻihoʻi i ka ʻikepili kūpono no nā kiʻi, nā hōʻike, nā papa inoa hanana a me nā pilikia hou.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

No ka nānā ʻana - grafana. He hopena kaulana kēia i waena o kā mākou mea hoʻohana. Hiki iā ia ke hoʻouna pololei i nā noi ma o ka Zabbix API a i ka waihona, a hana i kekahi hoʻokūkū no ka loaʻa ʻana o ka ʻikepili. No laila, ʻoi aku ka maikaʻi a me ka maikaʻi o ka hoʻoponopono ʻana i ka waihona e hoʻohālikelike i ka hoʻopuka wikiwiki ʻana o nā hopena a me ka hoʻāʻo.

housekeeper

ʻO ke kolu o ka hana hoʻokūkū ma Zabbix ʻo ka hoʻomaʻemaʻe ʻana i ka mōʻaukala me ka hoʻohana ʻana iā Housekeeper. Hoʻopili ia i nā hoʻonohonoho āpau - hōʻike nā mea ʻikepili i ka lōʻihi o ka mālama ʻana i ka dynamics o nā loli (trend) i nā lā.

Helu mākou iā TrendsCache ma ka lele. Ke hiki mai ka ʻikepili, hōʻuluʻulu mākou iā ia no hoʻokahi hola a hoʻopaʻa ʻia i loko o nā papa no ka dinamika o nā loli.

Hoʻomaka ka hale mālama hale a holoi i ka ʻike mai ka waihona me ka hoʻohana ʻana i nā "koho". ʻAʻole maikaʻi kēia i nā manawa a pau, e like me ka mea i ʻike ʻia mai nā kiʻi hana o nā kaʻina kūloko.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Hōʻike ka pakuhi ʻulaʻula e paʻa mau ana ka mōʻaukala syncer. ʻO ka pakuhi ʻalani ma luna, ʻo ia ʻo Housekeeper, e holo mau ana. Ke kali nei ʻo ia i ka ʻikepili e holoi i nā lālani a pau āna i ʻōlelo ai.

I ka manawa hea ʻoe e hoʻopau ai i ka Housekeeper? No ka laʻana, aia kahi "Item ID" a pono ʻoe e holoi i nā lālani 5 tausani hope loa i loko o kekahi manawa. ʻOiaʻiʻo, hiki kēia ma ka index. Akā ʻo ka maʻamau he nui loa ka waihona, a heluhelu mau ka waihona mai ka disk a waiho i loko o ka huna. He hana pipiʻi loa kēia no ka waihona a, ma muli o ka nui o ka waihona, hiki ke alakaʻi i nā pilikia hana.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

He mea maʻalahi ka mālama hale. Aia ma ka ʻaoʻao pūnaewele kahi hoʻonohonoho i ka "Administration general" no Housekeeper. Hoʻopau mākou i ka Housekeeping kūloko no ka mōʻaukala o loko a ʻaʻole ia e hoʻokele hou.

Ua hoʻopau ʻia ka mea mālama hale, ua hoʻohaʻahaʻa ʻia nā kiʻi - he aha nā pilikia i loaʻa i kēia hihia a he aha ka mea e hiki ke kōkua i ka hoʻoponopono ʻana i ke kolu o ka hoʻokō ʻana?

Māhele ʻāpana - partitioning or partitioning

ʻO ka maʻamau, ua hoʻonohonoho ʻia ka partitioning ma kahi ʻano ʻokoʻa ma kēlā me kēia waihona pili pili aʻu i helu ai. Loaʻa i kēlā me kēia me kāna ʻenehana ponoʻī, akā like lākou ma ka laulā. ʻO ka hana ʻana i kahi ʻāpana hou e alakaʻi pinepine ai i kekahi mau pilikia.

ʻO ka maʻamau, hoʻonohonoho ʻia nā ʻāpana ma muli o ka "hoʻonohonoho" - ka nui o ka ʻikepili i hana ʻia i hoʻokahi lā. E like me ke kānāwai, hoʻopuka ʻia ʻo Partitioning i hoʻokahi lā, ʻo ia ka liʻiliʻi loa. No nā ʻano o kahi pūʻulu hou - 1 mahina.

Hiki ke loli nā waiwai inā nui loa ka "hoʻonohonoho". Inā piʻi ka "hoʻonohonoho" liʻiliʻi i 5 nvps (nā waiwai hou i kēlā me kēia kekona), ʻo ka mea waena mai 000 a 5, a laila ʻoi aku ka nui ma luna o 000 nvps. ʻO kēia nā hoʻonohonoho nui a nui loa e pono ai ka hoʻonohonoho pono ʻana o ka waihona.

Ma nā hoʻonohonoho nui loa, ʻaʻole kūpono ka manawa o hoʻokahi lā. Ua ʻike au i nā ʻāpana MySQL o 40 GB a ʻoi aku paha i kēlā me kēia lā. He nui loa kēia o ka ʻikepili i hiki ke hoʻopilikia a pono e hoʻemi ʻia.

He aha ka mea e hāʻawi ai ʻo Partitioning?

Nā papa ʻaina. ʻO ka manawa pinepine he mau faila kaʻawale kēia ma ka disk. Koho ka hoʻolālā noiʻi i hoʻokahi ʻāpana ʻoi aku ka maikaʻi. Hoʻohana maʻamau ka hoʻokaʻawale ʻana e ka laulā - ʻoiaʻiʻo nō kēia no Zabbix. Hoʻohana mākou i ka "timestamp" ma laila - manawa mai ka hoʻomaka ʻana o ke au. He helu maʻamau kēia no mākou. Hoʻonoho ʻoe i ka hoʻomaka a me ka hopena o ka lā - he ʻāpana kēia.

Wehe koke - DELETE. Hoʻokahi faila/subtable i koho ʻia, ma mua o kahi koho o nā lālani no ka holoi ʻana.

Hoʻoikaika nui i ka loaʻa ʻana o ka ʻikepili SELECT - hoʻohana i hoʻokahi a ʻoi aku paha nā ʻāpana, ma mua o ka papaʻaina holoʻokoʻa. Inā ʻoe e komo i ka ʻikepili i ʻelua mau lā, ʻoi aku ka wikiwiki o ka kiʻi ʻana mai ka waihona no ka mea pono ʻoe e hoʻouka i hoʻokahi faila i loko o ka waihona a hoʻihoʻi, ʻaʻole i ka papaʻaina nui.

Hoʻonui pinepine ʻia nā ʻikepili he nui INSERT - nā hoʻokomo i loko o ka papaʻaina keiki.

TimescaleDB

No ka v 4.2, ua huli mākou i ko mākou manaʻo iā TimescaleDB. He hoʻonui kēia no PostgreSQL me kahi kikowaena maoli. Hana maikaʻi ka hoʻonui ʻana me ka ʻikepili manawa, me ka nalowale ʻole o nā pono o nā ʻikepili pili. Hoʻokaʻawale maʻalahi ʻo TimescaleDB.

He manaʻo ko TimescaleDB pāʻālua (hypertable) āu e hana ai. Aia i loko nā ʻāpana - nā ʻāpana. Hoʻohana ʻia ʻo Chunks i nā ʻāpana hypertable ʻaʻole pili i nā ʻāpana ʻē aʻe. Loaʻa i kēlā me kēia puʻupuʻu kona manawa ponoʻī.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

TimescaleDB vs PostgreSQL

Hana maikaʻi ʻo TimescaleDB. Ke koi nei nā mea hana o ka hoʻonui e hoʻohana lākou i kahi algorithm hoʻoponopono hulina pololei, i inserts . Ke ulu nei ka nui o ka hoʻokomo ʻana i ka dataset, mālama ka algorithm i ka hana mau.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Ma hope o 200 miliona mau lālani, hoʻomaka ʻo PostgreSQL i ka sag nui a nalowale ka hana i ka 0. ʻAe ʻo TimescaleDB iā ʻoe e hoʻokomo pono i nā "hoʻokomo" no kekahi nui o ka ʻikepili.

Kāu Mau Koho Paʻamau

He mea maʻalahi ka hoʻouka ʻana iā TimescaleDB no kēlā me kēia pā. IN palapala wehewehe ʻia nā mea a pau - pili ia i nā pūʻolo PostgreSQL mana. Hiki ke kūkulu ʻia a hoʻopili lima ʻia ʻo TimescaleDB.

No ka waihona ʻo Zabbix, hoʻāla mākou i ka hoʻonui:

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Ho'ā 'oe extension a hana ia no ka waihona Zabbix. ʻO ka hana hope e hana i kahi hypertable.

Ke neʻe nei i nā papa mōʻaukala i TimescaleDB

Aia kahi hana kūikawā no kēia create_hypertable:

SELECT create_hypertable(‘history’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_unit’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_log’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_text’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_str’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘trends’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘trends_unit’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
UPDATE config SET db_extension=’timescaledb’, hk_history_global=1, hk_trends_global=1

He ʻekolu mau ʻāpana ka hana. Ka mua - papa ma ka waihona, pono ʻoe e hana i kahi hypertable. Ka lua - kahua, e like me kāu e hana ai chunk_time_interval - ka wā o nā ʻāpana ʻāpana e hoʻohana ʻia. I koʻu hihia, hoʻokahi lā ka wā - 86.

ʻāpana ʻekolu - migrate_data. Inā hoʻonoho ʻoe true, a laila hoʻoili ʻia nā ʻikepili o kēia manawa i nā ʻāpana i hana mua ʻia. Ua hoʻohana wau iaʻu iho migrate_data. Loaʻa iaʻu ma kahi o 1 TB, ʻoi aku ka lōʻihi o hoʻokahi hola. ʻOiai i kekahi mau hihia, i ka wā o ka hoʻāʻo ʻana, ua holoi wau i ka ʻikepili mōʻaukala o nā ʻano ʻano ʻano i koi ʻole ʻia no ka mālama ʻana, i ʻole e hoʻoili iā lākou.

ʻanuʻu hope - UPDATE: i loko db_extension kau timescaledbi hoʻomaopopo ka ʻikepili e loaʻa ana kēia hoʻonui. Hoʻohana ʻo Zabbix iā ia a hoʻohana pono i ka syntax a me nā nīnau i ka waihona - kēlā mau hiʻohiʻona e pono ai no TimescaleDB.

Hoʻonohonoho lako lako

Ua hoʻohana au i ʻelua mau kikowaena. Ka mua - mīkini VMware. He mea liʻiliʻi loa: 20 Intel® Xeon® CPU E5-2630 v 4 @ 2.20GHz kaʻina hana, 16 GB o RAM a me 200 GB SSD.

Ua hoʻokomo wau i ka PostgreSQL 10.8 ma luna me Debian 10.8-1.pgdg90+1 OS a me ka ʻōnaehana faila xfs. Ua hoʻonohonoho au i nā mea liʻiliʻi loa e hoʻohana i kēia waihona kikoʻī, hoʻemi i ka mea a Zabbix e hoʻohana ai.

Ma ka mīkini hoʻokahi aia kahi kikowaena Zabbix, PostgreSQL a mea lawe ukana. Ua loaʻa iaʻu he 50 mau mea hana e hoʻohana nei LoadableModulee hana wikiwiki i nā hopena like ʻole: nā helu, nā kaula. Ua hoʻopiha au i ka waihona me ka nui o ka ʻikepili.

I ka hoʻomaka ʻana i ka hoʻonohonoho 5 mau mea ʻikepili no kēlā me kēia pūʻali. Ma kahi kokoke i kēlā me kēia ʻeleʻele i loaʻa kahi hoʻoiho e hana like me nā hoʻonohonoho maoli. I kekahi mau hihia, ua ʻoi aku ma mua o hoʻokahi kumu. No hoʻokahi node pūnaewele aia 3-000 mea hoʻomaka.

ʻIkepili Mea Hou Interval − 4-7 kekona. Ua hoʻoponopono au i ka ukana ma ka hoʻohana ʻana ʻaʻole wale i 50 mau mea hana, akā hoʻohui hou aku. Eia kekahi, me ka hoʻohana ʻana i nā mea ʻikepili, hoʻololi au i ka ukana a hoʻemi i ka wā hoʻonui i ka 4 s.

PostgreSQL. 35 nvps

ʻO kaʻu holo mua ma kēia hāmeʻa ma ka PostgreSQL maʻemaʻe - 35 tausani mau waiwai i kekona. E like me kāu e ʻike ai, ʻo ka hoʻokomo ʻana i ka ʻikepili e lawe i nā hapa o ke kekona - maikaʻi a wikiwiki nā mea a pau. ʻO ka mea wale nō ʻo ka 200 GB SSD disk e hoʻopiha wikiwiki.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

ʻO kēia kahi dashboard hana maʻamau o ka server Zabbix.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

ʻO ka pakuhi polū mua ka helu o nā waiwai i kekona. ʻO ka pakuhi ʻelua ma ka ʻākau ka hoʻouka ʻana i nā kaʻina hana kūkulu. ʻO ke kolu ka hoʻouka ʻana i nā kaʻina hana i loko: nā moʻolelo syncers a me Housekeeper, kahi e holo nei ma ʻaneʻi no kekahi manawa.

Hōʻike ka pakuhi ʻehā i ka hoʻohana ʻana iā HistoryCache. He ʻano pale kēia ma mua o ka hoʻokomo ʻana i ka waihona. Hōʻike ka pakuhi ʻelima ʻōmaʻomaʻo i ka hoʻohana ʻana i ka ValueCache, ʻo ia hoʻi, ʻehia ka nui o ValueCache hits no nā mea hoʻoiho - he mau tausani waiwai kēia i kekona.

PostgreSQL. 50 nvps

A laila hoʻonui au i ka ukana i 50 tausani mau waiwai i kēlā me kēia kekona ma ka lako like.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

I ka hoʻouka ʻana mai Housekeeper, hoʻokomo i 10 tausani mau waiwai i 2-3 kekona.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB
Ke hoʻomaka nei ke kahu hale e hoʻopilikia i ka hana.

ʻO ke kolu o ka pakuhi e hōʻike ana, ma ka laulā, ʻo ka ukana ma luna o nā trappers a me nā moʻolelo synchers aia nō ma 60%. Ma ka pakuhi ʻehā, ke hoʻomaka nei ʻo HistoryCache e hoʻopiha piha i ka wā e hana ai ʻo Housekeeper. He 20% piha ia, ma kahi o 0,5 GB.

PostgreSQL. 80 nvps

A laila hoʻonui au i ka ukana i 80 tausani mau waiwai i kekona. ʻO kēia ma kahi o 400 tausani mau mea ʻikepili a me 280 tausani trigger.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB
Ua kiʻekiʻe loa ke kumukūʻai hoʻouka o kanakolu mōʻaukala synchers.

Ua hoʻonui pū au i nā ʻāpana like ʻole: nā moʻolelo syncers, caches.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Ma kaʻu lako lako, ua hoʻonui ʻia ka hoʻouka ʻana o nā mea hoʻoponopono mōʻaukala i ka nui. Hoʻopiha koke ʻia ʻo HistoryCache me ka ʻikepili - ua hōʻiliʻili ʻia ka ʻikepili no ka hana ʻana i loko o ka buffer.

I kēia manawa a pau, nānā au i ka hoʻohana ʻana o ka processor, RAM a me nā ʻōnaehana ʻē aʻe, a ʻike i ka hoʻohana ʻana o ka disk i kona kiʻekiʻe.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Ua loaʻa iaʻu ka hoʻohana nā mana diski kiʻekiʻe ma keia lako lako a ma keia mīkini virtual. Me ka ikaika loa, ua hoʻomaka ʻo PostgreSQL e hoʻopau i ka ʻikepili me ka ikaika, a ʻaʻohe manawa o ka disk e kākau a heluhelu.

Kahua lua

Ua lawe au i kahi kikowaena ʻē aʻe, ua loaʻa iā 48 nā mea hana a me 128 GB o RAM. Ua hoʻopaʻa au iā ia - hoʻonoho iā 60 mōʻaukala syncer, a loaʻa ka hana ʻae ʻia.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

ʻOiaʻiʻo, ʻo kēia ka palena o ka huahana kahi e pono ai ke hana.

TimescaleDB. 80 nvps

ʻO kaʻu hana nui ka hoʻāʻo ʻana i nā hiki o TimescaleDB e kūʻē i ka ukana Zabbix. ʻO 80 tausani mau waiwai i kēlā me kēia kekona he nui, ke alapine o ka hōʻiliʻili ʻana i nā metric (koe wale no Yandex, ʻoiaʻiʻo) a me kahi "hoʻonohonoho" nui.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

Loaʻa ka hāʻule i kēlā me kēia pakuhi - ʻo ia ka neʻe ʻana o ka ʻikepili. Ma hope o ka hāʻule ʻana o ka server Zabbix, ua loli nui ka hoʻouka ʻana o ka moʻolelo syncer - ua hāʻule ʻekolu manawa.

ʻAe ʻo TimescaleDB iā ʻoe e hoʻokomo i ka ʻikepili kokoke i 3 mau manawa wikiwiki a hoʻohana i ka HistoryCache liʻiliʻi.

No laila, e loaʻa iā ʻoe ka ʻikepili i ka manawa kūpono.

TimescaleDB. 120 nvps

A laila ua hoʻonui au i ka helu o nā mea ʻikepili i 500 tausani. ʻO ka hana nui ka hoʻāʻo ʻana i nā mana o TimescaleDB - ua loaʻa iaʻu kahi waiwai helu o 125 tausani mau waiwai i kēlā me kēia kekona.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

He "hoʻonohonoho" hana kēia e hiki ke hana no ka manawa lōʻihi. Akā ʻoiai ʻo kaʻu disk he 1,5 TB wale nō, ua hoʻopiha wau ia i nā lā ʻelua.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

ʻO ka mea nui loa i ka manawa like i hana ʻia nā ʻāpana hou o TimescaleDB.

ʻAʻole ʻike ʻia kēia no ka hana. Ke hana ʻia nā ʻāpana ma MySQL, no ka laʻana, ʻokoʻa nā mea āpau. Hana ʻia kēia i ka pō no ka mea e ālai ana i ka hoʻokomo maʻamau, hana me nā papa ʻaina a hiki ke hana i ka hōʻino ʻana i ka lawelawe. ʻAʻole kēia ka hihia me TimescaleDB.

Ma keʻano he laʻana, e hōʻike wau i hoʻokahi pakuhi mai nā mea he nui o ke kaiāulu. Ma ke kiʻi, ua hoʻohana ʻia ʻo TimescaleDB, mahalo i ka hāʻule ʻana o ka ukana ma ka hoʻohana ʻana i ka io.weight ma ke kaʻina hana. Ua emi pū ka hoʻohana ʻana i nā mea hana o loko. Eia kekahi, he mīkini virtual maʻamau kēia ma nā disks pancake maʻamau, ʻaʻole he SSD.

Hana kiʻekiʻe a me ka hoʻokaʻawale ʻana: Zabbix me ke kākoʻo ʻo TimescaleDB

haʻina

He hopena maikaʻi ʻo TimescaleDB no ka "hoʻonohonoho" liʻiliʻi., e pili ana i ka hana diski. E ʻae ia iā ʻoe e hoʻomau i ka hana maikaʻi a hiki i ka neʻe ʻana o ka waihona i ka ʻenehana i ka hikiwawe loa.

He maʻalahi ka TimescaleDB e hoʻonohonoho, hāʻawi i nā lanakila hana, hana maikaʻi me Zabbix a Loaʻa nā mea maikaʻi ma mua o PostgreSQL.

Inā ʻoe e hoʻohana i ka PostgreSQL a ʻaʻole hoʻolālā e hoʻololi, paipai wau e hoʻohana i ka PostgreSQL me ka hoʻonui ʻana o TimescaleDB me Zabbix. Hana maikaʻi kēia hoʻonā a hiki i kahi "hoʻonohonoho" waena.

Ke ʻōlelo mākou "hana kiʻekiʻe" ke manaʻo nei mākou Hoʻouka kiʻekiʻe++. ʻAʻole lōʻihi ʻoe e kali e aʻo e pili ana i nā ʻenehana a me nā hana e hiki ai i nā lawelawe ke lawelawe i nā miliona o nā mea hoʻohana. Papa inoa nā hōʻike no ka la 7 a me ka la 8 o Novemaba ua houluulu mua makou, aka eia hui ʻana hiki ke ʻōlelo hou aku.

Kau inoa i kā mākou palapala hoʻolaha и telegram, kahi e hōʻike ai mākou i nā hiʻohiʻona o ka ʻaha kūkā e hiki mai ana, a ʻike pehea e loaʻa ai ka maikaʻi loa.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka