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