Π’ΠΈΡ
ΠΎΠ½ Π£ΡΠΊΠΎΠ², ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° Zabbix
Zabbix Π΅ Π°Π΄Π°ΠΏΡΠΈΠ²Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ Π΄Π°Π½Π½ΠΈ. ΠΡ Π½Π°ΠΉ-ΡΠ°Π½Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Zabbix Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠ° ΠΈΠΌΠ°Π»ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΡΡΠ΅Π· ΠΠ΅ΠΉΡΡΠ²ΠΈΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ΅Π΄ΠΈΡΠ° ΡΡΡΠ΄Π½ΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° ΠΈΠΌ Π΄ΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π²ΡΠ·Π»ΠΈ ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ.
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 - Lua 5.1
- Lua - LuaJIT
- Javascript - Duktape
- Javascript - JerryScript
- ΠΠ³ΡΠ°Π΄Π΅Π½ Python
- ΠΠ³ΡΠ°Π΄Π΅Π½ Perl
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ Π±ΡΡ Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅, Π»Π΅ΠΊΠΎΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π½ΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΡΡΠ»ΠΎΡΡΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡΠ° ΠΎΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΈ, JavaScript ΡΠΏΠ΅ΡΠ΅Π»ΠΈ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Duktape.
ΠΡΠΈΡΠ΅ΡΠΈΠΈ Π·Π° ΠΏΠΎΠ΄Π±ΠΎΡ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Duktape:
β Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ
β Zabbix ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° Duktape:
- Zabbix.log() - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΠ²Π° Π½Π° Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΎΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Zabbix ΡΡΡΠ²ΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Webhook, ΡΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ°.
- CurlHttpRequest() - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ HTTP Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±Π°Π·ΠΈΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Webhook.
- atob() ΠΈ btoa() - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ Base64.
ΠΠΠΠΠΠΠΠΠ. Duktape ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ ACME. Zabbix ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π΅ΡΡΠΈΡΡΠ° ΠΎΡ 2015 Π³. Π½Π° ΡΠΊΡΠΈΠΏΡΠ°. ΠΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ° Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π½Π°ΡΠΈ..
JavaScript ΠΌΠ°Π³ΠΈΡ
Π¦ΡΠ»Π°ΡΠ° ΠΌΠ°Π³ΠΈΡ Π½Π° JavaScript ΡΠ΅ ΠΊΡΠΈΠ΅ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΡΠΎ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅: Π½ΠΈΠ·ΠΎΠ²ΠΈ, ΡΠΈΡΠ»ΠΎΠ²ΠΈ ΠΈ Π±ΡΠ»Π΅Π²ΠΈ.
Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠ°ΠΊΡΠ² ΡΠΈΠΏ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π²ΡΡΠ½Π΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΡΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅, Π²ΡΡΠ½Π°ΡΠΈ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ, ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π² ΡΠΈΡΠ»Π°. ΠΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ, Π·Π°ΡΠΎΡΠΎ Π°ΠΊΠΎ ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ΅ Π΅ Π½ΠΈΠ·, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΈ.
ΠΠΠΠΠΠΠΠΠ. ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°, ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΈ toString. ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΈΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° toString. ΠΠ΅ΡΠΎΠ΄ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΡΡΡΠ±Π²Π° Π΄Π° Π²ΡΡΠ½Π΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΌΡ ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°.
ΠΠ·Π²ΠΈΠΊΠ²Π° ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΠΎΠ±Π΅ΠΊΡ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π°. ΠΠΊΠΎ Π½Π΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΈΠ»ΠΈ Π½Π΅ Π²ΡΡΠ½Π΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΌΠ΅ΡΠΎΠ΄ΡΡ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° toString. ΠΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΡΡ toString Π½Π΅ Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ, ΡΡΡΡΠΈ ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π² ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΡ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² ΠΈΠ·ΡΠ°Π·Π° ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡ ΠΊΡΠΌ ΡΡΡΠΈΡ ΡΠΈΠΏ. ΠΠΊΠΎ ΠΎΠ±Π΅ΠΊΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΌΠ΅ΡΠΎΠ΄ toString, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠΎΠ³Π°Π²Π° ΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΎΡ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±Π°ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½ΠΈΠ·.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π·Π° Π·Π° ΠΎΠ±Π΅ΠΊΡ 'OBJ' Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ ΠΌΠ΅ΡΠΎΠ΄ toString,
`var obj = { toString() { return "200" }}`
ΠΌΠ΅ΡΠΎΠ΄ toString Π²ΡΡΡΠ° ΡΠΎΡΠ½ΠΎ Π½ΠΈΠ· ΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΈΠ· Ρ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ»Π΅ΠΏΠ΅Π½ Π½ΠΈΠ·:
`obj + 1 // '2001'`
`obj + 'a' // β200a'`
ΠΠΎ Π°ΠΊΠΎ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ toString, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΡΡ Π΄Π° Π²ΡΡΠ½Π΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΠ±Π΅ΠΊΡΡΡ Π±ΡΠ΄Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΡΠΈΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΎΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΡΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅.
`var obj = { toString() { return 200 }}`
`obj + 1 // '2001'`
Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ, Π°ΠΊΠΎ ΠΈΠ·Π²ΡΡΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Ρ Π½ΠΈΠ·, ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ· ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ»Π΅ΠΏΠ΅Π½ Π½ΠΈΠ·.
`obj + 'a' // β200a'`
Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π³ΡΠ΅ΡΠΊΠΈ ΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° JavaScript.
ΠΠ΅ΡΠΎΠ΄ΡΡ toString ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ° Ρ 1.
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠ°, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π΅ ΡΠ°Π²Π½Π° Π½Π° 3 ΠΈ ΡΡΡΠΎ Π΅ ΡΠ°Π²Π½Π° Π½Π° 4.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π° Ρ ΠΊΠ°ΡΡ (==), ΠΌΠ΅ΡΠΎΠ΄ΡΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ toString Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Ρ Π²ΡΡΠΊΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½Π΅ΡΡΠ°Π²Π½Π΅Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ (===).
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠΏΠ°
ΠΠΠΠΠΠΠΠΠ. ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΠΊΡΡΠΎΡΠΈ.
ΠΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ Webhooks ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π° Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ°Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΈ Π³ΡΠ΅ΡΠΊΠΈ.
Webhook Media
Π ΠΊΡΠ°Ρ Π½Π° 2019 Π³. ΠΈ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° 2020 Π³. Π΅ΠΊΠΈΠΏΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° Zabbix Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Webhooks ΠΈ Π³ΠΎΡΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ΄Π²Π°Ρ Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Π½Π° Zabbix.
ΡΠ°Π·Π΄ΠΎΡ Jira Π‘Π΅ΡΠ²ΠΈΠ·Π½ΠΎ Π±ΡΡΠΎ Π½Π° Jira Mattermost Microsoft Teams Opsgenie OTR ΠΌΠΈΡΠΎ ΠΏΠ΅ΠΉΠ΄ΠΆΡΡ Π±Π°Π»Π°ΠΌΠ° Redmine ServiceNow SINGL4 ΠΠ°ΡΡΠΎΠΉ Telegram ΠΠ°ΠΌΠ°Π΄ Zendesk
ΠΡΡΠ·ΠΊΠ° ΠΊΡΠΌ
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
- ΠΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π² JavaScript Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π²ΡΠ½ΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π² Zabbix ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΡΡΠΊΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ Π΄Π° Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ Π² Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
- ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π² Zabbix ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΎΡ JavaScript ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° Π² Π±Π°ΠΉΡ ΠΊΠΎΠ΄, ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° Π΅Π΄Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΊΠ°ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΊΠ°ΡΠΎ Π½ΠΈΠ· (Π½ΠΈΠ·ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠ°ΠΊΡΠΎ ΡΠΈΡΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΡΠΈΡΠ»ΠΎ).
- Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·Ρ ΠΎΠ΄ΡΡ Π΅ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΡΠ°Ρ Π½Π° ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²ΡΡΡΠ°Π½Π΅.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ Π² ΠΊΠΎΠ΄Π°.
- Π Π΅ΡΡΡΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΎ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎ. ΠΠ° ΡΡΡΠΏΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 10 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ° RAM ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
ΠΠΠΠΠΠΠΠΠ. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ ΠΎΡ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΅ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠ°, Π·Π°ΡΠΎΡΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΠΎΠ²Π½ΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π·Π° 1 ΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠΏΠΎΡΠ΅Π΄ Π΄ΠΎΡΡΠ° βΡΠ΅ΠΆΡΠΊβ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Π°Π²ΠΈ Zabbix. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½ΠΈ JavaScript ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΡΡΠ΅Π· ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈΡΠ΅ ΡΠ΅Π½ΡΠ΅ΡΡΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ (ΡΠΈΠΊΡΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ), ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ ΡΡΠ΅Π· ΡΠ΅ΡΡΠ° Π·Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° 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 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ΅ΠΊΡΠ½Π΄Π° Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°. Π’ΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π° ΠΎΠΏΠ°ΡΠΊΠ° ΠΈ Π·Π°ΡΡΠ³Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
Π ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° JavaScript Π² Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π³ΡΠ°Π΄ΡΡΠΈ ΠΏΠΎ Π€Π°ΡΠ΅Π½Ρ Π°ΠΉΡ Π² Π³ΡΠ°Π΄ΡΡΠΈ ΠΏΠΎ Π¦Π΅Π»Π·ΠΈΠΉ:
`return (value - 32) * 5 / 9;`
ΠΡΡΠ·ΠΎ ΠΈ Π»Π΅ΡΠ½ΠΎ Π΅, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ Π·Π° ΡΡΡ , Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
`return (parseInt(value) + parseInt("{$EXAMPLE.MACRO}"));`
ΠΠΎ Π°ΠΊΠΎ Π² Ρ ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΊΠΎΡΡΠΎ ΠΈ Π΄Π° Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° Π² ΠΌΠ°ΠΊΡΠΎΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ°Π·ΡΠΈΡΡΠ²Π° ΡΠ΅ Π² Π½ΠΈΠ·. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π΄Π²Π° Π½ΠΈΠ·Π° ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Ρ Π² Π΅Π΄ΠΈΠ½.
`return (value + "{$EXAMPLE.MACRO}");`
ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² ΡΠΈΡΡΠΎΠ² ΡΠΎΡΠΌΠ°Ρ. ΠΠ° ΡΠ΅Π»ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° parseInt(), ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ parseFloat(), ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π΄Π΅ΡΠ΅ΡΠΈΡΠ΅Π½ Π·Π½Π°ΠΊ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠΎΠΉ, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ ΠΈΠ»ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΡΠ΅Π½ Π·Π½Π°ΠΊ.
ΠΡΠΎΠ±Π»Π΅ΠΌ 2
ΠΠΎΠ»ΡΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π² ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΄ΠΎ ΠΊΡΠ°Ρ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
Π‘ΡΡΡΠΎΡΠ½ΠΈΠ΅: ΡΡΠ»ΡΠ³Π° ΠΈΠ·Π΄Π°Π²Π° Π΄Π°ΡΠ° Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ β12 ΡΠ΅Π²ΡΡΠ°ΡΠΈ 12:33:56 2022 GMTβ.
Π ECMAScript5 date.parse() ΠΏΡΠΈΠ΅ΠΌΠ° Π΄Π°ΡΠ° Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ISO 8601 (ΠΠΠΠ-ΠΠ-ΠΠΠ’Π§Π§:ΠΌΠΌ:ΡΡ.ΡΡΡΡZ). ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° Π³ΠΎ ΠΊΠ°ΡΡΠ½Π΅ΡΠ΅ Π½ΠΈΠ· Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ MMM DD YYYY HH:mm:ss ZZ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ: ΠΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ΅ ΠΈΠ·ΡΠ°Π·ΡΠ²Π° ΠΊΠ°ΡΠΎ ΡΠ΅ΠΊΡΡ, Π° Π½Π΅ ΠΊΠ°ΡΠΎ ΡΠΈΡΠ»ΠΎ. ΠΠ°Π½Π½ΠΈΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠΎΡΠΌΠ°Ρ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΠΎΡ Duktape.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
-
ΠΡΡΠ²ΠΎ ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ (ΡΠ΅Π»ΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΡ Π·Π°ΠΏΠ΅ΡΠ°ΠΈ).
-
Π ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π΄Π°ΡΠ°ΡΠ° Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ Π³ΠΎ ΠΎΡΠ΄Π΅Π»Π΅ΡΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°Π·Π΄Π΅Π»ΡΡ. Π’Π°ΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΌΠ°ΡΠΈΠ², Π² ΠΊΠΎΠΉΡΠΎ Π²ΡΠ΅ΠΊΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ ΠΌΠ°ΡΠΈΠ²Π°, Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡ 0, ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ Π΄Π°ΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π». ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ (0) - ΠΌΠ΅ΡΠ΅Ρ, ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ (1) - Π½ΠΎΠΌΠ΅Ρ, ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ (2) - Π½ΠΈΠ· Ρ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Ρ.Π½. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΊΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ Π΄Π°ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΌΠ°ΡΠΈΠ²Π°.
`var split = value.split(' '),`
- ΠΡΠ΅ΠΊΠΈ ΠΌΠ΅ΡΠ΅Ρ (Π² Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠ΅Π΄) ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° ΡΠΈ Π² ΠΌΠ°ΡΠΈΠ²Π° (ΠΎΡ 0 Π΄ΠΎ 11). ΠΠ° Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΡΠΈΡΠ»ΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΠΌΠ΅ΡΠ΅ΡΠ° (ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΌΠ΅ΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°Ρ, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ 1). Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·ΡΠ°Π·ΡΡ Ρ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ΅ Π²Π·Π΅ΠΌΠ° Π² ΡΠΊΠΎΠ±ΠΈ, Π·Π°ΡΠΎΡΠΎ Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π½ΠΈΠ·, Π° Π½Π΅ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΠΊΡΠ°Ρ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ΅Π·Π΅Π½() - ΠΈΠ·ΡΠ΅ΠΆΠ΅ΡΠ΅ ΠΌΠ°ΡΠΈΠ²Π° ΠΎΡ ΠΊΡΠ°Ρ, Π·Π° Π΄Π° ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π΄Π²Π° Π·Π½Π°ΠΊΠ° (ΠΊΠΎΠ΅ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π° ΠΌΠ΅ΡΠ΅ΡΠΈ Ρ Π΄Π²ΡΡΠΈΡΡΠ΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ).
`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 Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Ρ ΠΌΠ°ΠΊΡΠΎΡΠΈ {ΠΠ°ΡΠ°} ΠΈ {Time}, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ°Ρ Π΄Π°ΡΠ°ΡΠ° ΠΈ ΡΠ°ΡΠ° Π² ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΠΎΡΠΌΠ°Ρ.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄Π°ΡΠ° Π² JavaScript Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ Unix Timestamp ΠΈ Π΄Π° Ρ ΠΈΠ·Π²Π°Π΄ΠΈΠΌ ΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° Π΄Π°ΡΠ° Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π±ΡΠΎΡ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΎΡ ΡΠ΅Π³Π° Π΄ΠΎ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°.
`now = Date.now();`
- Π Π°Π·Π΄Π΅Π»ΡΠΌΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Ρ ΠΈΠ»ΡΠ΄Π°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π² Zabbix.
`return parseInt((Date.parse(ISOdate) - now) / 1000);`
Π ΡΡΠΈΠ³Π΅ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΈΠ·ΡΠ°Π·Π° 'ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ', ΠΏΠΎΡΠ»Π΅Π΄Π²Π°Π½ΠΎ ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΈΡΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π±ΡΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π² ΠΏΠ΅ΡΠΈΠΎΠ΄Π°, Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ΅Π΄ΠΌΠΈΡΠΈ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΡΠΈΠ³Π΅ΡΡΡ ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠΈ, ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡΡ ΠΈΠ·ΡΠΈΡΠ° ΡΠ»Π΅Π΄ ΡΠ΅Π΄ΠΌΠΈΡΠ°.
ΠΠΠΠΠΠΠΠΠ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° parseInt() Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ°Π½Π΅Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΡΠΎΠ±Π½ΠΎΡΠΎ ΡΠΈΡΠ»ΠΎ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΎΡ Π΄Π΅Π»Π΅Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π² ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ parseFloat() ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com