This is a translation of the original English documentation page. Help us make it better.

2 פרטי עיבוד טרומי

סקירה כללית

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

עיבוד מקדים מנוהל על ידי תהליך מנהל עיבוד מקדים, שהיה נוסף ב- Zabbix 3.4, יחד עם עובדי עיבוד מקדים המבצעים את שלבי עיבוד מקדים. כל הערכים (עם או בלי עיבוד מקדים) מ אוספי נתונים שונים עוברים דרך מנהל העיבוד המקדים לפני כן מתווסף למטמון ההיסטוריה. נעשה שימוש בתקשורת IPC מבוססת שקעים בין אוספי נתונים (פולרים, לוכדים וכו') לבין העיבוד המקדים תהליך. שרת Zabbix או פרוקסי Zabbix (עבור פריטים המנוטרים על ידי ה-proxy) מבצע שלבי עיבוד מקדים.

עיבוד ערך פריט

כדי להמחיש את זרימת הנתונים ממקור הנתונים למסד הנתונים של Zabbix, אנו יכול להשתמש בתרשים הפשוט הבא:

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

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

פריט יכול לשנות את מצבו לא נתמך בזמן עיבוד מקדים מבוצע אם אחד משלבי העיבוד המקדים לְהִכָּשֵׁל.

  • נתוני היסטוריה ממטמון הנתונים המקומי של מנהל העיבוד המקדים נמצאים נשטף לתוך מטמון ההיסטוריה.
  • בשלב זה זרימת הנתונים נעצרת עד לסנכרון הבא של מטמון היסטוריה (כאשר תהליך סינכרון ההיסטוריה מבצע נתונים סִנכְּרוּן).
  • תהליך הסנכרון מתחיל עם נורמליזציה של נתונים אחסון נתונים במסד הנתונים של Zabbix. נורמליזציה של נתונים מבצעת המרות ל סוג הפריט הרצוי (סוג המוגדר בתצורת הפריט), כולל חיתוך של נתונים טקסטואליים על סמך גדלים מוגדרים מראש המותרים הסוגים האלה (HISTORY_STR_VALUE_LEN עבור מחרוזת, HISTORY_TEXT_VALUE_LEN עבור טקסט ו-HISTORY_LOG_VALUE_LEN עבור ערכי יומן). נתונים נשלחים למסד הנתונים של Zabbix לאחר מכן הנורמליזציה מתבצעת.

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

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

עיבוד מקדים של ערך פריט

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

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

  • נתוני פריט וערך פריט מועברים למנהל העיבוד המקדים באמצעות מנגנון IPC מבוסס שקע.
  • הפריט ממוקם בתור לעיבוד מקדים.

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

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

עיבוד ערך פריט מבוצע במספר שלבים (או שלבים) על ידי תהליכים מרובים. זה יכול לגרום ל:

  • פריט תלוי יכול לקבל ערכים, בעוד שהערך הראשי לא יכול. ניתן להשיג זאת באמצעות מקרה השימוש הבא:
    • לפריט מאסטר יש סוג ערך 'UINT', (ניתן להשתמש בפריט לוכד), לפריט תלוי יש סוג ערך 'TEXT'.
    • לא נדרשים שלבי עיבוד מקדים הן עבור המאסטר והן פריטים תלויים.
    • יש להעביר ערך טקסטואלי (כמו "abc") לפריט מאסטר.
    • מכיוון שאין שלבי עיבוד מקדים לביצוע, עיבוד מקדים המנהל בודק אם פריט המאסטר אינו במצב לא נתמך וכן אם הערך מוגדר (שניהם אמיתיים) ומציב פריט תלוי עם אותו ערך כמו פריט מאסטר (כיוון שאין עיבוד מקדים שלבים).
    • כאשר גם פריטים מאסטר וגם פריטים תלויים מגיעים להיסטוריה שלב הסנכרון, פריט מאסטר הופך לא נתמך, בגלל שגיאת המרת הערך (נתונים טקסטואליים לא יכולים להיות הומר למספר שלם ללא סימן).

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

  • פריט תלוי מקבל ערך שאינו קיים בפריט מאסטר הִיסטוֹרִיָה. מקרה השימוש דומה מאוד לקודמו, למעט עבור סוג פריט המאסטר. לדוגמה, אם סוג CHAR משמש עבור פריט מאסטר, אז ערך פריט מאסטר יקוצץ בהיסטוריה שלב הסנכרון, בעוד פריטים תלויים יקבלו את שלהם ערך מהערך הראשוני (לא קטוע) של פריט מאסטר.

תור לעיבוד מוקדם

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

  • פריטים פנימיים נמצאים בתור בתחילת התור
  • פריטים תלויים תמיד נמצאים בתור אחרי פריט האב

כדי לדמיין את ההיגיון של תור עיבוד מקדים, נוכל להשתמש בדברים הבאים תרשים:

ערכים מתור העיבוד המקדים נמחקים מתחילתו של התור לערך הראשון שלא מעובד. אז, למשל, עיבוד מקדים המנהל יסיר את הערכים 1, 2 ו-3, אך לא יסיר את הערך 5 כ ערך 4 עדיין לא מעובד:

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

עובדי עיבוד מקדים

קובץ תצורת שרת Zabbix מאפשר למשתמשים להגדיר ספירה של תהליכי עיבוד מוקדם של עובדים. התחל תצורת Preprocessors יש להשתמש בפרמטר כדי להגדיר את מספר המופעים המחולקים מראש של עובדי עיבוד מקדים. מספר אופטימלי של עובדי עיבוד מקדים יכול להיות נקבע על ידי גורמים רבים, כולל ספירת ה"ניתנים לעיבוד מוקדם" פריטים (פריטים שדורשים לבצע כל שלבי עיבוד מקדים), ספירה של תהליכי איסוף נתונים, ספירת צעדים ממוצעת לעיבוד מקדים של פריט, וכו '

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

::: הערה אזהרה יותר מדי תהליכי איסוף נתונים (סוקרים, סקרים בלתי ניתנים להשגה, משאלי ODBC, משאלי HTTP, משאלי Java, פינגרים, לוכדים, proxypollers) יחד עם מנהל IPMI, לוכד SNMP ועיבוד מקדים עובדים יכולים למצות את מגבלת מתאר הקובץ לכל תהליך עבור מנהל עיבוד מקדים. זה יגרום לשרת Zabbix להפסיק (בדרך כלל זמן קצר לאחר ההתחלה, אבל לפעמים זה יכול לקחת יותר זמן). ה יש לשנות את קובץ התצורה או להעלות את המגבלה להימנע ממצב זה. :::