Timathetsa mavuto mu Zabbix pogwiritsa ntchito JavaScript
Tikhon Uskov, injiniya wa gulu lophatikizana la Zabbix
Zabbix ndi nsanja yosinthika yomwe imagwiritsidwa ntchito kuyang'anira mtundu uliwonse wa data. Kuyambira m'matembenuzidwe akale a Zabbix, oyang'anira oyang'anira akhala ndi kuthekera koyendetsa zolemba zosiyanasiyana kudzera. Magawo kwa macheke pa chandamale network node. Panthawi imodzimodziyo, kukhazikitsidwa kwa malemba kunayambitsa zovuta zingapo, kuphatikizapo kufunikira kothandizira malemba, kutumiza kwawo ku ma node olankhulana ndi ma proxies, komanso kuthandizira matembenuzidwe osiyanasiyana.
JavaScript ya Zabbix
Mu Epulo 2019, Zabbix 4.2 idayambitsidwa ndi JavaScript preprocessing. Anthu ambiri adakondwera ndi lingaliro lakusiya zolemba zomwe zimatengera deta kwinakwake, kuzigaya ndikuzipereka mwanjira yomwe Zabbix amamvetsetsa, ndikuchita macheke osavuta omwe adzalandira deta yomwe sinakonzekere kusungidwa ndi kukonzedwa ndi Zabbix, ndi kenako sungani mayendedwe a datawa pogwiritsa ntchito zida za Zabbix ndi JavaScript. Mogwirizana ndi kupezeka kwapang'onopang'ono komanso zinthu zodalira zomwe zidawonekera mu Zabbix 3.4, tili ndi lingaliro losinthika losanja ndikuwongolera zomwe mwalandira.
Mu Zabbix 4.4, monga kupitiriza koyenera kwa kukonzekera mu JavaScript, njira yatsopano yodziwitsira yawonekera - Webhook, yomwe ingagwiritsidwe ntchito kuphatikizira mosavuta zidziwitso za Zabbix ndi mapulogalamu a chipani chachitatu.
JavaScript ndi Duktapes
Chifukwa chiyani JavaScript ndi Duktape adasankhidwa? Zosankha zosiyanasiyana za zilankhulo ndi injini zidaganiziridwa:
Lua - Lua 5.1
Lua - LuaJIT
Javascript - Duktape
Javascript - JerryScript
Python Yophatikizidwa
Ophatikizidwa Perl
Zosankha zazikuluzikulu zosankhidwa zinali kufalikira, kumasuka kwa kuphatikizika kwa injini muzogulitsa, kugwiritsira ntchito kachipangizo kakang'ono ndi ntchito yonse ya injini, ndi chitetezo choyambitsa kachidindo m'chinenerochi poyang'anira. Kutengera kuphatikiza kwa zizindikiro, JavaScript idapambana pa injini ya Duktape.
Zabbix.log () - imakulolani kuti mulembe mauthenga omwe ali ndi tsatanetsatane wosiyanasiyana mwachindunji mu chipika cha Zabbix Server, zomwe zimapangitsa kuti zikhale zotheka kugwirizanitsa zolakwika, mwachitsanzo, mu Webhook, ndi seva ya seva.
CurlHttpRequest () - imakulolani kuti mupange zopempha za HTTP ku intaneti, zomwe kugwiritsa ntchito kwa Webhook kumachokera.
atob() ndi btoa() - imakupatsani mwayi kuti mulembe ndikutsitsa zingwe mumtundu wa Base64.
Zindikirani. Duktape imagwirizana ndi miyezo ya ACME. Zabbix amagwiritsa ntchito script ya 2015. Zosintha zotsatila zimakhala zazing'ono, kotero zikhoza kunyalanyazidwa..
Matsenga a JavaScript
Matsenga onse a JavaScript ali pakulemba kwamphamvu ndi kuyika mitundu: zingwe, manambala, ndi boolean.
Koma ngati mulembanso kuString, kotero kuti njirayo ibweretsenso nambala, chinthucho chikawonjezedwa, ntchito ya masamu yokhala ndi kutembenuka kwa chiwerengero idzachitidwa ndipo zotsatira za kuwonjezereka kwa masamu zidzapezedwa.
Pazolemba zovuta, monga ma Webhook okhala ndi malingaliro ovuta, omwe amafunikira kufananiza ndi kuyika kwamtundu, tikulimbikitsidwa kuti mulembetu macheke azinthu zomwe zimabwezeretsa zosinthika ndikuthana ndi zosagwirizana ndi zolakwika.
Webhook Media
Chakumapeto kwa chaka cha 2019 komanso koyambirira kwa 2020, gulu lophatikizana la Zabbix lakhala likupanga ma Webhooks ndi zophatikizira kunja kwa bokosi zomwe zimabwera ndi kugawa kwa Zabbix.
Pezani nthawi mumasekondi mpaka kumapeto kwa satifiketi.
Mkhalidwe: ntchito ikupereka deti lotha ntchito ya satifiketi mumtundu wa "Feb 12 12:33:56 2022 GMT".
Mu ECMAScript5 date.parse() amavomereza deti mumtundu wa ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ). Ndikofunikira kuyiyikapo chingwe mumtundu wa MMM DD YYYY HH:mm:ss ZZ
vuto: Mtengo wa mwezi umawonetsedwa ngati mawu, osati ngati nambala. Zomwe zili mumtundu uwu sizivomerezedwa ndi Duktape.
Yankho Chitsanzo:
Choyamba, chosinthika chimalengezedwa chomwe chimatenga mtengo (cholemba chonsecho ndi chilengezo cha zosintha zomwe zalembedwa zolekanitsidwa ndi koma).
Mu mzere woyamba timapeza tsiku mu parameter mtengo ndi kulilekanitsa ndi mipata pogwiritsa ntchito njira Gawa. Chifukwa chake, timapeza mndandanda, pomwe gawo lililonse la gululo, kuyambira pa index 0, limagwirizana ndi tsiku limodzi lisanachitike komanso pambuyo pa danga. kugawanika (0) -mwezi, kugawanika (1) - nambala, kugawanika (2) - chingwe chokhala ndi nthawi, ndi zina zotero. Pambuyo pake, chinthu chilichonse cha tsikuli chikhoza kupezedwa ndi ndondomeko mumagulu.
`var split = value.split(' '),`
Mwezi uliwonse (motsatira nthawi) umafanana ndi ndondomeko ya malo ake mumagulu (kuyambira 0 mpaka 11). Kuti mutembenuzire mtengo wa malemba kukhala nambala, imodzi imawonjezeredwa ku ndondomeko ya mwezi (chifukwa miyezi imawerengedwa kuyambira pa 1). Pachifukwa ichi, mawu omwe ali ndi kuwonjezera chimodzi amatengedwa m'mabokosi, chifukwa mwinamwake chingwe chidzapezedwa, osati chiwerengero. Pamapeto timachita chidutswa () - dulani mndandanda kuchokera kumapeto kuti musiye zilembo ziwiri zokha (zomwe ndi zofunika kwa miyezi yokhala ndi nambala ziwiri).
Zomwe zili mumtundu wotsatira ndi chiwerengero cha masekondi kuchokera ku 1970 mpaka mtsogolo. Ndikosatheka kugwiritsa ntchito zomwe mwalandira muzoyambitsa, chifukwa Zabbix imakulolani kuti mugwiritse ntchito ma macros okha. {Tsiku} ΠΈ {Nthawi}, zomwe zimabwezera tsiku ndi nthawi mumpangidwe wosavuta kugwiritsa ntchito.
Titha kupeza tsiku lomwe lilipo mu JavaScript mu mtundu wa Unix Timestamp ndikuchotsa patsiku lotha ntchito ya satifiketi kuti tipeze ma milliseconds kuyambira pano mpaka satifiketi itatha.
`now = Date.now();`
Timagawanitsa mtengo womwe talandira ndi chikwi kuti tipeze masekondi mu Zabbix.