פונקציות מאקרו מציעות את היכולת להתאים אישית ערכי מאקרו.
לפעמים מאקרו עשוי לפתור ערך שלא בהכרח קל לעבוד עם. זה עשוי להיות ארוך או להכיל תת-מחרוזת עניין ספציפית שתרצה לחלץ. זה המקום שבו יכולות להיות פונקציות מאקרו מוֹעִיל.
התחביר של פונקציית מאקרו הוא:
איפה:
"
או מכילים )
, ,
.לדוגמה:
{{TIME}.fmttime(format,time_shift)}
{{ITEM.VALUE}.regsub(pattern, output)}
{{#LLDMACRO}.regsub(pattern, output)}
|FUNCTION|<|<|<| |-|---------------------|------------------------|----- ---------------| |<|תיאור|פרמטרים|נתמכים עבור| |fmtnum (<ספרות>)|<|<|<| |<|עיצוב מספר לשליטה במספר הספרות המודפסות אחרי הנקודה העשרונית.|ספרות - מספר הספרות אחרי הנקודה העשרונית. לא יופקו אפסים עוקבים.|{ITEM.VALUE}
{ITEM.LASTVALUE}
פקודות מאקרו של ביטוי| |fmttime (<format>,<time_shift>)|<|<|<| |<|עיצוב זמן.|פורמט - מחרוזת פורמט חובה, תואמת לעיצוב פונקציות strftime
time_shift - משמרת הזמן שהוחלה על הזמן שלפני העיצוב; צריך להתחיל ב-<N><time_unit>
או +<N><time_unit>
, כאשר
N - מספר יחידות הזמן שיש להוסיף או להחסיר;
*time _unit* - h (שעה), d (יום), w (שבוע), M (חודש) או y (שנה).
מאז Zabbix 5.4, פרמטר time_shift תומך בפעולות זמן רב-שלביות ועשוי לכלול / <time_unit>
למעבר לתחילת יחידת הזמן (/d
- חצות, /w
- היום הראשון בשבוע (שני), /M
- היום הראשון של החודש וכו'). דוגמאות:-1w
- בדיוק 7 ימים אחורה;-1w/w
- יום שני בשבוע הקודם;-1w/w+1d
- יום שלישי בשבוע הקודם.< br>שימו לב, שפעולות הזמן מחושבות משמאל לימין ללא סדרי עדיפויות. לדוגמה, -1M/d+1h/w
ינותח בתור ((-1M/d)+1h)/w
.|{TIME}| |iregsub (<pattern>,<output>)|<|<|<| |<|חילוץ מחרוזת משנה על ידי התאמה של ביטוי רגולרי (לא תלוי רישיות).|דפוס - הביטוי הרגולרי שיתאים
פלט - אפשרויות הפלט. \1 - \9 מצייני מיקום נתמכים כדי ללכוד קבוצות. \0 מחזירה את הטקסט המותאם.|{ITEM.VALUE}
{ITEM.LASTVALUE}
פקודות מאקרו גילוי ברמה נמוכה (למעט במצב נמוך מסנן כלל גילוי ברמה)| |regsub (<pattern>,<output>)|<|<|<| |<|חילוץ מחרוזת משנה על ידי התאמה של ביטוי רגולרי (תלוי רישיות).|דפוס - הביטוי הרגולרי שיתאים
פלט - אפשרויות הפלט. \1 - \9 מצייני מיקום נתמכים כדי ללכוד קבוצות. \0 מחזירה את הטקסט המותאם.|{ITEM.VALUE}
{ITEM.LASTVALUE}
פקודות מאקרו גילוי ברמה נמוכה (למעט במצב נמוך מסנן כלל גילוי ברמה)|
אם נעשה שימוש בפונקציה ב-נתמך מיקום, אך הוחל על מאקרו שאינו תומך בפונקציות מאקרו, ואז המאקרו מעריך ל 'לא ידוע'.
אם התבנית אינה ביטוי רגולרי נכון, המאקרו מוערך ל'UNKNOWN' (לא כולל פקודות מאקרו גילוי ברמה נמוכה שבהן הפונקציה יתעלם במקרה זה והמאקרו יישאר לא מורחב)
אם פונקציית מאקרו מוחלת על המאקרו במיקומים שאינם תומכים פונקציות מאקרו אז מתעלמים מהפונקציה.
הדרכים שבהן ניתן להשתמש בפונקציות מאקרו כדי להתאים אישית ערכי מאקרו מודגם בדוגמאות הבאות על ערכים שהתקבלו:
ערך שהתקבל | מאקרו | פלט |
---|---|---|
24.3413523 |
{{ITEM.VALUE}.fmtnum(2)} |
24.34 |
24.3413523 |
{{ITEM.VALUE}.fmtnum(0)} |
24 |
12:36:01 |
{{TIME}.fmttime(%B)} |
אוקטובר |
12:36:01 |
{{TIME}.fmttime(%d %B,-1M/M)} |
1 בספטמבר |
123Log line |
{{ITEM.VALUE}.regsub(^[0-9]+, בעיה)} |
בעיה |
123 שורת יומן |
{{ITEM.VALUE}.regsub("^([0-9]+)", "בעיה")} |
בעיה |
123 שורת יומן |
{{ITEM.VALUE}.regsub("^([0-9]+)", מזהה בעיה: \1)} |
מזהה בעיה: 123 |
Log line |
{{ITEM.VALUE}.regsub(".*", "מזהה בעיה: \1")} |
''מזהה בעיה: '' |
MySQL קרס שגיאה 123 |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " מזהה בעיה: \1_\2 ")} |
'' מזהה בעיה: MySQL_123 '' |
123 שורת יומן |
{{ITEM.VALUE}.regsub("([1-9]+", "מזהה בעיה: \1")} |
*UNKNOWN* (ביטוי רגולרי לא חוקי) |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
customername |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
1 |
customername_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
{{#IFALIAS}.regsub("(.*)_ ([0-9]+", \1)} (ביטוי רגולרי לא חוקי) |
customername_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
{$MACRO: "שם לקוח"} |
customername_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
{$MACRO: "1"} |
customername_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
{$MACRO:" {{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (ביטוי רגולרי לא חוקי) |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
"{$MACRO:\"שם לקוח\"}" |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
"{$MACRO:\"1\"}") |
customername_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (ביטוי רגולרי לא חוקי) |
ערכים ארוכים של פקודות מאקרו {ITEM.VALUE} ו-{ITEM.LASTVALUE} שנפתרו עבור פריטי טקסט/יומן נחתכים ל-20 תווים במיקומי ממשק קצה מסוימים. כדי לראות את הערכים המלאים של פקודות מאקרו אלו, תוכל להשתמש בפונקציות מאקרו, למשל:
{{ITEM.VALUE}.regsub("(.*)", \1)}
{{ITEM.LASTVALUE}.regsub("(.*)", \1)}
ראה גם: {ITEM.VALUE} ו-{ITEM.LASTVALUE} פרטי מאקרו.