ניטור PostgreSQL באמצעות Zabbix

ניטור PostgreSQL באמצעות Zabbix
דיווח מאת דריה וילקובה עבור Zabbix Meetup Online

אני רוצה להציג בפניכם את הכלי PostgreSQL וכלי ניטור מערכת ההפעלה, שמפותח על ידי החברה שלנו באמצעות Zabbix.

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

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

מאמונסו

Mamonsu הוא סוכן פעיל (Zabbix Trapper) לניטור PostgreSQL ומערכת ההפעלה. Mamonsu (כתוב ב-Python) מאפשר לך להגדיר את הגדרות הניטור של PostgreSQL ומערכת ההפעלה תוך חמש דקות.

לממונסו יש כלים נוספים:

  • mamonsu tune היא פקודה שעורכת את ההגדרות בקובץ התצורה של PostgreSQL עבור המחשב שעליו מותקן סוכן Mamonsu.
  • mamonsu report הוא פקודה המייצרת תשובות על מערכת ההפעלה ו-PostgreSQL.

Mamonsu מותקן על שרת ה-DBMS, אוסף מידע, מרכיב אותו ל-JSON, ששולח אותו לשרת Zabbix להדמיה, שם צריכה להיות תבנית למדדים שלו.

ניטור PostgreSQL באמצעות Zabbix

תכנית עבודה של Mamonsu

כולל Mamonsu

  • עבודה יעילה עם PostgreSQL. חיבור מתמשך ל-PostgreSQL הוא היתרון העיקרי של Mamonsu. במקרה זה, המספר המרבי של חיבורים שווה למספר המקסימלי של מסדי נתונים שאליהם הוא מתחבר.
  • יכולת הרחבה. Mamonsu הוא סוכן "פלאגין" מלא, ובשל המבנה הקבוע של כל תוסף והפשטות היחסית של Python, אפשר בקלות ללמוד איך לכתוב חדשים או לערוך תוספים סטנדרטיים, כלומר פרמטרים של איסוף מדדים.
  • כיסוי רחב של מדדי ניטור עבור PotgreSQL כולל מדדים ספציפיים להרחבה.
  • שיגור מהיר, זמינות מחוץ לקופסה.
  • העלאת תבניות וקבצי תצורה, כמו גם העלאה לשרת Zabbix.
  • חוצה פלטפורמה, דבר שחשוב ללקוחות שלנו המשתמשים בהפצות שונות Linux, כולל מקומיים.
  • רישיון סעיף BSD.

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

  • 14 תוספים עבור PostgreSQL,
  • 8 תוספים למערכת הפעלה Linux,
  • 4 תוספים למערכת הפעלה Windows.

Mamonsu אוסף למעלה מ-110 מדדי PostgreSQL ומערכת הפעלה:

  • 70 מדדי PostgreSQL,
  • 40 מדדי מערכת הפעלה Linux,
  • 8 מדדי מערכת הפעלה Windows.

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

ניטור PostgreSQL באמצעות Zabbix

רשימה של מדדים זמינים ב-GitHub

הפעל את Mamonsu תוך 5 דקות

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

  1. התקנת Mamonsu. ניתן לבנות את Mamonsu ממקור או להשתמש בחבילות זמינות.

$ git clone ... && cd mamonsu && python setup.py

build && python setup.py install

  1. הגדרת חיבור. יש צורך להגדיר את פרמטרי החיבור עבור PostgreSQL ו- Zabbix Server בקובץ agent.conf.

/etc/mamonsu/agent.conf

  1. ייצוא תבנית לשרת Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. הוספת מארח לשרת Zabbix. התבנית המיוצאת תחובר אוטומטית למארח החדש בשרת Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. הפעלה.

$ service mamonsu start

כיווני פיתוח של Mamonsu

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

מודול ניטור PostgreSQL כחלק מ- Zabbix Agent 2

נהג מהיר ופופולרי משמש לחיבור ל-PostgreSQL PGX (דרייבר PG וערכת כלים עבור Go).

עד כה, אנו משתמשים בשני ממשקים: Exporter, שקורא למטפל באמצעות מפתח, ו-Configurator Zabbix Agent 2, שקורא ובודק את פרמטרי החיבור עם השרת המצוין בקובץ התצורה.

ניסינו לייעל את עבודת ה-DBMS על ידי קיבוץ מדדים ושימוש במטפל (מטפל) עבור מדדים וקבוצות מדדים, כמו גם שימוש בקבוצות של מדדים ב-JSON כמשתנים תלויים (פריטי תלות), וגילוי ברמה נמוכה (כללי גילוי ).

