ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்

ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்
டிகோன் உஸ்கோவ், Zabbix ஒருங்கிணைப்பு குழு பொறியாளர்

Zabbix என்பது தனிப்பயனாக்கக்கூடிய தளமாகும், இது எந்த வகையான தரவையும் கண்காணிக்கப் பயன்படுகிறது. Zabbix இன் ஆரம்ப பதிப்புகளில் இருந்து, கண்காணிப்பு நிர்வாகிகள் பல்வேறு ஸ்கிரிப்ட்களை இயக்கும் திறனைப் பெற்றுள்ளனர். செயல்கள் இலக்கு நெட்வொர்க் முனைகளில் சோதனைகள். அதே நேரத்தில், ஸ்கிரிப்ட்களின் துவக்கம், ஸ்கிரிப்ட்களை ஆதரிக்க வேண்டிய அவசியம், தகவல் தொடர்பு முனைகள் மற்றும் ப்ராக்ஸிகளுக்கு அவற்றின் விநியோகம் மற்றும் வெவ்வேறு பதிப்புகளுக்கான ஆதரவு போன்ற பல சிரமங்களுக்கு வழிவகுத்தது.

Zabbix க்கான ஜாவாஸ்கிரிப்ட்

ஏப்ரல் 2019 இல், ஜாவாஸ்கிரிப்ட் முன் செயலாக்கத்துடன் Zabbix 4.2 அறிமுகப்படுத்தப்பட்டது. தரவை எங்காவது எடுத்துச் செல்லும் ஸ்கிரிப்ட்களை எழுதுவதைக் கைவிடுவது, அதை ஜீரணித்து Zabbix புரிந்துகொள்ளும் வடிவத்தில் வழங்குவது மற்றும் Zabbix ஆல் சேமிப்பதற்கும் செயலாக்குவதற்கும் தயாராக இல்லாத தரவைப் பெறும் எளிய சோதனைகளைச் செய்யும் யோசனையைப் பற்றி பலர் உற்சாகமடைந்தனர். இந்த தரவு ஸ்ட்ரீமை Zabbix மற்றும் JavaScript கருவிகளைப் பயன்படுத்தி செயலாக்கவும். Zabbix 3.4 இல் தோன்றிய குறைந்த-நிலை கண்டுபிடிப்பு மற்றும் சார்ந்த உருப்படிகளுடன் இணைந்து, பெறப்பட்ட தரவை வரிசைப்படுத்துவதற்கும் நிர்வகிப்பதற்கும் எங்களுக்கு மிகவும் நெகிழ்வான கருத்து உள்ளது.

Zabbix 4.4 இல், ஜாவாஸ்கிரிப்ட்டில் முன் செயலாக்கத்தின் தர்க்கரீதியான தொடர்ச்சியாக, ஒரு புதிய அறிவிப்பு முறை தோன்றியது - Webhook, இது மூன்றாம் தரப்பு பயன்பாடுகளுடன் Zabbix அறிவிப்புகளை எளிதாக ஒருங்கிணைக்கப் பயன்படுகிறது.

ஜாவாஸ்கிரிப்ட் மற்றும் டக்டேப்ஸ்

ஜாவாஸ்கிரிப்ட் மற்றும் டக்டேப் ஏன் தேர்ந்தெடுக்கப்பட்டன? மொழிகள் மற்றும் இயந்திரங்களுக்கான பல்வேறு விருப்பங்கள் கருதப்பட்டன:

  • லுவா - லுவா 5.1
  • Lua - LuaJIT
  • ஜாவாஸ்கிரிப்ட் - டக்டேப்
  • ஜாவாஸ்கிரிப்ட் - ஜெர்ரிஸ்கிரிப்ட்
  • உட்பொதிக்கப்பட்ட பைதான்
  • உட்பொதிக்கப்பட்ட பெர்ல்

முக்கிய தேர்வு அளவுகோல்கள் பரவல், தயாரிப்பில் இயந்திரத்தை எளிதாக ஒருங்கிணைப்பது, குறைந்த வள நுகர்வு மற்றும் இயந்திரத்தின் ஒட்டுமொத்த செயல்திறன் மற்றும் கண்காணிப்பில் இந்த மொழியில் குறியீட்டை அறிமுகப்படுத்துவதன் பாதுகாப்பு. குறிகாட்டிகளின் கலவையின் அடிப்படையில், டக்டேப் இயந்திரத்தில் ஜாவாஸ்கிரிப்ட் வென்றது.

ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்

தேர்வு அளவுகோல்கள் மற்றும் செயல்திறன் சோதனை

டக்டேப்பின் அம்சங்கள்:

