17 בדיקות Prometheus

סקירה כללית

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

נדרשים שני שלבים כדי להתחיל באיסוף נתוני פרומתאוס:

  • פריט מאסטר HTTP המצביע לנקודת הקצה המתאימה של הנתונים, למשל. https://<prometheus host>/metrics
  • פריטים תלויים באמצעות אפשרות עיבוד מקדים של Prometheus לשאילתה הנתונים הנדרשים מהמדדים שנאספו על ידי פריט המאסטר

ישנן שתי אפשרויות עיבוד מקדים של נתוני פרומתאוס:

  • דפוס פרומתאוס - משמש בפריטים רגילים לשאילתות על נתוני פרומתאוס
  • Prometheus ל-JSON - משמש בפריטים רגילים ולרמה נמוכה תַגלִית. במקרה זה, נתוני פרומתאוס מוחזרים ב-a פורמט JSON.
עיבוד בכמות גדולה

עיבוד בכמות גדולה נתמך עבור פריטים תלויים. כדי לאפשר אחסון במטמון ואינדקס, העיבוד המקדים של תבנית פרומתאוס חייב להיות שלב העיבוד המקדים הראשון. כאשר דפוס פרומתאוס הוא שלב העיבוד המקדים הראשון אז הפרומתאוס המנתח הנתונים מאוחסנים במטמון ומוסיפים לאינדקס על ידי התנאי <label>==<value> הראשון ב- דפוס פרומתאוס שלב עיבוד מקדים. מטמון זה נעשה שימוש חוזר בעת עיבוד פריטים תלויים אחרים באצווה זו. לביצועים מיטביים, התווית הראשונה צריך להיות זה עם הכי הרבה ערכים שונים.

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

תצורה

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

  • הזן פרמטרים כלליים של פריט תלוי בטופס התצורה
  • עבור ללשונית עיבוד מקדים
  • בחר אפשרות עיבוד מקדים של פרומתאוס (תבנית פרומתאוס או פרומתאוס ל-JSON)

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

פרמטר תיאור דוגמאות
דפוס כדי להגדיר את דפוס הנתונים הנדרש, תוכל להשתמש בשפת שאילתה הדומה לשפת השאילתה של פרומתאוס (ראה טבלת השוואה), למשל:
<metric name> - בחר לפי שם המדד
{__name__="<שם המדד>"} - בחר לפי שם המדד
{__name__=~"<regex>"} - בחר לפי שם מדד התואם לביטוי רגולרי
{<label name>="<label value>",...} - בחר לפי שם תווית
{<label name>=~"<regex>" ,...} - בחר לפי שם תווית התואם לביטוי רגולרי
{__name__=~".*"}==<value> - בחר לפי ערך מטרי
או שילוב של האמור לעיל:
<metric name>{<label1 name>="<label1 value>",<label2 name>=~"<regex>",...}==<value>

ערך התווית יכול להיות כל רצף של תווי UTF-8, אך יש להזין את התווים האחוריים, המירכאות הכפולות והזנת השורה בתור \\, \" ו-\n בהתאמה; תווים אחרים יהיו לא ניתן לברוח.
wmi_os_physical_memory_free_bytes
cpu_usage_system{cpu="cpu-total"}
cpu_usage_system{cpu= ~".*"}
cpu_usage_system{cpu="cpu-total",host=~".*"}
wmi_service_state{name=" dhcp"}==1
wmi_os_timezone{timezone=~".*"}==1
עיבוד תוצאות ציין אם להחזיר את הערך, את התווית או להחיל את הפונקציה המתאימה (אם התבנית תואמת למספר שורות ויש לצבור את התוצאה):
ערך - החזר ערך מטרי (שגיאה אם מספר שורות תואמו)
תווית - ערך החזרה של התווית שצוינה בשדה תווית (שגיאה אם מספר מדדים מתאימים)
סכום - החזרת סכום הערכים<br >דקה - החזר את הערך המינימלי
מקסימום - החזר את הערך המקסימלי
ממוצע - החזר את הערך הממוצע
ספירה - החזר את הספירה של ערכים
שדה זה זמין רק עבור האפשרות תבנית פרומתאוס.
ראה גם דוגמאות לשימוש בפרמטרים למטה.
פלט הגדר שם תווית (אופציונלי). במקרה זה מוחזר הערך המתאים לשם התווית.
שדה זה זמין רק עבור האפשרות תבנית פרומתאוס, אם 'תווית' נבחרה בשדה עיבוד תוצאות.

