1 פרוטוקול החלפת נתונים בין שרת למתווך

סקירה כללית

שרת - חילופי נתונים פרוקסי מבוססת על פורמט JSON.

הודעות בקשה ותגובה חייבות להתחיל ב-כותרת ונתונים length.

פרוקסי פסיבי

בקשת תצורת Proxy

בקשת ה-proxy config נשלחת על ידי השרת כדי לספק פרוקסי נתוני תצורה. בקשה זו נשלחת בכל ProxyConfigFrequency (פרמטר תצורת שרת) שניות.

name סוג ערך תיאור
שרת→פרוקסי:
request string 'config proxy'
<table> object אובייקט אחד או יותר עם נתוני <table>.
שדות מערך מערך שמות שדות.
- string שם שדה.
נתונים מערך מערך שורות.
- מערך מערך עמודות.
- string,number ערך עמודה עם סוג בהתאם לסוג העמודה בסכימת מסד הנתונים.
proxy→שרת:
תגובה string בקש מידע על הצלחה ('הצלחה' או 'נכשל').
גרסה string גרסת פרוקסי (<major>.<minor>.<build>).

דוגמא:

שרת → פרוקסי:

{
     "request": "תצורת פרוקסי",
     "globalmacro":{
         "שדות":[
             "גלובלמאקרואיד",
             "מאקרו",
             "ערך"
         ],
         "נתונים":[
             [
                 2,
                 "{$SNMP_COMMUNITY}",
                 "פּוּמְבֵּי"
             ]
         ]
     },
     "מארחים":{
         "שדות":[
             "hostid",
             "מנחה",
             "סטָטוּס",
             "ipmi_authtype",
             "ipmi_privilege",
             "ipmi_username",
             "ipmi_password",
             "שֵׁם",
             "tls_connect",
             "tls_accept",
             "tls_issuer",
             "tls_subject",
             "tls_psk_identity",
             "tls_psk"
         ],
         "נתונים":[
             [
                 10001,
                 "לינוקס",
                 3,
                 -1,
                 2,
                 "",
                 "",
                 "לינוקס",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ],
             [
                 10050,
                 "סוכן Zabbix",
                 3,
                 -1,
                 2,
                 "",
                 "",
                 "סוכן Zabbix",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ],
             [
                 10105,
                 "כּוֹרֵת עֵצִים",
                 0,
                 -1,
                 2,
                 "",
                 "",
                 "כּוֹרֵת עֵצִים",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ]
         ]
     },
     "מִמְשָׁק":{
         "שדות":[
             "interfaceid",
             "hostid",
             "רָאשִׁי",
             "סוּג",
             "useip",
             "ip",
             "dns",
             "נמל",
             "תִפזוֹרֶת"
         ],
         "נתונים":[
             [
                 2,
                 10105,
                 1,
                 1,
                 1,
                 "127.0.0.1",
                 "",
                 "10050",
                 1
             ]
         ]
     },
     ...
}

proxy→שרת:

{
   "response": "הצלחה",
   "version": "6.0.0"
}
בקשת פרוקסי

בקשת נתוני proxy משמשת כדי להשיג זמינות של ממשק מארח, נתונים היסטוריים, גילוי ורישום אוטומטי מ-proxy. הבקשה הזאת נשלח בכל ProxyDataFrequency (פרמטר תצורת שרת) שניות.

name סוג ערך תיאור
שרת→פרוקסי:
request string 'נתוני proxy'
proxy→שרת:
session string אסימון הפעלת נתונים.
זמינות ממשק מערך (אופציונלי) מערך אובייקטי נתוני זמינות ממשק.
מזהה ממשק מספר מזהה ממשק.
זמין מספר זמינות ממשק:

0, INTERFACE_AVAILABLE_UNKNOWN - לא ידוע
1, INTERFACE_AVAILABLE _TRUE - זמין
2, INTERFACE_AVAILABLE_FALSE - לא זמין
שגיאה מחרוזת הודעת שגיאה בממשק או מחרוזת ריקה.
נתוני היסטוריה מערך (אופציונלי) מערך אובייקטי נתוני היסטוריה.
itemid number מזהה פריט.
שעון מספר חותמת זמן של ערך פריט (שניות).
ns מספר חותמת זמן של ערך פריט (ננו-שניות).
ערך מחרוזת (אופציונלי) ערך פריט.
id number מזהה ערך (מונה עולה, ייחודי בתוך הפעלת נתונים אחת).
חותמת זמן מספר (אופציונלי) חותמת זמן של פריטים מסוג יומן.
מקור מחרוזת (אופציונלי) ערך מקור פריט יומן אירועים.
חומרה מספר (אופציונלי) ערך חומרת פריט יומן אירועים.
eventid number (אופציונלי) Eventtid פריט ערך eventtid.
מצב מחרוזת (אופציונלי) מצב פריט:
0, ITEM_STATE_NORMAL
1, ITEM_STATE _NOTSUPPORTED
lastlogsize מספר (אופציונלי) גודל יומן אחרון של פריטים מסוג יומן.
mtime מספר (אופציונלי) זמן שינוי של פריטים מסוג יומן.
נתוני גילוי מערך (אופציונלי) מערך של אובייקטי נתוני גילוי.
שעון מספר חותמת זמן של נתוני גילוי.
druleid מספר מזהה כלל גילוי.
dcheckid number מזהה בדיקת גילוי או null עבור נתוני כלל גילוי.
סוג מספר סוג בדיקת גילוי:

-1 נתוני כללי גילוי
0, SVC_SSH - בדיקת שירות SSH
1, SVC_LDAP - בדיקת שירות LDAP
2, SVC_SMTP - בדיקת שירות SMTP
3, SVC_FTP - בדיקת שירות FTP
4, SVC_HTTP - בדיקת שירות HTTP
5, SVC_POP - בדיקת שירות POP
6, SVC_NNTP - בדיקת שירות NNTP
7, SVC_IMAP - בדיקת שירות IMAP
8, SVC_TCP - בדיקת זמינות יציאת TCP
9, SVC_AGENT - סוכן Zabbix
10, SVC_SNMPv1 - סוכן SNMPv1
11, SVC_SNMPv2 - סוכן SNMPv2
12, SVC_ICMPPING - ICMP ping
13, SVC_SNMPv3 - סוכן SNMPv3
14, SVC_HTTPS - בדיקת שירות HTTPS<br >15*, SVC_TELNET* - בדיקת זמינות Telnet
ip string כתובת IP מארח.
dns מחרוזת שם DNS מארח.
יציאה מספר (אופציונלי) מספר יציאת שירות.
מפתח_ מחרוזת (אופציונלי) מפתח פריט לבדיקת גילוי מסוג 9 SVC_AGENT
value string (אופציונלי) ערך שהתקבל מהשירות, יכול להיות ריק עבור רוב השירותים.
סטטוס מספר (אופציונלי) סטטוס שירות:

0, DOBJECT_STATUS_UP - שירות UP
*1 , DOBJECT_STATUS_DOWN* - שירות DOWN
רישום אוטומטי מערך (אופציונלי) מערך אובייקטי נתוני רישום אוטומטי.
שעון מספר חותמת זמן של נתוני רישום אוטומטי.
מארח מחרוזת שם מארח.
ip מחרוזת (אופציונלי) כתובת IP מארח.
dns string (אופציונלי) שם DNS נפתר מכתובת IP.
יציאה מחרוזת (אופציונלי) יציאת מארח.
host_metadata string (אופציונלי) מטא נתונים מארח שנשלחו על ידי הסוכן (מבוסס על פרמטר תצורת סוכן HostMetadata או HostMetadataItem).
משימות מערך (אופציונלי) מערך משימות.
סוג מספר סוג משימה:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - תוצאת פקודה מרחוק
status number סטטוס ביצוע פקודה מרחוק:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - הפקודה מרחוק הושלמה בהצלחה
1, ZBX_TM_REMOTE_COMMAND_FAILED - פקודת מרחוק נכשלה
שגיאה מחרוזת (אופציונלי) הודעת שגיאה.
הורה_משימה מספר מזהה משימת הורה.
עוד מספר (אופציונלי) 1 - יש עוד נתוני היסטוריה לשלוח.
שעון מספר (אופציונלי) חותמת זמן להעברת נתונים (שניות).
ns מספר (אופציונלי) חותמת זמן להעברת נתונים (ננו-שניות).
גרסה מחרוזת גרסת פרוקסי (<major>.<minor>.<build>).
שרת→פרוקסי:
תגובה string בקש מידע על הצלחה ('הצלחה' או 'נכשל').
משימות מערך (אופציונלי) מערך משימות.
סוג מספר סוג משימה:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - פקודה מרחוק
שעון מספר זמן יצירת משימה.
ttl number הזמן בשניות שאחריו יפוג המשימה.
סוג פקודה מספר סוג פקודה מרחוק:

0, *ZBX_SC

פרוקסי פעיל

בקשת פעימות לב פרוקסי

בקשת ה-proxy heartbeat נשלחת על ידי proxy כדי לדווח על כך רץ. בקשה זו נשלחת בכל HeartbeatFrequency (פרוקסי פרמטר תצורה) שניות.

שם סוג ערך תיאור
proxy→שרת:
בקשה מחרוזת 'קצב לב פרוקסי'
מארח מחרוזת שם פרוקסי.
גרסה מחרוזת גרסת פרוקסי (<major>.<minor>.<build>).
שרת→פרוקסי:
תגובה מחרוזת בקש מידע על הצלחה ('הצלחה' או 'נכשל').

proxy→שרת:

{
    "request": "דופק לב פרוקסי",
    "host": "פרוקסי מס' 12",
    "version": "5.4.0"
}

שרת → פרוקסי:

{
   "response": "הצלחה"
}
בקשת תצורת Proxy

בקשת ה-proxy config נשלחת באמצעות פרוקסי כדי לקבל פרוקסי נתוני תצורה. בקשה זו נשלחת בכל ConfigFrequency (פרוקסי פרמטר תצורה) שניות.

name סוג ערך תיאור
proxy→שרת:
request string 'config proxy'
מארח מחרוזת שם פרוקסי.
גרסה string גרסת פרוקסי (<major>.<minor>.<build>).
שרת→פרוקסי:
request string 'config proxy'
<table> object אובייקט אחד או יותר עם נתוני <table>.
שדות מערך מערך שמות שדות.
- string שם שדה.
נתונים מערך מערך שורות.
- מערך מערך עמודות.
- string,number ערך עמודה עם סוג בהתאם לסוג העמודה בסכימת מסד הנתונים.
proxy→שרת:
תגובה string בקש מידע על הצלחה ('הצלחה' או 'נכשל').

דוגמא:

proxy→שרת:

{
   "request": "תצורת פרוקסי",
   "host": "פרוקסי מס' 12",
   "גרסה":"5.4.0"
}

שרת → פרוקסי:

{
     "globalmacro":{
         "שדות":[
             "גלובלמאקרואיד",
             "מאקרו",
             "ערך"
         ],
         "נתונים":[
             [
                 2,
                 "{$SNMP_COMMUNITY}",
                 "פּוּמְבֵּי"
             ]
         ]
     },
     "מארחים":{
         "שדות":[
             "hostid",
             "מנחה",
             "סטָטוּס",
             "ipmi_authtype",
             "ipmi_privilege",
             "ipmi_username",
             "ipmi_password",
             "שֵׁם",
             "tls_connect",
             "tls_accept",
             "tls_issuer",
             "tls_subject",
             "tls_psk_identity",
             "tls_psk"
         ],
         "נתונים":[
             [
                 10001,
                 "לינוקס",
                 3,
                 -1,
                 2,
                 "",
                 "",
                 "לינוקס",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ],
             [
                 10050,
                 "סוכן Zabbix",
                 3,
                 -1,
                 2,
                 "",
                 "",
                 "סוכן Zabbix",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ],
             [
                 10105,
                 "כּוֹרֵת עֵצִים",
                 0,
                 -1,
                 2,
                 "",
                 "",
                 "כּוֹרֵת עֵצִים",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ]
         ]
     },
     "מִמְשָׁק":{
         "שדות":[
             "interfaceid",
             "hostid",
             "רָאשִׁי",
             "סוּג",
             "useip",
             "ip",
             "dns",
             "נמל",
             "תִפזוֹרֶת"
         ],
         "נתונים":[
             [
                 2,
                 10105,
                 1,
                 1,
                 1,
                 "127.0.0.1",
                 "",
                 "10050",
                 1
             ]
         ]
     },
     ...
}

proxy→שרת:

{
   "response": "הצלחה"
}
בקשת תצורת Proxy

בקשת ה-proxy config נשלחת באמצעות פרוקסי כדי לקבל פרוקסי נתוני תצורה. בקשה זו נשלחת בכל ConfigFrequency (פרוקסי פרמטר תצורה) שניות.

name סוג ערך תיאור
proxy→שרת:
request string 'config proxy'
מארח מחרוזת שם פרוקסי.
גרסה string גרסת פרוקסי (<major>.<minor>.<build>).
שרת→פרוקסי:
request string 'config proxy'
<table> object אובייקט אחד או יותר עם נתוני <table>.
שדות מערך מערך שמות שדות.
- string שם שדה.
נתונים מערך מערך שורות.
- מערך מערך עמודות.
- string,number ערך עמודה עם סוג בהתאם לסוג העמודה בסכימת מסד הנתונים.
proxy→שרת:
תגובה string בקש מידע על הצלחה ('הצלחה' או 'נכשל').

דוגמא:

proxy→שרת:

{
   "request": "תצורת פרוקסי",
   "host": "פרוקסי מס' 12",
   "גרסה":"5.4.0"
}

שרת → פרוקסי:

{
     "globalmacro":{
         "שדות":[
             "גלובלמאקרואיד",
             "מאקרו",
             "ערך"
         ],
         "נתונים":[
             [
                 2,
                 "{$SNMP_COMMUNITY}",
                 "פּוּמְבֵּי"
             ]
         ]
     },
     "מארחים":{
         "שדות":[
             "hostid",
             "מנחה",
             "סטָטוּס",
             "ipmi_authtype",
             "ipmi_privilege",
             "ipmi_username",
             "ipmi_password",
             "שֵׁם",
             "tls_connect",
             "tls_accept",
             "tls_issuer",
             "tls_subject",
             "tls_psk_identity",
             "tls_psk"
         ],
         "נתונים":[
             [
                 10001,
                 "לינוקס",
                 3,
                 -1,
                 2,
                 "",
                 "",
                 "לינוקס",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ],
             [
                 10050,
                 "סוכן Zabbix",
                 3,
                 -1,
                 2,
                 "",
                 "",
                 "סוכן Zabbix",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ],
             [
                 10105,
                 "כּוֹרֵת עֵצִים",
                 0,
                 -1,
                 2,
                 "",
                 "",
                 "כּוֹרֵת עֵצִים",
                 1,
                 1,
                 "",
                 "",
                 "",
                 ""
             ]
         ]
     },
     "מִמְשָׁק":{
         "שדות":[
             "interfaceid",
             "hostid",
             "רָאשִׁי",
             "סוּג",
             "useip",
             "ip",
             "dns",
             "נמל",
             "תִפזוֹרֶת"
         ],
         "נתונים":[
             [
                 2,
                 10105,
                 1,
                 1,
                 1,
                 "127.0.0.1",
                 "",
                 "10050",
                 1
             ]
         ]
     },
     ...
}

proxy→שרת:

{
   "response": "הצלחה"
}