рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ
Tikhon Uskov, Zabbix рдПрдХреАрдХрд░рдг рдЯреЛрд▓реА рдЗрдиреНрдЬрд┐рдирд┐рдпрд░

Zabbix рдПрдХ рдЕрдиреБрдХреВрд▓рди рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛ рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдХрд╛рд░рдХреЛ рдбрд╛рдЯрд╛ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред Zabbix рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реБ рджреЗрдЦрд┐, рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реБ рдХреЛ рдорд╛рдзреНрдпрдо рдмрд╛рдЯ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реБ рдЪрд▓рд╛рдЙрди рдХреЛ рд▓рд╛рдЧреА рдХреНрд╖рдорддрд╛ рднрдПрдХреЛ рдЫред рдХрд╛рд░реНрдпрд╣рд░реВ рд▓рдХреНрд╖рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдиреЛрдбрд╣рд░реВрдорд╛ рдЬрд╛рдБрдЪрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред рдПрдХреИ рд╕рдордпрдорд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрдгрд▓реЗ рдзреЗрд░реИ рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдпреЛ, рдЬрд╕реНрддреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛, рд╕рдЮреНрдЪрд╛рд░ рдиреЛрдбрд╣рд░реВ рд░ рдкреНрд░реЛрдХреНрд╕реАрд╣рд░реВрдорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдбреЗрд▓рд┐рднрд░реА, рд╕рд╛рдереИ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред

Zabbix рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдЕрдкреНрд░рд┐рд▓ 2019 рдорд╛, Zabbix 4.2 рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩрдХреЛ рд╕рд╛рде рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдХрддреИ рдбрд╛рдЯрд╛ рд▓рд┐рдиреЗ, рдпрд╕рд▓рд╛рдИ рдкрдЪрд╛рдЙрдиреЗ рд░ Zabbix рд▓реЗ рдмреБрдЭреЗрдХреЛ рдврд╛рдБрдЪрд╛рдорд╛ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗ, рд░ Zabbix рджреНрд╡рд╛рд░рд╛ рднрдгреНрдбрд╛рд░рдг рд░ рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдирднрдПрдХреЛ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд╕рд░рд▓ рдЬрд╛рдБрдЪрд╣рд░реВ рдЧрд░реНрдиреЗ, рд░ рддреНрдпрд╕рдкрдЫрд┐ Zabbix рд░ JavaScript рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдбрд╛рдЯрд╛ рд╕реНрдЯреНрд░рд┐рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред Zabbix 3.4 рдорд╛ рджреЗрдЦрд╛ рдкрд░реЗрдХреЛ рдирд┐рдореНрди-рд╕реНрддрд░ рдЦреЛрдЬ рд░ рдирд┐рд░реНрднрд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрдпреЛрдЬрдирдорд╛, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛ рдХреНрд░рдордмрджреНрдз рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрджрдо рд▓рдЪрд┐рд▓реЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╛рдпреМрдВред

Zabbix 4.4 рдорд╛, рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдкреВрд░реНрд╡-рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд░рдиреНрддрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛, рдирдпрд╛рдБ рд╕реВрдЪрдирд╛ рд╡рд┐рдзрд┐ рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ - рд╡реЗрдмрд╣реБрдХ, рдЬреБрди рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ Zabbix рд╕реВрдЪрдирд╛рд╣рд░реВ рд╕рдЬрд┐рд▓реИ рдПрдХреАрдХреГрдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

JavaScript рд░ Duktapes

рдХрд┐рди JavaScript рд░ Duktape рдЫрд╛рдирд┐рдпреЛ? рднрд╛рд╖рд╛рд╣рд░реВ рд░ рдЗрдиреНрдЬрд┐рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдпреЛ:

  • рд▓реБрдЖ - рд▓реБрдЖ 5.1
  • Lua - LuaJIT
  • Javascript - Duktape
  • рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ - рдЬреЗрд░реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ
  • рдЗрдореНрдмреЗрдбреЗрдб рдкрд╛рдЗрдерди
  • рдПрдореНрдмреЗрдбреЗрдб рдкрд░реНрд▓