- தரநிலை ECMAScript E5/E5.1
- Duktape க்கான Zabbix தொகுதிகள்:

  • Zabbix.log() - பல்வேறு நிலை விவரங்களுடன் செய்திகளை நேரடியாக Zabbix சர்வர் பதிவில் எழுத உங்களை அனுமதிக்கிறது, இது பிழைகளை தொடர்புபடுத்துவதை சாத்தியமாக்குகிறது, எடுத்துக்காட்டாக, Webhook இல், சேவையக நிலையுடன்.
  • CurlHttpRequest() - Webhook இன் பயன்பாட்டை அடிப்படையாகக் கொண்ட பிணையத்திற்கு HTTP கோரிக்கைகளைச் செய்ய உங்களை அனுமதிக்கிறது.
  • atob() மற்றும் btoa() - நீங்கள் Base64 வடிவத்தில் சரங்களை குறியாக்கம் செய்து டிகோட் செய்ய அனுமதிக்கிறது.

குறிப்பு. Duktape ACME தரநிலைகளுடன் இணங்குகிறது. Zabbix ஸ்கிரிப்ட்டின் 2015 பதிப்பைப் பயன்படுத்துகிறது. அடுத்தடுத்த மாற்றங்கள் சிறியவை, எனவே அவை புறக்கணிக்கப்படலாம்..

ஜாவாஸ்கிரிப்ட் மந்திரம்

ஜாவாஸ்கிரிப்ட்டின் அனைத்து மேஜிக்களும் டைனமிக் டைப்பிங் மற்றும் டைப் காஸ்டிங்: சரம், எண் மற்றும் பூலியன்.

அதாவது, எந்த வகை மாறி ஒரு மதிப்பை வழங்க வேண்டும் என்பதை முன்கூட்டியே அறிவிக்க வேண்டிய அவசியமில்லை.

கணித செயல்பாடுகளில், செயல்பாட்டு ஆபரேட்டர்களால் திரும்பப் பெறப்படும் மதிப்புகள் எண்களாக மாற்றப்படுகின்றன. அத்தகைய செயல்பாடுகளுக்கு விதிவிலக்கு கூடுதலாகும், ஏனெனில் விதிமுறைகளில் குறைந்தபட்சம் ஒரு சரமாக இருந்தால், சரம் மாற்றம் அனைத்து விதிமுறைகளுக்கும் பயன்படுத்தப்படும்.

குறிப்பு. இத்தகைய மாற்றங்களுக்குப் பொறுப்பான முறைகள் வழக்கமாக பொருளின் பெற்றோர் முன்மாதிரிகளில் செயல்படுத்தப்படுகின்றன, மதிப்பு и ஸ்ட்ரிங். மதிப்பு எண் மாற்றத்தின் போது அழைக்கப்படுகிறது மற்றும் எப்போதும் முறைக்கு முன் ஸ்ட்ரிங். முறை மதிப்பு பழமையான மதிப்புகளை வழங்க வேண்டும், இல்லையெனில் அதன் முடிவு புறக்கணிக்கப்படும்.

ஒரு பொருளின் மீது ஒரு முறை அழைக்கப்படுகிறது மதிப்பு. அது கண்டுபிடிக்கப்படவில்லை அல்லது ஒரு பழமையான மதிப்பை வழங்கவில்லை என்றால், முறை அழைக்கப்படுகிறது ஸ்ட்ரிங். முறை என்றால் ஸ்ட்ரிங் தேடியும் கிடைக்கவில்லை மதிப்பு பொருளின் முன்மாதிரியில், மதிப்பின் செயலாக்கம் முடிவடையும் வரை அனைத்தும் மீண்டும் மீண்டும் செய்யப்படும் மற்றும் வெளிப்பாட்டின் அனைத்து மதிப்புகளும் ஒரே வகைக்கு அனுப்பப்படும். பொருள் ஒரு முறையை செயல்படுத்தினால் ஸ்ட்ரிங், இது ஒரு பழமையான மதிப்பை வழங்குகிறது, பின்னர் அது சரம் மாற்றத்திற்கு பயன்படுத்தப்படுகிறது. இருப்பினும், இந்த முறையைப் பயன்படுத்துவதன் விளைவாக ஒரு சரம் அவசியமில்லை.

எடுத்துக்காட்டாக, பொருளுக்கு என்றால் 'பொருள்' முறை வரையறுக்கப்பட்டுள்ளது ஸ்ட்ரிங்,

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

முறை ஸ்ட்ரிங் சரியாக ஒரு சரத்தை வழங்குகிறது, மேலும் ஒரு எண்ணுடன் ஒரு சரத்தைச் சேர்க்கும்போது, ​​​​ஒட்டப்பட்ட சரத்தைப் பெறுகிறோம்:

`obj + 1 // '2001'` 

`obj + 'a' // ‘200a'`

