This is a translation of the original English documentation page. Help us make it better.

דוגמאות לסקריפט התלייה

סקירה כללית

למרות ש- Zabbix מציעה מספר רב של שילובי webhook זמינים מחוץ לקופסה, ייתכן שתרצה ליצור webhooks משלך במקום זאת. זֶה הסעיף מספק דוגמאות של סקריפטים מותאמים אישית של webhook (בשימוש ב- פרמטר סקריפט). לִרְאוֹת webhook עבור תיאור של פרמטרים אחרים של webhook.

Jira webhook (מותאם אישית)

סקריפט זה יצור בעיית JIRA ויחזיר קצת מידע על היצירה נושא.

נסה {
            Zabbix.log(4, '[ Jira webhook ] התחיל עם params: ' + value);
       
            var result = {
                    'תגים': {
                        'נקודת קצה': 'ג'ירה'
                    }
                },
                params = JSON.parse(value),
                req = new HttpRequest(),
                שדות = {},
                resp;
       
            if (params.HTTPProxy) {
                req.setProxy(params.HTTPProxy);
            }
       
            req.addHeader('Content-Type: application/json');
            req.addHeader('Authorization: Basic ' + params.authentication);
       
            fields.summary = params.summary;
            fields.description = params.description;
            fields.project = {key: params.project_key};
            fields.issuetype = {id: params.issue_id};
       
            resp = req.post('https://tsupport.zabbix.lan/rest/api/2/issue/',
                JSON.stringify({"fields": fields})
            );
       
            if (req.getStatus() != 201) {
                throw 'קוד תגובה: ' + req.getStatus();
            }
       
            resp = JSON.parse(resp);
            result.tags.issue_id = resp.id;
            result.tags.issue_key = resp.key;
       
            החזר JSON.stringify(result);
       }
       לתפוס (שגיאה) {
            Zabbix.log(4, '[ Jira webhook ] יצירת בעיה נכשלה json : ' + JSON.stringify({"fields": fields}));
            Zabbix.log(3, '[Jira webhook] יצירת בעיה נכשלה: ' + error);
       
            throw 'נכשל בשגיאה: ' + שגיאה;
       }

Slack webhook (מותאם אישית)

ה-webhook הזה יעביר הודעות מ-Zabix לערוץ Slack.

נסה {
            var params = JSON.parse(value),
                req = new HttpRequest(),
                תְגוּבָה;
       
            if (params.HTTPProxy) {
                req.setProxy(params.HTTPProxy);
            }
       
            req.addHeader('Content-Type: application/x-www-form-urlencoded');
       
            Zabbix.log(4, '[ Slack webhook ] Webhook request with value=' + value);
       
            response = req.post(params.hook_url, 'payload=' + encodeURIComponent(value));
            Zabbix.log(4, '[ Slack webhook ] הגיב עם קוד: ' + req.getStatus() + '. תגובה: ' + תגובה);
       
            נסה {
                response = JSON.parse(response);
            }
            לתפוס (שגיאה) {
                if (req.getStatus() < 200 || req.getStatus() >= 300) {
                    throw 'הבקשה נכשלה עם קוד המצב' + req.getStatus();
                }
                אחר {
                    throw 'הבקשה הצליחה, אבל ניתוח התגובה נכשל.';
                }
            }
       
            if (req.getStatus() !== 200 || !response.ok || response.ok === 'false') {
                לזרוק תגובה.שגיאה;
            }
       
            החזר 'אישור';
       }
       לתפוס (שגיאה) {
            Zabbix.log(3, '[ Slack webhook ] השליחה נכשלה. שגיאה: ' + error);
       
            throw 'נכשל בשגיאה: ' + שגיאה;
       }