18 פריטי סקריפט

סקירה כללית

ניתן להשתמש בפריטי סקריפט לאיסוף נתונים על ידי הפעלת קובץ מוגדר על ידי משתמש קוד JavaScript עם היכולת לאחזר נתונים באמצעות HTTP/HTTPS. ב בנוסף לסקריפט, רשימה אופציונלית של פרמטרים (זוגות של שמות וערך) וניתן לציין פסק זמן.

סוג פריט זה עשוי להיות שימושי בתרחישי איסוף נתונים הדורשים שלבים מרובים או היגיון מורכב. כדוגמה, פריט סקריפט יכול להיות מוגדר לבצע שיחת HTTP, ולאחר מכן לעבד את הנתונים שהתקבלו ב- שלב ראשון בדרך כלשהי, ולהעביר ערך שעבר טרנספורמציה ל-HTTP השני שִׂיחָה.

פריטי סקריפט מעובדים על ידי שרת Zabbix או משאלי פרוקסי.

תצורה

בשדה סוג של תצורת פריט טופס בחר Script ולאחר מכן מלא את חובה שדות.

script_item.png

כל שדות הקלט החובה מסומנים בכוכבית אדומה.

השדות הדורשים מידע ספציפי עבור פריטי סקריפט הם:

שדה תיאור
מפתח הזן מפתח ייחודי שישמש לזיהוי הפריט.
פרמטרים ציין את המשתנים שיועברו לסקריפט בתור צמדי התכונה והערכים.
פקודות מאקרו מובנות {HOST.CONN}, {HOST.DNS}, {HOST .HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} ו-פקודות מאקרו משתמש נתמכים.
Script הכנס קוד JavaScript בבלוק שמופיע בלחיצה בשדה הפרמטר (או בכפתור התצוגה/עריכה שלידו). קוד זה חייב לספק את ההיגיון להחזרת הערך המטרי.
לקוד יש גישה לכל הפרמטרים, הוא עשוי לבצע בקשות HTTP GET, POST, PUT ו-DELETE ויש לו שליטה על כותרות HTTP וגוף הבקשה.
ראה גם : אובייקטי JavaScript נוספים, מדריך JavaScript.
Timeout פסק זמן לביצוע JavaScript (1-60 שניות, ברירת מחדל 3s); חריגה ממנו תחזיר שגיאה.
נתמכות סיומות זמן, למשל. שנות ה-30, 1 מ'.
בהתאם לסקריפט, ייתכן שיחלוף זמן רב יותר עד שהפסקה יופעל.

דוגמאות

איסוף נתונים פשוט

אסוף את התוכן של https://www.example.com/release_notes:

  • צור פריט עם הסוג "Script".
  • בשדה סקריפט, הזן:
var request = new HttpRequest();
       return request.get("https://www.example.com/release_notes");
איסוף נתונים עם פרמטרים

השתמש במאקרו {HOST.CONN} כערך פרמטר וקבל תגובה עם מאקרו מורחב:

  • צור פריט עם הסוג "Script".
  • צור פרמטר:
    שם: מארח
    ערך: {HOST.CONN}
  • בשדה סקריפט, הזן:
var request = new HttpRequest();
       return request.post("https://postman-echo.com/post", JSON.parse(value));
בקשות HTTP מרובות

אסוף את התוכן של https://www.example.com וגם https://www.example.com/release_notes:

  • צור פריט עם הסוג "Script".
  • בשדה סקריפט, הזן:
var request = new HttpRequest();
       return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
רישום

הוסף את הערך "בדיקת יומן" ליומן השרת של Zabbix וקבל את הפריט ערך "1" בתמורה:

  • צור פריט עם הסוג "Script".
  • בשדה סקריפט, הזן:
Zabbix.log(3, 'בדיקת יומן');
       חזרה 1;