рдореБрдЦреНрдп рдЪрдпрди рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рд╡реНрдпрд╛рдкрдХрддрд╛, рдЙрддреНрдкрд╛рджрдирдорд╛ рдЗрдиреНрдЬрд┐рдирдХреЛ рдПрдХреАрдХрд░рдгрдХреЛ рд╕рд╣рдЬрддрд╛, рдХрдо рд╕реНрд░реЛрддрдХреЛ рдЦрдкрдд рд░ рдЗрдиреНрдЬрд┐рдирдХреЛ рд╕рдордЧреНрд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди, рд░ рдЕрдиреБрдЧрдордирдорд╛ рдпрд╕ рднрд╛рд╖рд╛рдорд╛ рдХреЛрдб рдкрд░рд┐рдЪрдп рдЧрд░реНрдиреЗ рд╕реБрд░рдХреНрд╖рд╛ рдерд┐рдпреЛред рд╕реВрдЪрдХрд╣рд░реВрдХреЛ рд╕рдВрдпреЛрдЬрдирдорд╛ рдЖрдзрд╛рд░рд┐рдд, рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдбрдХреНрдЯреЗрдк рдЗрдиреНрдЬрд┐рдирдорд╛ рдЬрд┐рддреНрдпреЛред

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ

рдЪрдпрди рдорд╛рдкрджрдгреНрдб рд░ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг

Duktape рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ:

- рдорд╛рдирдХ ECMAScript E5/E5.1
- Duktape рдХреЛ рд▓рд╛рдЧрд┐ Zabbix рдореЛрдбреНрдпреБрд▓рд╣рд░реВ:

  • Zabbix.log() - рддрдкрд╛рдИрдВрд▓рд╛рдИ Zabbix рд╕рд░реНрднрд░ рд▓рдЧрдорд╛ рд╕реАрдзреИ рд╡рд┐рд╡рд░рдгрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░рдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рд╕рдореНрдмрджреНрдз рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╡реЗрдмрд╣реБрдХрдорд╛, рд╕рд░реНрднрд░ рдЕрд╡рд╕реНрдерд╛рд╕рдБрдЧред
  • CurlHttpRequest() - рддрдкрд╛рдИрдВрд▓рд╛рдИ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рдорд╛ Webhook рдХреЛ рдкреНрд░рдпреЛрдЧ рдЖрдзрд╛рд░рд┐рдд рдЫред
  • atob() рд░ btoa() - рддрдкрд╛рдИрдВрд▓рд╛рдИ Base64 рдврд╛рдБрдЪрд╛рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рдЗрдиреНрдХреЛрдб рд░ рдбрд┐рдХреЛрдб рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдиреЛрдЯ. Duktape ACME рдорд╛рдкрджрдгреНрдбрд╣рд░реВрдХреЛ рдкрд╛рд▓рдирд╛ рдЧрд░реНрджрдЫред Zabbix рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ 2015 рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рддреНрдпрд╕рдкрдЫрд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рд╛рдирд╛ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред.

рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рджреВ

рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд╕рдмреИ рдЬрд╛рджреВ рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдЩ рд░ рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдЩрдорд╛ рдирд┐рд╣рд┐рдд рдЫ: рд╕реНрдЯреНрд░рд┐рдЩ, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░ рдмреБрд▓рд┐рдпрдиред

рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдХреБрди рдкреНрд░рдХрд╛рд░рдХреЛ рдЪрд░рд▓реЗ рдорд╛рди рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреЗрд░ рдЕрдЧреНрд░рд┐рдо рдШреЛрд╖рдгрд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

рдЧрдгрд┐рддреАрдп рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдорд╛, рдкреНрд░рдХрд╛рд░реНрдп рдЕрдкрд░реЗрдЯрд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдлрд░реНрдХрд╛рдЗрдПрдХрд╛ рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рд╕рдЩреНрдЦреНрдпрд╛рд╣рд░реВрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╕реНрддрд╛ рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рдЕрдкрд╡рд╛рдж рдердк рд╣реЛ, рдХрд┐рдирднрдиреЗ рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ рд╕рд░реНрдд рд╕реНрдЯреНрд░рд┐рдЩ рд╣реЛ рднрдиреЗ, рд╕реНрдЯреНрд░рд┐рдЩ рд░реВрдкрд╛рдиреНрддрд░рдг рд╕рдмреИ рд╕рд░реНрддрд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред

рдиреЛрдЯ. рддреНрдпрд╕реНрддрд╛ рд░реВрдкрд╛рдиреНрддрд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╡рд╕реНрддреБрдХреЛ рдЕрднрд┐рднрд╛рд╡рдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫ, рдореВрд▓реНрдп ╨╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ. рдореВрд▓реНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд╕рдордпрдорд╛ рд░ рд╕рдзреИрдВ рд╡рд┐рдзрд┐ рдЕрдШрд┐ рдмреЛрд▓рд╛рдЗрдиреНрдЫ рд╕реНрдЯреНрд░рд┐рдВрдЧред рд╡рд┐рдзрд┐ рдореВрд▓реНрдп рдЖрджрд┐рдо рдорд╛рдирд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдиреБ рдкрд░реНрдЫ, рдЕрдиреНрдпрдерд╛ рдпрд╕рдХреЛ рдкрд░рд┐рдгрд╛рдорд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдиреНрдЫред

рд╡рд╕реНрддреБрдорд╛ рд╡рд┐рдзрд┐ рднрдирд┐рдиреНрдЫ valueOFред рдпрджрд┐ рдпреЛ рдлреЗрд▓рд╛ рдкрд░реЗрди рд╡рд╛ рдЖрджрд┐рдо рдорд╛рди рдлрд┐рд░реНрддрд╛ рдЧрд░реНрджреИрди рднрдиреЗ, рд╡рд┐рдзрд┐ рднрдирд┐рдиреНрдЫ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рд╡рд┐рдзрд┐ рд╣реЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлреЗрд▓рд╛ рдкрд░реЗрди, рдЦреЛрдЬреНрджреИ рдореВрд▓реНрдп рд╡рд╕реНрддреБрдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрдорд╛, рд░ рдорд╛рдирдХреЛ рдкреНрд░рд╢реЛрдзрди рдкреВрд░рд╛ рдирднрдПрд╕рдореНрдо рд╕рдмреИ рдХреБрд░рд╛ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдиреНрдЫ рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХрд╛ рд╕рдмреИ рдорд╛рдирд╣рд░реВ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░рдорд╛ рдХрд╛рд╕реНрдЯ рд╣реБрдиреНрдЫрдиреНред. рдпрджрд┐ рд╡рд╕реНрддреБрд▓реЗ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЬрд╕рд▓реЗ рдПрдХ рдЖрджрд┐рдо рдорд╛рди рдлрд░реНрдХрд╛рдЙрдБрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рд╕реНрдЯреНрд░рд┐рдЩ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐, рдпреЛ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдкрд░рд┐рдгрд╛рдо рдЖрд╡рд╢реНрдпрдХ рд░реВрдкрдорд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдЩ рд╣реЛрдЗрдиред

рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдпрджрд┐ рд╡рд╕реНрддреБ рдХреЛ рд▓рд╛рдЧреА 'obj' рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ рд╕реНрдЯреНрд░рд┐рдВрдЧ,

