ניטור ODBC מתאים לסוג הפריט מסד נתונים ב- חזית Zabbix.
ODBC הוא ממשק API של שפת תכנות C לגישה למסד נתונים מערכות ניהול (DBMS). קונספט ODBC פותח על ידי מיקרוסופט ומאוחר יותר הועברו לפלטפורמות אחרות.
Zabbix רשאית לבצע שאילתות בכל מסד נתונים, הנתמך על ידי ODBC. לעשות את זה, Zabbix לא מתחבר ישירות לבסיסי הנתונים, אלא משתמש ב-ODBC ממשק ומנהלי התקנים שהוגדרו ב-ODBC. פונקציה זו מאפשרת יותר ניטור יעיל של מסדי נתונים שונים למטרות מרובות - עבור לדוגמה, בדיקת תורים ספציפיים של מסד נתונים, סטטיסטיקות שימוש וכן הלאה. Zabbix תומך ב-unixODBC, שהוא אחד הפתוחים הנפוצים ביותר יישומי מקור ODBC API.
::: שימו לב חשוב ראה גם את ידוע issues עבור ODBC המחאות. :::
הדרך המוצעת להתקנת unixODBC היא להשתמש בהפעלה של לינוקס מאגרי חבילות ברירת המחדל של המערכת. בלינוקס הפופולרי ביותר הפצות unixODBC כלולה במאגר החבילות כברירת מחדל. אם זה לא זמין, ניתן להשיגו בדף הבית של unixODBC: http://www.unixodbc.org/download.html.
התקנת unixODBC על מערכות מבוססות RedHat/Fedora באמצעות יאם מנהל אריזה:
התקנת unixODBC על מערכות מבוססות SUSE באמצעות חבילת zypper מנהל:
יש צורך בחבילת unixODBC-devel כדי להדר את Zabbix תמיכה ב-unixODBC.
יש להתקין מנהל מסד נתונים של unixODBC עבור מסד הנתונים, אשר יהיה במעקב. ל-unixODBC יש רשימה של מסדי נתונים נתמכים ו מנהלי התקנים: http://www.unixodbc.org/drivers.html. בכמה לינוקס מנהלי התקנים של מסד הנתונים של הפצות כלולים במאגרי החבילות. התקנת מנהל התקן מסד נתונים MySQL על מערכות מבוססות RedHat/Fedora באמצעות מנהל החבילות יאם:
התקנת מנהל התקן מסד הנתונים של MySQL במערכות מבוססות SUSE באמצעות זיפר מנהל חבילות:
תצורת ODBC נעשית על ידי עריכת ה-odbcinst.ini ו קבצי odbc.ini. כדי לאמת את מיקום קובץ התצורה, הקלד:
odbcinst.ini משמש לרשימת מנהלי ההתקן של מסד הנתונים של ODBC המותקנים:
פרטי פרמטר:
תכונה | תיאור |
---|---|
mysql | שם מנהל ההתקן של מסד הנתונים. |
תיאור | תיאור מנהל ההתקן של מסד הנתונים. |
מנהל התקן | מיקום ספריית מנהלי ההתקן של מסד הנתונים. |
odbc.ini משמש להגדרת מקורות נתונים:
[מִבְחָן]
תיאור = מסד נתונים של בדיקות MySQL
דרייבר = mysql
שרת = 127.0.0.1
משתמש = שורש
סיסמה =
יציאה = 3306
מסד נתונים = zabbix
פרטי פרמטר:
תכונה | תיאור |
---|---|
test | שם מקור הנתונים (DSN). |
תיאור | תיאור מקור הנתונים. |
מנהל התקן | שם מנהל ההתקן של מסד הנתונים - כפי שצוין ב-odbcinst.ini |
שרת | שרת מסד נתונים IP/DNS. |
משתמש | משתמש במסד נתונים לחיבור. |
סיסמה | סיסמת משתמש למסד נתונים. |
יציאה | יציאת חיבור למסד נתונים. |
מסד נתונים | שם מסד נתונים. |
כדי לוודא אם חיבור ODBC פועל בהצלחה, חיבור אל יש לבדוק את מסד הנתונים. ניתן לעשות זאת עם כלי השירות isql (כלול בחבילת unixODBC):
shell> test isql
+----------------------------------------------+
| מְחוּבָּר! |
| |
| sql-statement |
| עזרה [שם שולחן] |
| עזוב |
| |
+----------------------------------------------+
SQL>
כדי לאפשר תמיכה ב-ODBC, יש להרכיב את Zabbix עם הפריטים הבאים דֶגֶל:
ראה עוד על התקנת Zabbix מה-מקור code.
הגדר ניטור מסד נתונים item.
כל שדות הקלט החובה מסומנים בכוכבית אדומה.
במיוחד עבור פריטי ניטור מסד נתונים עליך להזין:
סוג | בחר כאן צג מסד נתונים. |
Key | הזן אחד משני מפתחות הפריט הנתמכים: db.odbc.select[<תיאור קצר ייחודי>,<dsn>,<מחרוזת חיבור>] - פריט זה נועד כדי החזר ערך אחד, כלומר העמודה הראשונה בשורה הראשונה של תוצאת שאילתת SQL. אם שאילתה מחזירה יותר מעמודה אחת, רק העמודה הראשונה נקראת. אם שאילתה מחזירה יותר משורה אחת, רק השורה הראשונה נקראת. db.odbc.get[<תיאור קצר ייחודי>,<dsn>,<מחרוזת חיבור>] - פריט זה הוא מסוגל להחזיר מספר שורות/עמודות בפורמט JSON. לפיכך הוא עשוי לשמש כפריט מאסטר שאוסף את כל הנתונים בקריאת מערכת אחת, בעוד שניתן להשתמש בעיבוד מקדים של JSONPath בפריטים תלויים כדי לחלץ ערכים בודדים. למידע נוסף, ראה example של הפורמט המוחזר, המשמש לגילוי ברמה נמוכה. פריט זה נתמך מאז Zabbix 4.4. התיאור הייחודי ישמש לזיהוי הפריט בטריגרים וכו'. למרות ש'dsn' ו'מחרוזת חיבור' הם פרמטרים אופציונליים, לפחות אחד מהם צריך להיות קיים. אם מוגדרים גם שם מקור הנתונים (DSN) וגם מחרוזת החיבור, ה-DSN יתעלם. שם מקור הנתונים, אם נעשה בו שימוש, חייב להיות מוגדר כמצוין ב-odbc.ini. מחרוזת החיבור עשויה להכיל מנהל התקן ארגומנטים ספציפיים. דוגמה (חיבור עבור מנהל התקן ODBC של MySQL 5): => db.odbc.get[דוגמה של MySQL,,"Driver=/usr/local/lib/libmyodbc5a.so; Database=master;Server=127.0.0.1;Port=3306"] |
שם משתמש | הזן את שם המשתמש של מסד הנתונים פרמטר זה הוא אופציונלי אם המשתמש צוין ב-odbc.ini. אם נעשה שימוש במחרוזת חיבור, והשדה שם משתמש אינו ריק, הוא מצורף ל- מחרוזת החיבור בתור UID=<user> |
סיסמה | הזן את סיסמת המשתמש של מסד הנתונים פרמטר זה הוא אופציונלי אם הסיסמה צוינה ב-odbc.ini. אם נעשה שימוש במחרוזת חיבור, והשדה סיסמה אינו ריק, הוא מצורף לחיבור מחרוזת בתור PWD=<סיסמה> .אם סיסמה מכילה נקודה-פסיק, היא צריכה להיות עטופה בסוגריים מסולסלים, לדוגמה: סיסמה: {P?;)*word} (אם היא אמיתית הסיסמה היא P?;)*word ) הסיסמה תצורף למחרוזת החיבור אחרי שם המשתמש בתור: UID=<username>;PWD={P?;)*word} כדי לבדוק את המחרוזת שהתקבלה, הרץ: isql -v -k 'Driver=libmaodbc.so;Database=zabbix;UID=zabbix;PWD={P?;)*word}' |
שאילתת SQL | הזן את שאילתת SQL. שים לב שעם הפריט db.odbc.select[] השאילתה חייבת להחזיר ערך אחד בלבד. |
סוג המידע | חשוב לדעת איזה סוג מידע יוחזר על ידי השאילתה, כדי שיבחר נכון כאן. עם סוג מידע שגוי הפריט יהפוך ללא נתמך. |
בחר...
. תחביר השאילתה יהיה תלוי ב-RDBMS אשר יהיה לעבד אותם. תחביר הבקשה להליך אחסון חייב להיות התחיל עם מילת המפתח 'התקשר'.הודעות שגיאה ODBC מובנות בשדות כדי לספק פרטים מֵידָע. לדוגמה:
לא ניתן לבצע שאילתת ODBC: [SQL_ERROR]:[42601][7][ERROR: שגיאת תחביר ב";" או ליד; שגיאה בעת ביצוע השאילתה]
└──יתוח O ──────────────┘
│ │ │ └─ קוד שגיאה מקורי └─ הודעת שגיאה מקורית
│ │ └─ SQLState
└─ הודעת Zabbix └─ קוד החזרה של ODBC
שים לב שאורך הודעת השגיאה מוגבל ל-2048 בתים, כך שה ניתן לקצץ את ההודעה. אם יש יותר מאבחון ODBC אחד record Zabbix מנסה לשרשר אותם (מופרדים עם |
) עד כמה מגבלת האורך מאפשרת.