ஆனால் நீங்கள் மீண்டும் எழுதினால் ஸ்ட்ரிங், அந்த முறை ஒரு எண்ணை வழங்கும், பொருள் சேர்க்கப்படும் போது, ​​ஒரு எண் மாற்றத்துடன் ஒரு கணித செயல்பாடு செய்யப்படும் மற்றும் கணித கூட்டல் முடிவு பெறப்படும்.

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

`obj + 1 // '2001'`

இந்த வழக்கில், நாம் ஒரு சரத்துடன் கூடுதலாகச் செய்தால், ஒரு சரம் மாற்றம் செய்யப்படுகிறது, மேலும் நாம் ஒரு ஒட்டப்பட்ட சரம் பெறுகிறோம்.

`obj + 'a' // ‘200a'`

புதிய ஜாவாஸ்கிரிப்ட் பயனர்களால் அதிக எண்ணிக்கையிலான தவறுகளுக்கு இதுவே காரணம்.

முறை ஸ்ட்ரிங் பொருளின் தற்போதைய மதிப்பை 1 ஆல் அதிகரிக்கும் செயல்பாட்டை நீங்கள் எழுதலாம்.

ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்
ஸ்கிரிப்டை செயல்படுத்துதல், மாறி 3 க்கு சமம், மேலும் அது 4 க்கு சமம்.

ஒரு வார்ப்பு (==) உடன் ஒப்பிடும் போது, ​​முறை ஒவ்வொரு முறையும் செயல்படுத்தப்படும் ஸ்ட்ரிங் மதிப்பு அதிகரிப்பு செயல்பாடு. அதன்படி, ஒவ்வொரு அடுத்தடுத்த ஒப்பீட்டிலும், மதிப்பு அதிகரிக்கிறது. வார்ப்பு அல்லாத ஒப்பீடு (===) மூலம் இதைத் தவிர்க்கலாம்.

ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்
வகை வார்ப்பு இல்லாமல் ஒப்பீடு

குறிப்பு. தேவையில்லாமல் நடிகர்கள் ஒப்பீடு பயன்படுத்த வேண்டாம்.

சிக்கலான தர்க்கத்துடன் கூடிய Webhooks போன்ற சிக்கலான ஸ்கிரிப்டுகளுக்கு, வகை வார்ப்புடன் ஒப்பிடுதல் தேவைப்படும், மாறிகளை வழங்கும் மற்றும் முரண்பாடுகள் மற்றும் பிழைகளைக் கையாளும் மதிப்புகளுக்கான காசோலைகளை முன்கூட்டியே எழுத பரிந்துரைக்கப்படுகிறது.

வெப்ஹூக் மீடியா

2019 இன் பிற்பகுதியிலும் 2020 ஆம் ஆண்டின் முற்பகுதியிலும், Zabbix ஒருங்கிணைப்புக் குழு, Zabbix விநியோகத்துடன் வரும் Webhooks மற்றும் அவுட்-ஆஃப்-பாக்ஸ் ஒருங்கிணைப்புகளை தீவிரமாக உருவாக்கி வருகிறது.

ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்
இணைப்பு ஆவணங்கள்

முன் செயலாக்கம்

  • ஜாவாஸ்கிரிப்டில் முன்செயலாக்கத்தின் வருகையானது பெரும்பாலான வெளிப்புற ஸ்கிரிப்ட்களை கைவிடுவதை சாத்தியமாக்கியது, தற்போது Zabbix இல் நீங்கள் எந்த மதிப்பையும் பெறலாம் மற்றும் அதை முற்றிலும் வேறுபட்ட மதிப்பாக மாற்றலாம்.
  • Zabbix இல் முன் செயலாக்கம் ஜாவாஸ்கிரிப்ட் குறியீட்டால் செயல்படுத்தப்படுகிறது, இது பைட்கோடாக தொகுக்கப்படும் போது, ​​ஒரு மதிப்பை அளவுருவாக எடுக்கும் செயல்பாடாக மாற்றப்படுகிறது. மதிப்பு ஒரு சரமாக (ஒரு சரம் ஒரு இலக்கம் மற்றும் எண் இரண்டையும் கொண்டிருக்கலாம்).
  • வெளியீடு ஒரு செயல்பாடு என்பதால், ஸ்கிரிப்ட்டின் முடிவில் தேவைப்படுகிறது திரும்ப.
  • குறியீட்டில் தனிப்பயன் மேக்ரோக்களைப் பயன்படுத்த முடியும்.
  • வளங்களை இயக்க முறைமை மட்டத்தில் மட்டுமல்ல, நிரல் ரீதியாகவும் வரையறுக்கலாம். முன் செயலாக்க படி அதிகபட்சமாக 10 மெகாபைட் ரேம் மற்றும் ரன் நேர வரம்பு 10 வினாடிகள் ஒதுக்கப்பட்டுள்ளது.

ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி Zabbix இல் நடைமுறைச் சிக்கல்களைத் தீர்க்கிறோம்