`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 рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ
рд▓рд┐рдкрд┐рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЪрд░ 3 рдХреЛ рдмрд░рд╛рдмрд░ рдЫ, рд░ рдпреЛ 4 рдХреЛ рдмрд░рд╛рдмрд░ рдЫред

рдХрд╛рд╕реНрдЯ (==) рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрджрд╛, рд╡рд┐рдзрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп рд╡реГрджреНрдзрд┐ рдХрд╛рд░реНрдп рд╕рдВрдЧред рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдкрдЫрд┐рдХреЛ рддреБрд▓рдирд╛ рд╕рдВрдЧ, рдореВрд▓реНрдп рдмрдвреНрдЫред рдпрд╕рд▓рд╛рдИ рдЧреИрд░-рдХрд╛рд╕реНрдЯ рддреБрд▓рдирд╛ (===) рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмрдЪреНрди рд╕рдХрд┐рдиреНрдЫред

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ
рдкреНрд░рдХрд╛рд░ рдХрд╛рд╕реНрдЯрд┐рдЩ рдмрд┐рдирд╛ рддреБрд▓рдирд╛

рдиреЛрдЯ. рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдкрдорд╛ рдХрд╛рд╕реНрдЯ рддреБрд▓рдирд╛ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН.

рдЬрдЯрд┐рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдЬрд╕реНрддреИ рдЬрдЯрд┐рд▓ рддрд░реНрдХрд╕рд╣рд┐рддрдХреЛ рд╡реЗрдмрд╣реБрдХреНрд╕, рдЬрд╕рд▓рд╛рдИ рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдЩрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫ, рднреНрдпрд╛рд░реАрдПрдмрд▓рд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдиреЗ рд░ рдЕрд╕рдВрдЧрддрддрд╛ рд░ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиреЗ рдорд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡-рд▓реЗрдЦрди рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫред

рд╡реЗрдмрд╣реБрдХ рдорд┐рдбрд┐рдпрд╛

2019 рдХреЛ рдЕрдиреНрдд рд░ 2020 рдХреЛ рдкреНрд░рд╛рд░рдореНрднрдорд╛, Zabbix рдПрдХреАрдХрд░рдг рдЯреЛрд▓реАрд▓реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ Webhooks рд░ Zabbix рд╡рд┐рддрд░рдгрдХреЛ рд╕рд╛рдердорд╛ рдЖрдЙрдЯ-рдЕрдл-рдж-рдмрдХреНрд╕ рдПрдХреАрдХрд░рдгрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИ рдЖрдПрдХреЛ рдЫред

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ
рд▓рд┐ LinkреНрдХ рдХрд╛рдЧрдЬрд╛рдд

рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐ing

  • рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩрдХреЛ рдЖрдЧрдордирд▓реЗ рдзреЗрд░реИрдЬрд╕реЛ рдмрд╛рд╣реНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рддреНрдпрд╛рдЧреНрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛ, рд░ рд╣рд╛рд▓ Zabbix рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдлрд░рдХ рдорд╛рдирдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
  • Zabbix рдорд╛ рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдмрд╛рдЗрдЯрдХреЛрдбрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрджрд╛, рдПрдХ рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рд╣реБрдиреНрдЫ рдЬрд╕рд▓реЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдПрдХрд▓ рдорд╛рди рд▓рд┐рдиреНрдЫред рдореВрд▓реНрдп рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд░реВрдкрдорд╛ (рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ рдЕрдВрдХ рд░ рд╕рдВрдЦреНрдпрд╛ рджреБрд╡реИ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрдЫ)ред
  • рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рднрдПрдХреЛрд▓реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ рдлрд┐рд░реНрддреА.
  • рдХреЛрдбрдорд╛ рдЕрдиреБрдХреВрд▓рди рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред
  • рд╕реНрд░реЛрддрд╣рд░реВ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░рдорд╛ рдорд╛рддреНрд░ рд╕реАрдорд┐рдд рд╣реБрди рд╕рдХреНрджреИрди, рддрд░ рдХрд╛рд░реНрдпрдХреНрд░рдордЧрдд рд░реВрдкрдорд╛ рдкрдирд┐ред рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рдЪрд░рдгрдорд╛ рдЕрдзрд┐рдХрддрдо резреж рдореЗрдЧрд╛рдмрд╛рдЗрдЯ RAM рд░ резреж рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдЪрд▓реНрдиреЗ рд╕рдордп рд╕реАрдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдЫред

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ

рдиреЛрдЯ. 10 рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди рдПрдХрджрдо рдзреЗрд░реИ рдЫ, рдХрд┐рдирдХрд┐ рд╕рд╢рд░реНрдд рд╣рдЬрд╛рд░реМрдВ рдбреЗрдЯрд╛ рд╡рд╕реНрддреБрд╣рд░реВ 1 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдирд╛рд▓реЗ "рднрд╛рд░реА" рдкреВрд░реНрд╡рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░рд┐рджреГрд╢реНрдп рдЕрдиреБрд╕рд╛рд░ Zabbix рд▓рд╛рдИ рдврд┐рд▓реЛ рдЧрд░реНрди рд╕рдХреНрдЫред рддрд╕рд░реНрде, рддрдерд╛рдХрдерд┐рдд рдЫрд╛рдпрд╛рдБ рдбреЗрдЯрд╛ рддрддреНрд╡рд╣рд░реВ (рдбрдореА рд╡рд╕реНрддреБрд╣рд░реВ) рдорд╛рд░реНрдлрдд рдкреВрд░реНрдг-рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдкреВрд░реНрд╡-рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдБрджреИрди, рдЬреБрди рдкреВрд░реНрд╡-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдЪрд▓рд╛рдЗрдиреНрдЫред.

рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдХреЛрдб 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

рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБрд▓рд╛рдИ рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩрд╕рдБрдЧ рдмрджрд▓реНрдиреБрд╣реЛрд╕реНред

рд╕рд░реНрдд: рд╕реЗрд▓реНрд╕рд┐рдпрд╕рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╕реЗрдиреНрд╕рд░рдмрд╛рдЯ рдлрд░реЗрдирд╣рд╛рдЗрдЯрдорд╛ рддрд╛рдкрдХреНрд░рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореА рдбрд┐рдЧреНрд░реА рдлрд░реЗрдирд╣рд╛рдЗрдЯрдорд╛ рддрд╛рдкрдХреНрд░рдо рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рд╡рд╕реНрддреБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рддреНрдпрд╕ рдкрдЫрд┐, рдЕрд░реНрдХреЛ рдбреЗрдЯрд╛ рд╡рд╕реНрддреБ (рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ) рдЬрд╕рд▓реЗ рдлрд╛рд░реЗрдирд╣рд╛рдЗрдЯрд▓рд╛рдИ рдПрдХ рд╕реВрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реЗрд▓реНрд╕рд┐рдпрд╕рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗрдЫред

рд╕рдорд╕реНрдпрд╛рд╣рд░реВ:

  • рдбрд╛рдЯрд╛ рддрддреНрд╡рд╣рд░реВ рдирдХреНрдХрд▓ рдЧрд░реНрди рд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд╕рдмреИ рдорд╛рдирд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
  • рддрдкрд╛рдИрдВрд▓реЗ рд╕реВрддреНрд░рдорд╛ рдЧрдгрдирд╛ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ "рдЕрднрд┐рднрд╛рд╡рдХ" рдбреЗрдЯрд╛ рд╡рд╕реНрддреБ рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛ рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреНрддрд░рд╛рд▓рд╣рд░реВрдорд╛ рд╕рд╣рдордд рд╣реБрдиреБрдкрд░реНрдЫред рдЕрдиреНрдпрдерд╛, рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБ рдЕрд╕рдорд░реНрдерд┐рдд рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЬрд╛рди рд╕рдХреНрдЫ рд╡рд╛ рдЕрдШрд┐рд▓реНрд▓реЛ рдорд╛рди рдЧрдгрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫ, рдЬрд╕рд▓реЗ рдЕрдиреБрдЧрдорди рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗрдЫред

рдПрдЙрдЯрд╛ рд╕рдорд╛рдзрд╛рди рднрдиреЗрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреНрддрд░рд╛рд▓рд╣рд░реВрдХреЛ рдкрдХреНрд╖рдорд╛ рд▓рдЪрд┐рд▓реЛ рдЪреЗрдХ рдЕрдиреНрддрд░рд╛рд▓рд╣рд░реВрдмрд╛рдЯ рдЯрд╛рдврд╛ рдЬрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд╡рд╕реНрддреБ (рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдбрд┐рдЧреНрд░реА рдлрд░реЗрдирд╣рд╛рдЗрдЯрдорд╛ рддрд╛рдкрдХреНрд░рдо) рдкрдЫрд┐ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБрдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░рд┐рдПрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдерд┐рдпреЛред

рддрд░ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рд░ рдЬрд╛рдБрдЪ рдкреНрд░рддреНрдпреЗрдХ 30 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдПрдХ рдкрдЯрдХ рдЧрд░рд┐рдиреНрдЫ, Zabbix "рд╣реНрдпрд╛рдХреНрд╕" 29 рд╕реЗрдХреЗрдиреНрдбрдорд╛, рд░ рдЕрдиреНрддрд┐рдо рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдпреЛ рдЬрд╛рдБрдЪ рд░ рдЧрдгрдирд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫред рдпрд╕рд▓реЗ рд▓рд╛рдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫ рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдЫред рддрд╕рд░реНрде, рдпреЛ рд╡рд╛рд╕реНрддрд╡рдореИ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛ рдорд╛рддреНрд░ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреНрддрд░рд╛рд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫред

рдпрд╕ рд╕рдорд╕реНрдпрд╛рдорд╛, рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдПрдХ-рд▓рд╛рдЗрди рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рд╣реЛ рдЬрд╕рд▓реЗ рдбрд┐рдЧреНрд░реА рдлрд░реЗрдирд╣рд╛рдЗрдЯрд▓рд╛рдИ рдбрд┐рдЧреНрд░реА рд╕реЗрд▓реНрд╕рд┐рдпрд╕рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрджрдЫ:

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

рдпреЛ рдЫрд┐рдЯреЛ рд░ рд╕рдЬрд┐рд▓реЛ рдЫ, рддрдкрд╛рдИрдВрд▓реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдЗрддрд┐рд╣рд╛рд╕ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рд░ рддрдкрд╛рдИрдВрд▓реЗ рдЬрд╛рдБрдЪрдХрд╛ рд▓рд╛рдЧрд┐ рд▓рдЪрд┐рд▓реЛ рдЕрдиреНрддрд░рд╛рд▓рд╣рд░реВ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ

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

рддрд░, рдпрджрд┐ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕реНрдерд┐рддрд┐ рдорд╛ рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛ рддрддреНрд╡ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдореНрдпрд╛рдХреНрд░реЛ рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреБрдиреИ рдкрдирд┐ рд╕реНрдерд┐рд░ рд╕рдВрдЧ, рдпреЛ рдорд╛рдкрджрдгреНрдб рдорд╛ рд▓рд┐рдиреБ рдкрд░реНрдЫред рдореВрд▓реНрдп рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрдиреНрдЫред рд╕реНрдЯреНрд░рд┐рдЩ рдердк рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛, рджреБрдИ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рдорд╛рддреНрд░ рдПрдХрдорд╛ рдорд┐рд▓рд╛рдЗрдиреНрдЫред

рд╣рд╛рдореА рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Zabbix рдорд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫреМрдВ

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

рдЧрдгрд┐рддреАрдп рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдирддрд┐рдЬрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рдкреНрд░рд╛рдкреНрдд рдорд╛рдирд╣рд░реВрдХреЛ рдкреНрд░рдХрд╛рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ parseInt(), рдЬрд╕рд▓реЗ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ, рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫ рдкрд╛рд░реНрд╕рдлреНрд▓реЛрдЯ(), рдЬрд╕рд▓реЗ рджрд╢рдорд▓рд╡, рд╡рд╛ рдХрд╛рд░реНрдп рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫ рдирдореНрдмрд░, рдЬрд╕рд▓реЗ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд╛ рджрд╢рдорд▓рд╡ рдлрд░реНрдХрд╛рдЙрдБрдЫред

рдХрд╛рд░реНрдп реи

рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рдЕрдиреНрддреНрдп рд╕рдореНрдо рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕рд░реНрдд: рд╕реЗрд╡рд╛рд▓реЗ "рдлреЗрдмреНрд░реБрдЕрд░реА резреи 12:12:33 56 GMT" рдврд╛рдБрдЪрд╛рдорд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рдореНрдпрд╛рдж рд╕рдХрд┐рдиреЗ рдорд┐рддрд┐ рдЬрд╛рд░реА рдЧрд░реНрдЫред

ECMAScript5 рдорд╛ date.parse() ISO 8601 рдврд╛рдБрдЪрд╛ (YYYY-MM-DDTHH:mm:ss.sssZ) рдорд╛ рдорд┐рддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред рдпрд╕рд▓рд╛рдИ MMM DD YYYY HH:mm:ss ZZ рдврд╛рдБрдЪрд╛рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩ рдХрд╛рд╕реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╕рдорд╕реНрдпрд╛: рдорд╣рд┐рдирд╛рдХреЛ рдорд╛рди рдкрд╛рдардХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрдХреНрдд рдЧрд░рд┐рдиреНрдЫ, рд╕рдВрдЦреНрдпрд╛рдХреЛ рд░реВрдкрдорд╛ рд╣реЛрдЗрдиред рдпрд╕ рдврд╛рдБрдЪрд╛рдорд╛ рдбрд╛рдЯрд╛ Duktape рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджреИрдиред

рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг:

  • рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рдПрдЙрдЯрд╛ рдЪрд░ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рдорд╛рди рд▓рд┐рдиреНрдЫ (рдкреВрд░рд╛ рд▓рд┐рдкрд┐ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдорджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реВрдЪреАрдмрджреНрдз рдЪрд░рд╣рд░реВрдХреЛ рдШреЛрд╖рдгрд╛ рд╣реЛ)ред

  • рдкрд╣рд┐рд▓реЛ рдкрдЩреНрдХреНрддрд┐рдорд╛ рд╣рд╛рдореАрд▓реЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдорд╛ рдорд┐рддрд┐ рдкрд╛рдЙрдБрдЫреМрдВ рдореВрд▓реНрдп рд░ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдЦрд╛рд▓реА рдард╛рдЙрдБрд╣рд░реВрд╕рдБрдЧ рдЕрд▓рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд┐рднрд╛рдЬрд┐рддред рдпрд╕рд░реА, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдПрд░реЗ рдкрд╛рдЙрдБрдЫреМрдВ, рдЬрд╣рд╛рдБ рдПрд░реЗрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ реж рдорд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рд╕реНрдкреЗрд╕ рдЕрдШрд┐ рд░ рдкрдЫрд┐рдХреЛ рдПрдХ рдорд┐рддрд┐ рддрддреНрд╡рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рд╡рд┐рднрд╛рдЬрди(реж) - рдорд╣рд┐рдирд╛, рд╡рд┐рднрд╛рдЬрди(реж) - рдирдореНрдмрд░, рд╡рд┐рднрд╛рдЬрди(реж) - рд╕рдордп рд╕рд╣рд┐рддрдХреЛ рд╕реНрдЯреНрд░рд┐рдЩ, рдЗрддреНрдпрд╛рджрд┐ред рддреНрдпрд╕ рдкрдЫрд┐, рдорд┐рддрд┐рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрд░реЗрдорд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

  • рдкреНрд░рддреНрдпреЗрдХ рдорд╣рд┐рдирд╛ (рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдХреНрд░рдордорд╛) рдПрд░реЗрдорд╛ рдпрд╕рдХреЛ рд╕реНрдерд┐рддрд┐рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ (реж рджреЗрдЦрд┐ резрез рд╕рдореНрдо)ред рдкрд╛рда рдорд╛рдирд▓рд╛рдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдирдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди, рдорд╣рд┐рдирд╛рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдорд╛ рдПрдЙрдЯрд╛ рдердкрд┐рдПрдХреЛ рдЫ (рдХрд┐рдирднрдиреЗ рдорд╣рд┐рдирд╛рд╣рд░реВ рез рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреЗ рдЧрд░реА рдЕрдВрдХрд┐рдд рд╣реБрдиреНрдЫрдиреН)ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдПрдХ рдЬреЛрдбрд┐рдПрдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛрд╖реНрдардХрдорд╛ рд▓рд┐рдЗрдиреНрдЫ, рдХрд┐рдирднрдиреЗ рдЕрдиреНрдпрдерд╛ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреЗрдЫ, рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдЗрдиред рдЕрдиреНрддрдорд╛ рд╣рд╛рдореА рдЧрд░реНрдЫреМрдВ рдЯреБрдХреНрд░рд╛ () - рдХреЗрд╡рд▓ рджреБрдИ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рдЫреЛрдбреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреНрддрдмрд╛рдЯ рдПрд░реЗ рдХрд╛рдЯреНрдиреБрд╣реЛрд╕реН (рдЬреБрди рджреБрдИ-рдЕрдЩреНрдХрдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╕рд╛рде рдорд╣рд┐рдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ)ред

`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),`

  • рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдорд╛рдирд╣рд░реВрдмрд╛рдЯ ISO рдврд╛рдБрдЪрд╛рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдХреНрд░рдордорд╛ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдердкреЗрд░ рдмрдирд╛рдЙрдБрдЫреМрдВред

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

рдирддрд┐рдЬрд╛ рдврд╛рдБрдЪрд╛рдорд╛ рдбрд╛рдЯрд╛ 1970 рджреЗрдЦрд┐ рднрд╡рд┐рд╖реНрдпрдорд╛ рдХреЗрд╣реА рдмрд┐рдиреНрджреБ рд╕реЗрдХреЗрдиреНрдб рдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╣реЛред рдЯреНрд░рд┐рдЧрд░рд╣рд░реВрдорд╛ рдкреНрд░рд╛рдкреНрдд рдврд╛рдБрдЪрд╛рдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд▓рдЧрднрдЧ рдЕрд╕рдореНрднрд╡ рдЫ, рдХрд┐рдирдХрд┐ Zabbix рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдореНрдпрд╛рдХреНрд░реЛрд╕рдБрдЧ рдорд╛рддреНрд░ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред {рдорд┐рддрд┐ ╨╕ {рд╕рдордп}, рдЬрд╕рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдврд╛рдБрдЪрд╛рдорд╛ рдорд┐рддрд┐ рд░ рд╕рдордп рдлрд░реНрдХрд╛рдЙрдБрдЫред

  • рд╣рд╛рдореА рддреНрдпрд╕рдкрдЫрд┐ рдпреБрдирд┐рдХреНрд╕ рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк рдврд╛рдБрдЪрд╛рдорд╛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╣рд╛рд▓рдХреЛ рдорд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрдд рдирднрдПрд╕рдореНрдо рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдорд╛рдкреНрддрд┐ рдорд┐рддрд┐рдмрд╛рдЯ рдШрдЯрд╛рдЙрди рд╕рдХреНрдЫреМрдВред

`now = Date.now();`

  • Zabbix рдорд╛ рд╕реЗрдХреЗрдиреНрдб рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдорд╛рдирд▓рд╛рдИ рд╣рдЬрд╛рд░рд▓реЗ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдЫреМрдВред

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

рдЯреНрд░рд┐рдЧрд░рдорд╛, рддрдкрд╛рдЗрдБ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ 'рдЕрдиреНрддрд┐рдо' рдЕрдВрдХрд╣рд░реВрдХреЛ рд╕реЗрдЯ рдкрдЫрд┐ рдЬреБрди рдЕрд╡рдзрд┐рдорд╛ рддрдкрд╛рдИрд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рдЪрд╛рд╣рдиреБ рднрдПрдХреЛ рд╕реЗрдХреЗрдиреНрдбрдХреЛ рд╕рдВрдЦреНрдпрд╛рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рдкреНрддрд╛рд╣рд░реВрдорд╛ред рдпрд╕рд░реА, рдЯреНрд░рд┐рдЧрд░рд▓реЗ рдПрдХ рд╣рдкреНрддрд╛рдорд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рдореНрдпрд╛рдж рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рд╕реВрдЪрд┐рдд рдЧрд░реНрдиреЗрдЫред

рдиреЛрдЯ. рдЙрдкрдпреЛрдЧ рдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН parseInt() рдХрд╛рд░реНрдпрдорд╛ рдлрд┐рд░реНрддреАрдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдХреЛ рд╡рд┐рднрд╛рдЬрдирдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреЗ рднрд┐рдиреНрди рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рдкреВрд░реНрдгрд╛рдВрдХрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиред рддрдкрд╛рдИрдВ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдкрд╛рд░реНрд╕рдлреНрд▓реЛрдЯ() рд░ рдЖрдВрд╢рд┐рдХ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рд░рд┐рдкреЛрд░реНрдЯ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди