1 ערך ברירת מחדל.
cmdline
בפריטים proc.mem[]
ו-proc.num[]
ניקח כדוגמה את אחד משרשורי הקרנל:
ניתן לבחור אותו עם פרמטר 'שם' של התהליך:
אבל בחירה לפי פרמטר 'cmdline' של תהליך לא עובד:
הסיבה היא שסוכן Zabbix לוקח את הביטוי הרגולרי שצוין בפרמטר cmdline
ומחיל אותו על תוכן התהליך /proc/<pid>/cmdline
. עבור שרשורי ליבה שלהם /proc/<pid>/cmdline
הקבצים ריקים. אז פרמטר 'cmdline' אף פעם לא תואם.
proc.mem[]
ו-proc.num[]
שרשורי ליבת לינוקס נספרים לפי פריט proc.num[]
אך אינם מדווחים זיכרון בפריט proc.mem[]
. לדוגמה:
$ ps -ef | grep kthreadd
שורש 2 0 0 09:51 ? 00:00:00 [kthreadd]
$ zabbix_get -s localhost -k 'proc.num[kthreadd]'
1
$ zabbix_get -s localhost -k 'proc.mem[kthreadd]'
ZBX_NOTSUPPORTED: לא ניתן לקבל כמות זיכרון "VmSize".
אבל מה קורה אם יש תהליך משתמש באותו שם כמו א חוט ליבה? ואז זה יכול להיראות כך:
$ ps -ef | grep kthreadd
שורש 2 0 0 09:51 ? 00:00:00 [kthreadd]
zabbix 9611 6133 0 17:58 נקודות/1 00:00:00 ./kthreadd
$ zabbix_get -s localhost -k 'proc.num[kthreadd]'
2
$ zabbix_get -s localhost -k 'proc.mem[kthreadd]'
4157440
proc.num[]
ספר גם את שרשור הליבה וגם את תהליך המשתמש. proc.mem[]
מדווח על זיכרון עבור תהליך המשתמש בלבד וסופר את זיכרון פתיל ליבה כאילו הוא 0. זה שונה מהמקרה לעיל כאשר דווח על ZBX_NOTSUPPORTED.
היזהר בעת שימוש בפריטים proc.mem[]
ו-proc.num[]
אם התוכנית שם במקרה תואם לאחד מהשרשור.
לפני שמכניסים פרמטרים לפריטים proc.mem[]
ו-proc.num[]
, אתה אולי תרצה לבדוק את הפרמטרים באמצעות הפריט proc.num[]
ו-ps
פקודה.