குறிப்பு. 10 வினாடிகளின் காலக்கெடு மதிப்பு மிகவும் அதிகமாக உள்ளது, ஏனெனில் "கனமான" முன்செயலாக்க சூழ்நிலையின்படி 1 வினாடியில் நிபந்தனைக்குட்பட்ட ஆயிரக்கணக்கான தரவு உருப்படிகளை சேகரிப்பது Zabbix ஐ மெதுவாக்கும். எனவே, நிழல் தரவு கூறுகள் (போலி உருப்படிகள்) என்று அழைக்கப்படுபவை மூலம் முழு அளவிலான ஜாவாஸ்கிரிப்ட் ஸ்கிரிப்ட்களை இயக்க முன்செயலாக்கத்தைப் பயன்படுத்த பரிந்துரைக்கப்படவில்லை, அவை முன் செயலாக்கத்தை மட்டுமே செய்ய இயக்கப்படுகின்றன.

முன்செயலாக்க சோதனை அல்லது பயன்பாட்டைப் பயன்படுத்தி உங்கள் குறியீட்டைச் சரிபார்க்கலாம் 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(), இது ஒரு முழு எண், ஒரு செயல்பாட்டை உருவாக்குகிறது parseFloat(), இது ஒரு தசமத்தை அல்லது ஒரு செயல்பாட்டை உருவாக்குகிறது எண், இது ஒரு முழு எண் அல்லது தசமத்தை வழங்குகிறது.

சிக்கல் 2

சான்றிதழின் இறுதி வரை நொடிகளில் நேரத்தைப் பெறுங்கள்.

நிலை: "பிப் 12 12:33:56 2022 ஜிஎம்டி" வடிவத்தில் ஒரு சேவை சான்றிதழ் காலாவதி தேதியை வழங்குகிறது.

ECMAScript 5 இல் date.parse() ISO 8601 வடிவத்தில் ஒரு தேதியை ஏற்றுக்கொள்கிறது (YYYY-MM-DDTHH:mm:ss.sssZ). 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),`

  • சரியான வரிசையில் சரங்களை வழக்கமாகச் சேர்ப்பதன் மூலம் பெறப்பட்ட மதிப்புகளிலிருந்து ஐஎஸ்ஓ வடிவத்தில் ஒரு சரத்தை உருவாக்குகிறோம்.

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

விளைந்த வடிவத்தில் உள்ள தரவு 1970 முதல் எதிர்காலத்தில் சில வினாடிகளின் எண்ணிக்கையாகும். பெறப்பட்ட வடிவத்தில் தரவை தூண்டுதல்களில் பயன்படுத்துவது கிட்டத்தட்ட சாத்தியமற்றது, ஏனெனில் மேக்ரோக்களுடன் மட்டுமே செயல்பட Zabbix உங்களை அனுமதிக்கிறது. {தேதி} и {நேரம்}, பயனர் நட்பு வடிவத்தில் தேதி மற்றும் நேரத்தை வழங்கும்.

  • யுனிக்ஸ் டைம்ஸ்டாம்ப் வடிவத்தில் ஜாவாஸ்கிரிப்டில் தற்போதைய தேதியைப் பெற்று, சான்றிதழ் காலாவதியாகும் வரையிலான மில்லி விநாடிகளின் எண்ணிக்கையைப் பெற, அதன் விளைவாக வரும் சான்றிதழ் காலாவதி தேதியிலிருந்து கழிக்கலாம்.

`now = Date.now();`

  • Zabbix இல் வினாடிகளைப் பெற, பெறப்பட்ட மதிப்பை ஆயிரத்தால் வகுக்கிறோம்.

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

தூண்டுதலில், நீங்கள் வெளிப்பாட்டைக் குறிப்பிடலாம் 'கடந்த' நீங்கள் பதிலளிக்க விரும்பும் காலகட்டத்தில் உள்ள வினாடிகளின் எண்ணிக்கையுடன் தொடர்புடைய இலக்கங்களின் தொகுப்பு, எடுத்துக்காட்டாக, வாரங்களில். இதனால், ஒரு வாரத்தில் சான்றிதழ் காலாவதியாகிறது என்று தூண்டுதல் தெரிவிக்கும்.

குறிப்பு. பயன்பாட்டில் கவனம் செலுத்துங்கள் parseInt() செயல்பாட்டில் திரும்பமில்லி விநாடிகளின் பிரிவின் விளைவாக வரும் பின்ன எண்ணை முழு எண்ணாக மாற்ற. நீங்களும் பயன்படுத்தலாம் parseFloat() மற்றும் பகுதி தரவுகளை சேமிக்கவும்.

அறிக்கையைப் பார்க்கவும்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்