
דיווח מאת דריה וילקובה עבור 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 להדמיה, שם צריכה להיות תבנית למדדים שלו.

תכנית עבודה של 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.

רשימה של מדדים זמינים ב-GitHub
הפעל את Mamonsu תוך 5 דקות
כדי להגדיר ניטור של PostgreSQL ומערכת ההפעלה באמצעות Mamonsu, אתה יכול לעשות זאת תוך 5 דקות על ידי ביצוע 5 שלבים פשוטים.
- התקנת Mamonsu. ניתן לבנות את Mamonsu ממקור או להשתמש בחבילות זמינות.
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- הגדרת חיבור. יש צורך להגדיר את פרמטרי החיבור עבור PostgreSQL ו- Zabbix Server בקובץ agent.conf.
/etc/mamonsu/agent.conf
- ייצוא תבנית לשרת Zabbix.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- הוספת מארח לשרת Zabbix. התבנית המיוצאת תחובר אוטומטית למארח החדש בשרת Zabbix.
$ mamonsu zabbix host create mamonsu-demo
- הפעלה.
$ service mamonsu start
כיווני פיתוח של Mamonsu
כחלק מהפיתוח של Mamonsu, אנו מתכננים לחדד את המדדים וליצור תוספים חדשים, כמו תוסף לניטור גודל של טבלאות בודדות. אנו גם מתכננים לשפר וליצור כלים נוספים, כמו גם להרחיב את יכולות הכוונון האוטומטי באמצעות הפקודה מנגינת mamonsu.
מודול ניטור PostgreSQL כחלק מ- Zabbix Agent 2
נהג מהיר ופופולרי משמש לחיבור ל-PostgreSQL (דרייבר PG וערכת כלים עבור Go).
עד כה, אנו משתמשים בשני ממשקים: Exporter, שקורא למטפל באמצעות מפתח, ו-Configurator Zabbix Agent 2, שקורא ובודק את פרמטרי החיבור עם השרת המצוין בקובץ התצורה.
ניסינו לייעל את עבודת ה-DBMS על ידי קיבוץ מדדים ושימוש במטפל (מטפל) עבור מדדים וקבוצות מדדים, כמו גם שימוש בקבוצות של מדדים ב-JSON כמשתנים תלויים (פריטי תלות), וגילוי ברמה נמוכה (כללי גילוי ).
תכונות עיקריות
- שמירה על חיבור מתמשך ל-PostgreSQL בין בדיקות;
- תמיכה במרווחי סקרים גמישים;
- תאימות עם גרסאות PostgreSQL החל מ-10 ו- Zabbix Server החל מגרסה 4.4;
- היכולת לחבר ולנטר מספר מופעי PostgreSQL בו-זמנית בשל העובדה ש-Zabix Agent 2 מאפשר לך ליצור מספר הפעלות.
רמות פרמטר חיבור PostgreSQL
בסך הכל, ישנן שלוש רמות של פרמטרי חיבור PostgreSQL, כלומר משימות והגדרות:
- גלוֹבָּלִי,
- מושבים,
- מאקרו.
הפרמטרים הגלובליים מוגדרים ברמת הסוכן, הפרמטרים Session ו-Macro מגדירים את פרמטרי חיבור מסד הנתונים.
פרמטרי חיבור ל-PostgreSQL - הפעלות מוגדרות בקובץ zabbix_agent2.conf.

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

פרמטרי חיבור PostgreSQL - מאקרו
מודול הניטור של PostgreSQL כבר כולל יותר מ-95 מדדים המאפשרים לך לכסות מגוון רחב למדי של פרמטרים של PostgreSQL, כולל:
- מספר חיבורים
- גודל מסד הנתונים,
- אחסון קבצי wal,
- מחסומים,
- מספר הטבלאות "הנפוחות",
- מצב שכפול,
- עיכוב העתק.
מדדי PostgreSQL אינם אינפורמטיביים ללא פרמטרים של מערכת ההפעלה. אבל Zabbix Agent 2 כבר יודע לאסוף פרמטרים של מערכת ההפעלה, אז כדי לקבל את התמונה המלאה, אנחנו פשוט מחברים את התבניות הדרושות למארח.
מטפל
המטפל הוא היחידה הראשית של המודול בה מבוצעת הבקשה עצמה ואשר מאפשרת לקבל מדדים.
כדי לקבל מדד פשוט:
- צור קובץ כדי לקבל מדד חדש:
zabbix/src/go/plugins/postgres/handler_uptime.go
- אנו מחברים את החבילה ומציינים את המפתח (המפתחות) הייחודי של המדדים:

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

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

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

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