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": "הצלחה"
}