เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript
Tikhon Uskov, เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบ—เบตเบกเบ‡เบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Zabbix

Zabbix เป€เบ›เบฑเบ™เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เป„เบ”เป‰เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เปƒเบ”เบซเบ™เบถเปˆเบ‡. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ Zabbix เบฎเบธเปˆเบ™เบ—เปเบฒเบญเบดเบ”, เบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบฅเปˆเบ™เบชเบฐเบ„เบดเบšเบ•เปˆเบฒเบ‡เป†เบœเปˆเบฒเบ™. เบเบฒเบ™เบเบฐเบ—เปเบฒ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบ™ nodes เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบญเบ‡ scripts เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบ, เบฅเบงเบกเบ—เบฑเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ scripts, เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป„เบ›เบซเบฒ nodes เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบฅเบฐ proxies, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

JavaScript เบชเปเบฒเบฅเบฑเบš Zabbix

เปƒเบ™เป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ 2019, Zabbix 4.2 เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ”เป‰เบงเบเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ JavaScript เบเปˆเบญเบ™. เบ›เบฐเบŠเบฒเบŠเบปเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป„เบ”เป‰เบ•เบทเปˆเบ™เป€เบ•เบฑเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ–เบดเป‰เบกเบเบฒเบ™เบ‚เบฝเบ™เบชเบฐเบ„เบดเบšเบ—เบตเปˆเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เป„เบ›เบšเปˆเบญเบ™เปƒเบ”เบšเปˆเบญเบ™เบซเบ™เบถเปˆเบ‡, เบเปˆเบญเบเบกเบฑเบ™เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบกเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆ Zabbix เป€เบ‚เบปเป‰เบฒเปƒเบˆ, เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‡เปˆเบฒเบเป†เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป‚เบ”เบ Zabbix, เปเบฅเบฐ. เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท Zabbix เปเบฅเบฐ JavaScript. เป‚เบ”เบเบชเบปเบกเบ—เบปเบšเบเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒ เปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบตเปˆเบ›เบฒเบเบปเบ”เปƒเบ™ Zabbix 3.4, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบžเปเบชเบปเบกเบ„เบงเบ™เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš.

เปƒเบ™ Zabbix 4.4, เป€เบ›เบฑเบ™เบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปƒเบ™ JavaScript, เบงเบดเบ—เบตเบเบฒเบ™เปเบˆเป‰เบ‡เบเบฒเบ™เปƒเบซเบกเปˆเป„เบ”เป‰เบ›เบฒเบเบปเบ” - Webhook, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™ Zabbix เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก.

JavaScript เปเบฅเบฐ Duktapes

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ JavaScript เปเบฅเบฐ Duktape เบˆเบถเปˆเบ‡เบ–เบทเบเป€เบฅเบทเบญเบ? เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปˆเบฒเบ‡เป†เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ:

  • เบฅเปเปˆ - Lua 5.1
  • Lua - LuaJIT
  • Javascript - Duktape
  • Javascript - JerryScript
  • เบเบฑเบ‡ Python
  • เบเบฑเบ‡ Perl

เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ„เบงเบฒเบกเปเบœเปˆเบซเบผเบฒเบ, เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบกเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™, เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ•เปˆเปเบฒเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบงเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เปเบฅเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™เบžเบฒเบชเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก. เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”, JavaScript เป„เบ”เป‰เบŠเบฐเบ™เบฐเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Duktape.

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript

เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡ Duktapeโ€‹:

- เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹ ECMAScript E5/E5.1
- เป‚เบกเบ”เบนเบ™ Zabbix เบชเปเบฒเบฅเบฑเบš Duktape:

  • Zabbix.log() - เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป‚เบ”เบเบเบปเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Zabbix, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ Webhook, เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.
  • CurlHttpRequest() - เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป HTTP เบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Webhook เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ.
  • atob() เปเบฅเบฐ btoa() - เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” เปเบฅเบฐเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เบชเบฐเบ•เบฃเบดเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš Base64.

เปเบฒเบ เป€เบซเบ”. Duktape เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ACME. Zabbix เปƒเบŠเป‰เบชเบฐเบšเบฑเบš 2015 เบ‚เบญเบ‡เบชเบฐเบ„เบฃเบดเบš. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เปเปˆเบกเบฒเปเบกเปˆเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ..

JavaScript magic

เบ„เบงเบฒเบกเบกเบฐเบซเบฑเบ”เบชเบฐเบˆเบฑเบ™เบ‚เบญเบ‡ JavaScript เบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบžเบดเบกเปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ เปเบฅเบฐเบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ›เบฐเป€เบžเบ”: string, numeric, เปเบฅเบฐ boolean.

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบฒเบ”เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ„เบงเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒ.

เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”, เบ„เปˆเบฒเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบ. เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡, เบเบฒเบ™เปเบ›เบ‡เบชเบฐเบ•เบฃเบดเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”.

เปเบฒเบ เป€เบซเบ”. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ•เปเปˆเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบกเบฑเบเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบšเบšเปเบกเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ, เบกเบนเบ™เบ„เปˆเบฒ ะธ เบชเบฐเบ•เบดเบ‡. เบกเบนเบ™เบ„เปˆเบฒ เป€เบญเบตเป‰เบ™เบงเปˆเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เปเบ›เบ‡เบ•เบปเบงเป€เบฅเบเปเบฅเบฐเบชเบฐเป€เบซเบกเบตเบเปˆเบญเบ™เบงเบดเบ—เบตเบเบฒเบ™ เบชเบฐเบ•เบดเบ‡. เบงเบดเบ—เบตเบเบฒเบ™ เบกเบนเบ™เบ„เปˆเบฒ เบ•เป‰เบญเบ‡เบเบฑเบšเบ„เบทเบ™เบ„เปˆเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบงเบฑเบ”เบ–เบธ เบกเบนเบ™โ€‹เบ„เปˆเบฒ. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบžเบปเบšเบซเบผเบทเบšเปเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบชเบฐเบ•เบดเบ‡. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹ เบชเบฐเบ•เบดเบ‡ เบšเปเปˆเบžเบปเบš, เบŠเบญเบเบซเบฒ เบกเบนเบ™เบ„เปˆเบฒ เปƒเบ™ prototype เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบŠเป‰เปเบฒเบเบฑเบ™เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเบ„เปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ expression เป„เบ”เป‰เบ–เบทเบเป‚เบเบ™เป„เบ›เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™.. เบ–เป‰เบฒเบงเบฑเบ”เบ–เบธเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™ เบชเบฐเบ•เบดเบ‡, เป€เบŠเบดเปˆเบ‡เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เปเบกเปˆเบ™เบกเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบชเบฐเบ•เบฃเบดเบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบชเบฒเบ.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธ 'เบงเบฑเบ”เบ–เบธ' เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ” เบชเบฐเบ•เบดเบ‡,

`var obj = { toString() { return "200" }}` 

เบงเบดเบ—เบตเบเบฒเบ™ เบชเบฐเบ•เบดเบ‡ เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เปเบฅเบฐเป€เบกเบทเปˆเบญเป€เบžเบตเปˆเบกเบชเบฐเบ•เบฃเบดเบ‡เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบชเบฒเบเบ—เบตเปˆเบ•เบดเบ”เบเบฒเบง:

`obj + 1 // '2001'` 

`obj + 'a' // โ€˜200a'`

เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ เบชเบฐเบ•เบดเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบ•เบปเบงเป€เบฅเบ, เป€เบกเบทเปˆเบญเบงเบฑเบ”เบ–เบธเบ–เบทเบเป€เบžเบตเปˆเบก, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เปเบ›เบ‡เบ•เบปเบงเป€เบฅเบเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบšเบงเบเบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบš.

`var obj = { toString() { return 200 }}` 

`obj + 1 // '2001'`

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เบ”เป‰เบงเบโ€‹เบŠเปˆเบญเบโ€‹เปเบ™เปˆโ€‹, เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เปเบฅเบฐโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบชเบฒเบโ€‹เบเบฒเบงโ€‹.

`obj + 'a' // โ€˜200a'`

เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰ JavaScript เบˆเบปเบง.