דוגמאות לשימוש בפרמטרים

  1. מקרה השימוש הנפוץ ביותר הוא החזרת הערך. לחזור הערך של /var/db מ:

node_disk_usage_bytes{path="/var/cache"} 2.1766144e+09
node_disk_usage_bytes{path="/var/db"} 20480
node_disk_usage_bytes{path="/var/dpkg"} 8192
node_disk_usage_bytes{path="/var/empty"} 4096

השתמש בפרמטרים הבאים:

  • דפוס - node_disk_usage_bytes{path="/var/db"}
  • עיבוד תוצאות - בחר 'ערך'
  1. אולי יעניין אותך גם בערך הממוצע של כולם פרמטרים של node_disk_usage_bytes:
  • דפוס - node_disk_usage_bytes
  • עיבוד תוצאות - בחר 'ממוצע'
  1. בעוד פרומתאוס תומך רק בנתונים מספריים, פופולרי להשתמש ב-a פתרון עוקף המאפשר להחזיר גם את התיאור הטקסטואלי הרלוונטי. ניתן להשיג זאת באמצעות מסנן וציון התווית. אז, ל להחזיר את הערך של תווית 'צבע' מ

elasticsearch_cluster_health_status{cluster="elasticsearch",color="green"} 1
elasticsearch_cluster_health_status{cluster="elasticsearch",color="red"} 0
elasticsearch_cluster_health_status{cluster="elasticsearch",color="yellow"} 0

השתמש בפרמטרים הבאים:

  • דפוס - elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
  • עיבוד תוצאות - בחר 'תווית'
  • תווית - ציין 'צבע'

המסנן (מבוסס על הערך המספרי '1') יתאים לשורה המתאימה, בעוד שהתווית תתאים להחזיר את תיאור המצב הבריאותי (כרגע 'ירוק'; אך ייתכן גם 'אדום' או 'צהוב').

פרומתאוס ל-JSON

ניתן להשתמש בנתונים מ-Prometheus לגילוי ברמה נמוכה. במקרה הזה יש צורך בנתונים בפורמט JSON וב-Prometheus ל-JSON אפשרות עיבוד מקדים תחזיר בדיוק את זה.

לפרטים נוספים, ראה גילוי באמצעות פרומתאוס data.

השוואת שפות שאילתה

הטבלה הבאה מפרטת את ההבדלים והדמיון בין PromQL ושפת שאילתות לעיבוד מקדים של Zabbix Prometheus.

בורר וקטור מיידי של PromQL עיבוד מקדים של Zabbix Prometheus
הבדלים
יעד שאילתה שרת פרומתאוס טקסט רגיל בפורמט תערוכת פרומתאוס
מחזירה וקטור מיידי ערך מדד או תווית (תבנית Prometheus)
מערך של מדדים עבור ערך בודד ב-JSON (Prometheus ל-JSON)
אופרטורים תואמים תווית =, !=, =~, !~ =, !=, = ~, !~
ביטוי רגולרי בשימוש בהתאמת שם תווית או מדד RE2 PCRE
אופרטורים להשוואה ראה רשימה רק == (שווה) נתמך לסינון ערכים
דמיון
בחירה לפי שם המדד השווה למחרוזת <שם המדד> או {__name__="<שם המדד>"} <שם המדד> או {__name__="<metric שם>"}
בחירה לפי שם מדד התואם לביטוי רגולרי {__name__=~"<regex>"} {__name__=~"<regex>"}
בחירה לפי ערך <תווית> השווה למחרוזת {<שם תווית>="<ערך תווית>",...} {<שם תווית>="<ערך תווית>",...}
בחירה לפי ערך <שם תווית> התואם לביטוי רגולרי {<שם תווית>=~"<regex>",...} {<שם תווית>=~"<regex>",...}
בחירה לפי ערך השווה למחרוזת {__name__=~".*"} == <ערך> {__name__=~".*"} == <ערך>