תכונות עיקריות

  • שמירה על חיבור מתמשך ל-PostgreSQL בין בדיקות;
  • תמיכה במרווחי סקרים גמישים;
  • תאימות עם גרסאות PostgreSQL החל מ-10 ו- Zabbix Server החל מגרסה 4.4;
  • היכולת לחבר ולנטר מספר מופעי PostgreSQL בו-זמנית בשל העובדה ש-Zabix Agent 2 מאפשר לך ליצור מספר הפעלות.

רמות פרמטר חיבור PostgreSQL

בסך הכל, ישנן שלוש רמות של פרמטרי חיבור PostgreSQL, כלומר משימות והגדרות:

  • גלוֹבָּלִי,
  • מושבים,
  • מאקרו.

  1. הפרמטרים הגלובליים מוגדרים ברמת הסוכן, הפרמטרים Session ו-Macro מגדירים את פרמטרי חיבור מסד הנתונים.

  2. פרמטרי חיבור ל-PostgreSQL - הפעלות מוגדרות בקובץ zabbix_agent2.conf.

ניטור PostgreSQL באמצעות Zabbix

אפשרויות חיבור PostgreSQL - הפעלות

  • אחרי מילת מפתח מפגשים מצוין שם הפעלה ייחודי, אותו יש לציין במפתח (תבנית).
  • פרמטרים URI и שם משתמש נדרש לכל מפגש.
  • אם שם הבסיס לא צוין, נעשה שימוש ברירת המחדל של שם הבסיס המשותף עבור כל הפעלות PostgreSQL, המוגדר גם בקובץ התצורה.

  1. פרמטרי חיבור ל-PostgreSQL - מאקרו מוגדרים במפתח המטרי בתבנית (בדומה לשיטה הנהוגה ב- Zabbix Agent 1), כלומר נוצרים בתבנית ולאחר מכן מצוינים כפרמטרים במפתח. במקרה זה, רצף פקודות המאקרו קבוע, כלומר, למשל, URI תמיד רשום ראשון.

ניטור PostgreSQL באמצעות Zabbix

פרמטרי חיבור PostgreSQL - מאקרו

מודול הניטור של PostgreSQL כבר כולל יותר מ-95 מדדים המאפשרים לך לכסות מגוון רחב למדי של פרמטרים של PostgreSQL, כולל:

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

מדדי PostgreSQL אינם אינפורמטיביים ללא פרמטרים של מערכת ההפעלה. אבל Zabbix Agent 2 כבר יודע לאסוף פרמטרים של מערכת ההפעלה, אז כדי לקבל את התמונה המלאה, אנחנו פשוט מחברים את התבניות הדרושות למארח.

מטפל

המטפל הוא היחידה הראשית של המודול בה מבוצעת הבקשה עצמה ואשר מאפשרת לקבל מדדים.

כדי לקבל מדד פשוט:

  1. צור קובץ כדי לקבל מדד חדש:

zabbix/src/go/plugins/postgres/handler_uptime.go

  1. אנו מחברים את החבילה ומציינים את המפתח (המפתחות) הייחודי של המדדים:

ניטור PostgreSQL באמצעות Zabbix

  1. אנו יוצרים מטפל (מטפל) עם בקשה, כלומר, אנו יוזמים משתנה שיכיל את התוצאה:

ניטור PostgreSQL באמצעות Zabbix

  1. אנו מבצעים את הבקשה:

ניטור PostgreSQL באמצעות Zabbix

יש צורך לבדוק את הבקשה לטעויות, ולאחר מכן התוצאה תיקלט על ידי תהליך Zabbix Agent 2.

  1. רשום את מפתח המדד החדש:

ניטור PostgreSQL באמצעות Zabbix

לאחר רישום המדד, תוכל לבנות מחדש את הסוכן עם המדד החדש.

המודול זמין החל מ- Zabbix 5.0 באתר https://www.zabbix.com/download. בגרסה זו של Zabbix, הפרמטרים מוגדרים בנפרד דרך המארח והיציאה. ב-Zabbix 5.0.2, שייצא בקרוב, פרמטרי החיבור ייארזו לתוך URI בודד.

תודה לך!

קישורים שימושיים

GitHub Mamonsu

תיעוד מאמונסו

Zabbix Git

מקור: www.habr.com

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster