3 פקודות מאקרו של משתמש עם הקשר

סקירה כללית

ניתן להשתמש בהקשר אופציונלי ב-משתמש פקודות מאקרו, המאפשרות לעקוף את ערך ברירת מחדל עם ערך ספציפי להקשר.

ההקשר מצורף לשם המאקרו; התחביר תלוי אם ההקשר הוא ערך טקסט סטטי:

 {$MACRO:"טקסט סטטי"}

או ביטוי רגולרי:

 {$MACRO:regex:"ביטוי רגולרי"}

שים לב שניתן להגדיר מאקרו עם הקשר ביטוי רגולרי רק ב תצורת מאקרו משתמש. אם הקידומת regex: משמשת במקום אחר בשם ההקשר של מאקרו משתמש, כמו בביטוי טריגר, הוא יטופל כאל הקשר סטטי.

ציטוט בהקשר הוא אופציונלי (ראה גם חשוב הערות).

דוגמאות להקשר מאקרו:

דוגמה תיאור
{$LOW_SPACE_LIMIT} מאקרו משתמש ללא הקשר.
{$LOW_SPACE_LIMIT:/tmp} מאקרו משתמש עם הקשר (מחרוזת סטטית).
{$LOW_SPACE_LIMIT:regex:"^/tmp$"} מאקרו משתמש עם הקשר (ביטוי רגולרי). זהה ל-{$LOW_SPACE_LIMIT:/tmp}.
{$LOW_SPACE_LIMIT:regex:"^/var/log/.*$"} מאקרו משתמש עם הקשר (ביטוי רגולרי). מתאים לכל המחרוזות עם קידומת /var/log/.

מקרי שימוש

ניתן להגדיר פקודות מאקרו משתמש עם הקשר כדי להשיג גמישות יותר סף בביטויי טריגר (בהתבסס על הערכים שאוחזרו על ידי גילוי ברמה נמוכה). לדוגמה, תוכל להגדיר את פקודות המאקרו הבאות:

  • {$LOW_SPACE_LIMIT} = 10
  • {$LOW_SPACE_LIMIT:/home} = 20
  • {$LOW_SPACE_LIMIT:regex:"^\/[a-z]+$"} = 30

אז מאקרו גילוי ברמה נמוכה עשוי לשמש כהקשר מאקרו ב-a מפעיל אב טיפוס לגילוי מערכת קבצים רכוב:

 last(/host/vfs.fs.size[{#FSNAME},pfree])<{$LOW_SPACE_LIMIT:"{#FSNAME}"}

לאחר הגילוי יחולו ספים שונים של שטח נמוך מפעילים בהתאם לנקודות ההרכבה שהתגלו או לסוגי מערכת הקבצים. אירועי בעיה ייווצרו אם:

  • לתיקיית /home יש פחות מ-20% משטח דיסק פנוי
  • יש לתיקיות התואמות את דפוס ה-Regexp (כמו /etc, /tmp או /var). פחות מ-30% משטח הדיסק הפנוי
  • יש לתיקיות שאינן תואמות לתבנית הביטוי הרגולרית והן לא /home פחות מ-10% משטח דיסק פנוי

הערות חשובות

  • אם קיים יותר ממאקרו משתמש אחד עם הקשר, Zabbix תנסה לעשות זאת התאם תחילה את פקודות המאקרו ההקשר הפשוטות ולאחר מכן את פקודות המאקרו ההקשריות ביטויים רגולריים בסדר לא מוגדר.

::: הערה אזהרה אל תיצור פקודות מאקרו שונות בהקשר התואמות את אותה מחרוזת כדי למנוע התנהגות לא מוגדרת. :::

  • אם מאקרו עם ההקשר שלו לא נמצא במארח, תבניות מקושרות או באופן גלובלי, אז מחפשים את המאקרו ללא הקשר.
  • רק פקודות מאקרו גילוי ברמה נמוכה נתמכות בהקשר. כל מתעלמים מפקודות מאקרו אחרות ומתייחסות אליהם כאל טקסט רגיל.

מבחינה טכנית, הקשר מאקרו מצוין באמצעות כללים הדומים ל-item key פרמטרים, למעט ההקשר של המאקרו הוא לא מנותח כמספר פרמטרים אם יש תו ,:

  • יש לצטט את ההקשר של המאקרו עם " אם ההקשר מכיל } תו או מתחיל בתו ". מרכאות בתוך המירכאות יש לבצע escape של ההקשר עם התו \.
  • הדמות \ עצמה אינה בריחה, מה שאומר שזה בלתי אפשרי לקבל הקשר מצוטט המסתיים בתו '' - המאקרו {$MACRO:"a:\b\c\"} אינו חוקי.
  • מתעלמים מהחללים המובילים בהקשר, מהחללים הנגררים לֹא:
    • לדוגמה {$MACRO:A} זהה ל-{$MACRO: A}, אבל לא {$MACRO:A }.
  • כל הרווחים לפני הצעות מחיר מובילות ואחרי הצעות מחיר נגררות התעלמו ממנו, אבל כל הרווחים בתוך המרכאות אינם:
    • פקודות מאקרו {$MACRO:"A"}, {$MACRO: "A"}, {$MACRO:"A" } ו-{$MACRO: "A" } זהים, אבל פקודות המאקרו {$MACRO:"A"} ו-{$MACRO:" A "} לא.

פקודות המאקרו הבאות כולן שוות ערך, מכיוון שיש להן אותו דבר הקשר: {$MACRO:A}, {$MACRO: A} ו-{$MACRO:"A"}. זה בניגוד עם מפתחות פריט, כאשר 'key[a]', 'key[ a]' ו-'key["a"]' הם זהה מבחינה סמנטית, אבל שונה למטרות ייחודיות.