เบงเบดเบ—เบตเบเบฒเบ™ เบชเบฐเบ•เบดเบ‡ เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเป‚เบ”เบ 1.

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบชเบฐเบ„เบดเบš, เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบงเปˆเบฒเบ•เบปเบงเปเบ›เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš 3, เปเบฅเบฐเบกเบฑเบ™เบเบฑเบ‡เป€เบ—เบปเปˆเบฒเบเบฑเบš 4.

เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบชเบฝเบ‡เป‚เบซเบงเบ”เบ—เบฑเบ‡เบซเบกเบปเบ” (==), เบงเบดเบ—เบตเบเบฒเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡ เบชเบฐเบ•เบดเบ‡ เบ”เป‰เบงเบเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบ•เปเปˆเบกเบฒ, เบกเบนเบ™เบ„เปˆเบฒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบซเบผเบตเบเบฅเปˆเบฝเบ‡เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฝเบ‡เป‚เบซเบงเบ”เบ—เบฑเบ‡เบซเบกเบปเบ” (===).

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript
เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ›เบฐเป€เบžเบ”

เปเบฒเบ เป€เบซเบ”. เบขเปˆเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš Cast เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ„เบดเบšเบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™, เป€เบŠเบฑเปˆเบ™ Webhooks เบ—เบตเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™, เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบžเบดเบก, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ‚เบฝเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ•เบปเบงเปเบ›เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ„เบงเบฒเบกเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เบชเบทเปˆ Webhook

เปƒเบ™เบ—เป‰เบฒเบเบ›เบต 2019 เปเบฅเบฐเบ•เบปเป‰เบ™เบ›เบต 2020, เบ—เบตเบกเบ‡เบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ Zabbix เป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Webhooks เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ™เบญเบเบเปˆเบญเบ‡เบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ Zabbix.

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš เป€เบญเบเบฐเบชเบฒเบ™

เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบเปˆเบญเบ™

  • เบเบฒเบ™เบกเบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡ preprocessing เปƒเบ™ JavaScript เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ–เบดเป‰เบกเบชเบฐเบ„เบดเบšเบžเบฒเบเบ™เบญเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™ Zabbix เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเปƒเบ”เป†เปเบฅเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”.
  • Preprocessing เปƒเบ™ Zabbix เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบฐเบซเบฑเบ” JavaScript, เป€เบŠเบดเปˆเบ‡, เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bytecode, เบˆเบฐเบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบญเบปเบฒเบ„เปˆเบฒเบ”เบฝเบงเป€เบ›เบฑเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบกเบนเบ™เบ„เปˆเบฒ เป€เบ›เบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡ (เบชเบฐเบ•เบฃเบดเบ‡เบชเบฒเบกเบฒเบ”เบกเบตเบ—เบฑเบ‡เบ•เบปเบงเป€เบฅเบ เปเบฅเบฐเบ•เบปเบงเป€เบฅเบ).
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ, เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡ script เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒ.
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ macro custom เปƒเบ™เบฅเบฐเบซเบฑเบ”.
  • เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, เปเบ•เปˆเบเบฑเบ‡เป€เบ›เบฑเบ™เป‚เบ›เบผเปเบเบผเบก. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เปเบกเปˆเบ™เบˆเบฑเบ”เบชเบฑเบ™เปƒเบซเป‰เบชเบนเบ‡เบชเบธเบ” 10 megabytes เบ‚เบญเบ‡ RAM เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™ 10 เบงเบดเบ™เบฒเบ—เบต.

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript

เปเบฒเบ เป€เบซเบ”. เบ„เปˆเบฒเป€เบงเบฅเบฒเปเบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡ 10 เบงเบดเบ™เบฒเบ—เบตเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบผเบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เป€เบเบฑเบšเบเบณเบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เบžเบฑเบ™เป†เบฅเบฒเบเบเบฒเบ™เปƒเบ™ 1 เบงเบดเบ™เบฒเบ—เบตเบญเบตเบ‡เบ•เบฒเบกเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™ "เปœเบฑเบ" เบชเบฒเบกเบฒเบ”เบŠเป‰เบฒเบฅเบปเบ‡ Zabbix. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ preprocessing เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” script JavaScript เป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบšเป‚เบ”เบเบœเปˆเบฒเบ™เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เปเป‰เบกเบนเบ™เป€เบ‡เบปเบฒ (เบฅเบฒเบเบเบฒเบ™ dummy), เป€เบŠเบดเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ preprocessing..

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš preprocessing เบซเบผเบทเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” zabbix_js:

`zabbix_js -s *script-file -p *input-param* [-l log-level] [-t timeout]`

`zabbix_js -s script-file -i input-file [-l log-level] [-t timeout]`

`zabbix_js -h`

`zabbix_js -V`

เบงเบฝเบเบ‡เบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡ 1

เบ›เปˆเบฝเบ™เปเบ—เบ™เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบ„เบณเบ™เบงเบ™เปเบฅเป‰เบงเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚: เป€เบญเบปเบฒเบญเบธเบ™เบซเบฐเบžเบนเบกเปƒเบ™ Fahrenheit เบˆเบฒเบเป€เบŠเบฑเบ™เป€เบŠเบตเบ—เบตเปˆเบˆเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบ™ Celsius.

เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเบญเบธเบ™เบซเบฐเบžเบนเบกเปƒเบ™เบญเบปเบ‡เบชเบฒเบŸเบฒเป€เบฃเบ™เบฎเบฒเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™ (เบ„เบดเบ”เป„เบฅเปˆ) เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™ Fahrenheit เป€เบ›เบฑเบ™ Celsius เป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”.

เบšเบฑเบ™เบซเบฒ:

  • เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบŠเป‰เปเบฒเบเบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบนเบ™เบ„เปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.
  • เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบ•เบปเบเบฅเบปเบ‡เบเบฑเบšเป„เบฅเบเบฐเบซเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™ "เบžเปเปˆเปเบกเปˆ" เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบชเบนเบ”, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ„เปเบฒเบ™เบงเบ™. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเบญเบฒเบ”เบˆเบฐเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเบผเบทเบ„เบดเบ”เป„เบฅเปˆเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก.

เบเบฒเบ™เปเบเป‰เป„เบ‚เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเป„เบฅเบเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เป„เบฅเบเบฐเบ„เบปเบ‡เบ—เบตเปˆเป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเป€เบกเบตเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบญเบธเบ™เบซเบฐเบžเบนเบกเปƒเบ™เบญเบปเบ‡เบชเบฒเบŸเบฒเป€เบฃเบ™เบฎเบฒเบ).

เปเบ•เปˆเบ–เป‰เบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เปเบกเปˆเปเบšเบšเป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, เปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เปƒเบ™เบ—เบธเบเป† 30 เบงเบดเบ™เบฒเบ—เบต, Zabbix "hacks" เป€เบ›เบฑเบ™เป€เบงเบฅเบฒ 29 เบงเบดเบ™เบฒเบ—เบต, เปเบฅเบฐเปƒเบ™เบงเบดเบ™เบฒเบ—เบตเบชเบธเบ”เบ—เป‰เบฒเบเบกเบฑเบ™เบˆเบฐเป€เบฅเบตเปˆเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบฅเบฐเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ. เบ™เบตเป‰เบชเป‰เบฒเบ‡เบ„เบดเบงเปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ„เบปเบ‡เบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เปเบ—เป‰เป†.

เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ™เบตเป‰, เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบ—เบตเปˆโ€‹เบ”เบตโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™ preprocessing JavaScript เบซเบ™เบถเปˆเบ‡โ€‹เปเบ–เบงโ€‹เบ—เบตเปˆโ€‹เบ›เปˆเบฝเบ™โ€‹เบญเบปเบ‡โ€‹เบชเบฒ Fahrenheit เป€เบ›เบฑเบ™โ€‹เบญเบปเบ‡โ€‹เบชเบฒ Celsiusโ€‹:

`return (value - 32) * 5 / 9;`

เบกเบฑเบ™เป„เบงเปเบฅเบฐเบ‡เปˆเบฒเบเบ”เบฒเบ, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบฎเบฑเบเบชเบฒเบ›เบฐเบซเบงเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™, เปเบฅเบฐเบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš.

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript

`return (parseInt(value) + parseInt("{$EXAMPLE.MACRO}"));`

