אמנם אתה עשוי למצוא את מספר האינדקס הנדרש (לדוגמה, של רשת ממשק) בין SNMP OIDs, לפעמים אתה לא יכול לסמוך לחלוטין מספר האינדקס נשאר תמיד זהה.
מספרי אינדקס עשויים להיות דינמיים - הם עשויים להשתנות עם הזמן והפריט שלך עלול להפסיק לעבוד כתוצאה מכך.
כדי להימנע מתרחיש זה, ניתן להגדיר OID אשר לוקח בחשבון התחשב באפשרות של שינוי מספר אינדקס.
לדוגמה, אם אתה צריך לאחזר את ערך האינדקס להוספה ifInOctets שמתאים לממשק GigabitEthernet0/1 במכשיר Cisco, השתמש ב-OID הבא:
נעשה שימוש בתחביר מיוחד עבור OID:
<OID of data>["index","<base OID of index>","<string לחפש>"]
פרמטר | תיאור |
---|---|
OID של נתונים | OID ראשי לשימוש עבור אחזור נתונים על הפריט. |
index | שיטת עיבוד. כרגע נתמכת שיטה אחת: אינדקס - חפש אינדקס וצרף אותו לנתונים OID |
base OID of index | OID זה ייבדק כדי לקבל את ערך האינדקס המתאים למחרוזת. |
string to search for | מחרוזת לשימוש עבור התאמה מדויקת עם ערך בעת ביצוע חיפוש. רגיש לאותיות גדולות. |
קבלת שימוש בזיכרון בתהליך apache.
אם אתה משתמש בתחביר OID זה:
מספר האינדקס ייבדק כאן:
...
HOST-RESOURCES-MIB::hrSWRunPath.5376 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5377 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5388 = STRING: "/usr/sbin/apache2"
HOST-RESOURCES-MIB::hrSWRunPath.5389 = STRING: "/sbin/sshd"
...
עכשיו יש לנו את האינדקס, 5388. האינדקס יצורף ל-OID הנתונים על מנת לקבל את הערך בו אנו מעוניינים:
כאשר מתבקש פריט אינדקס דינמי, Zabbix מאחזר ומטמון טבלת SNMP שלמה תחת OID בסיס לאינדקס, גם אם תהיה התאמה נמצא מוקדם יותר. זה נעשה במקרה של פריט אחר שיתייחס לאותו הדבר base OID מאוחר יותר - Zabbix יחפש אינדקס במטמון, במקום שואל שוב את המארח המנוטר. שימו לב שכל תהליך משאל משתמש מטמון נפרד.
בכל פעולות אחזור הערכים הבאות רק האינדקס שנמצא מְאוּמָת. אם הוא לא השתנה, הערך מתבקש. אם זה השתנה, המטמון נבנה מחדש - כל משאל שנתקל באינדקס שונה עובר את אינדקס שוב את טבלת SNMP.