เปเบ•เปˆ, เบ–เป‰เบฒเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เบกเบฐเบซเบฒเบžเบฒเบ, เบกเบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบกเบนเบ™เบ„เปˆเบฒ เบ‚เบฐเบซเบเบฒเบเบญเบญเบเป€เบ›เบฑเบ™เบชเบฒเบ. เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบฐเบ•เบฃเบดเบ‡, เบชเบญเบ‡เบชเบฒเบเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ”เบฝเบง.

เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Zabbix เป‚เบ”เบเปƒเบŠเป‰ JavaScript

`return (value + "{$EXAMPLE.MACRO}");`

เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ•เบปเบงเป€เบฅเบ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆ parseInt(), เป€เบŠเบดเปˆเบ‡เบœเบฐเบฅเบดเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก, เบซเบ™เป‰เบฒเบ—เบตเปˆ parseFloat(), เป€เบŠเบดเปˆเบ‡เบœเบฐเบฅเบดเบ”เบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบก, เบซเบผเบทเบŸเบฑเบ‡เบŠเบฑเบ™ เบˆเปเบฒเบ™เบงเบ™, เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบœเบปเบ™เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบซเบผเบทเป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบก.

เบงเบฝเบเบ‡เบฒเบ™ 2

เป„เบ”เป‰เบฎเบฑเบšเป€เบงเบฅเบฒเป€เบ›เบฑเบ™เบงเบดเบ™เบฒเบ—เบตเบˆเบปเบ™เบเปˆเบงเบฒเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™.

เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚: เบšเปเบฅเบดเบเบฒเบ™เบญเบญเบเบงเบฑเบ™เปเบปเบ”เบญเบฒเบเบธเปƒเบšเบฎเบฑเบšเบฎเบญเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš "Feb 12 12:33:56 2022 GMT".

เปƒเบ™ ECMAScript5 date.parse() เบเบญเบกเบฎเบฑเบšเบงเบฑเบ™เบ—เบตเปƒเบ™เบฎเบนเบšเปเบšเบš ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ). เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบชเบฐเบ•เบฃเบดเบ‡เป„เบ›เบซเบฒเบกเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบš MMM DD YYYY HH:mm:ss ZZ

เบšเบฑเบ™เบซเบฒ: เบ„เปˆเบฒเป€เบ”เบทเบญเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบ›เบฑเบ™เบ‚เปเป‰เบ„เบงเบฒเบก, เบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบ. เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเบเบญเบกเบฎเบฑเบšเป‚เบ”เบ Duktape.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚:

  • เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ•เบปเบงเปเบ›เบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเปƒเบŠเป‰เบ„เปˆเบฒ (เบชเบฐเบ„เบฃเบดเบšเบ—เบฑเบ‡ เปเบปเบ” เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเบงเปเบ›เบ—เบตเปˆเปเบšเปˆเบ‡เบญเบญเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”).

  • เปƒเบ™เปเบ–เบงเบ—เปเบฒเบญเบดเบ”เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบงเบฑเบ™เบ—เบตเปƒเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต เบกเบนเบ™เบ„เปˆเบฒ เปเบฅเบฐเปเบเบเบกเบฑเบ™เบ”เป‰เบงเบเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ เปเบšเปˆเบ‡เบ›เบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบš array, เป€เบŠเบดเปˆเบ‡เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ array, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ”เบฑเบ”เบŠเบฐเบ™เบต 0, เบเบปเบ‡เบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบงเบฑเบ™เบ—เบตเบซเบ™เบถเปˆเบ‡เบเปˆเบญเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡. เปเบšเปˆเบ‡(0) - เป€เบ”เบทเบญเบ™โ€‹, เปเบšเปˆเบ‡(1) - เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹, เปเบšเปˆเบ‡(2) - เบชเบฐเบ•เบดเบ‡เบเบฑเบšเป€เบงเบฅเบฒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบงเบฑเบ™เบ—เบตเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เป‚เบ”เบเบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบ™ array.

`var split = value.split(' '),`

  • เปเบ•เปˆเบฅเบฐเป€เบ”เบทเบญเบ™ (เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš) เบเบปเบ‡เบเบฑเบšเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ‚เบญเบ‡เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบญเบฒเป€เบฅ (เบˆเบฒเบ 0 เบซเบฒ 11). เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ„เปˆเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบ„เปˆเบฒเบ•เบปเบงเป€เบฅเบ, เบซเบ™เบถเปˆเบ‡เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ”เบฑเบ”เบŠเบฐเบ™เบตเป€เบ”เบทเบญเบ™ (เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบ”เบทเบญเบ™เปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆ 1). เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เปƒเบ™โ€‹เบงเบปเบ‡โ€‹เป€เบฅเบฑเบšโ€‹, เป€เบžเบฒเบฐโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบชเบฒเบโ€‹เบžเบฑเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹, เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ•เบปเบงโ€‹เป€เบฅเบโ€‹. เปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ” เบ›เปˆเบฝเบ‡() - เบ•เบฑเบ” array เบญเบญเบเบˆเบฒเบเบ—เป‰เบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ (เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเป€เบ”เบทเบญเบ™เบ—เบตเปˆเบกเบตเบ•เบปเบงเป€เบฅเบเบชเบญเบ‡เบ•เบปเบงเป€เบฅเบ).

`MONTHS_LIST = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],`

`month_index = ('0' + (MONTHS_LIST.indexOf(split[0]) + 1)).slice(-2),`

  • เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™ string เปƒเบ™เบฎเบนเบšเปเบšเบš ISO เบˆเบฒเบเบ„เปˆเบฒเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡ strings เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก.

`ISOdate = split[3] + '-' + month_index + '-' + split[1] + 'T' + split[2],`

เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบˆเปเบฒเบ™เบงเบ™เบงเบดเบ™เบฒเบ—เบตเบˆเบฒเบ 1970 เป€เบ–เบดเบ‡เบšเบฒเบ‡เบˆเบธเบ”เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. เบกเบฑเบ™เป€เบเบทเบญเบšเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™ triggers, เป€เบžเบฒเบฐเบงเปˆเบฒ Zabbix เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบš macro เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. {เบงเบฑเบ™เบ—เบต} ะธ {เป€เบงเบฅเบฒ}, เป€เบŠเบดเปˆเบ‡เบชเบปเปˆเบ‡เบ„เบทเบ™เบงเบฑเบ™เบ—เบตเปเบฅเบฐเป€เบงเบฅเบฒเปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบกเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰.

  • เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบงเบฑเบ™เบ—เบตเบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบ™ JavaScript เปƒเบ™เบฎเบนเบšเปเบšเบš Unix Timestamp เปเบฅเบฐเบฅเบปเบšเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบงเบฑเบ™เบซเบกเบปเบ”เบญเบฒเบเบธเบ‚เบญเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบˆเปเบฒเบ™เบงเบ™ milliseconds เบˆเบฒเบเบ™เบตเป‰เบˆเบปเบ™เบเปˆเบงเบฒเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบซเบกเบปเบ”เบญเบฒเบเบธ.

`now = Date.now();`

  • เบžเบงเบเป€เบฎเบปเบฒเปเบšเปˆเบ‡เบ„เปˆเบฒเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบžเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบงเบดเบ™เบฒเบ—เบตเปƒเบ™ Zabbix.

`return parseInt((Date.parse(ISOdate) - now) / 1000);`

เปƒเบ™ trigger, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ 'เบชเบธเบ”เบ—เป‰เบฒเบ' เบ•เบฒเบกเบ”เป‰เบงเบเบŠเบธเบ”เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบเบปเบ‡เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบงเบดเบ™เบฒเบ—เบตเปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบญเบฒเบ—เบดเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบˆเบฐเปเบˆเป‰เบ‡เปƒเบซเป‰เบŠเบฒเบšเบงเปˆเบฒเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบซเบกเบปเบ”เบญเบฒเบเบธเปƒเบ™เบซเบ™เบถเปˆเบ‡เบญเบฒเบ—เบดเบ”.

เปเบฒเบ เป€เบซเบ”. เบˆเปˆเบฒเบเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ parseInt() เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒเป€เบžเบทเปˆเบญเปเบ›เบ‡เบ•เบปเบงเป€เบฅเบเป€เบชเบ”เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เปเบšเปˆเบ‡ milliseconds เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ parseFloat() เปเบฅเบฐเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบชเบ”เบชเปˆเบงเบ™.

เบชเบฑเบ‡เป€เบเบ”เป€เบšเบดเปˆเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™