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

5 סוגי מדיה

סקירה כללית

סוגי המדיה הם מיוצאים עם כל הקשור אובייקטים ויחסי אובייקט.

מייצא

כדי לייצא סוגי מדיה, בצע את הפעולות הבאות:

  • עבור אל: ניהולסוגי מדיה
  • סמן את תיבות הסימון של סוגי המדיה לייצוא
  • לחץ על ייצוא מתחת לרשימה

בהתאם לפורמט שנבחר, סוגי מדיה מיוצאים למקומון קובץ עם שם ברירת מחדל:

  • zabbix_export_mediatypes.yaml - בייצוא YAML (אפשרות ברירת מחדל ליצוא)
  • zabbix_export_mediatypes.xml - בייצוא XML
  • zabbix_export_mediatypes.json - בייצוא JSON

ייבוא

כדי לייבא סוגי מדיה, בצע את הפעולות הבאות:

  • עבור אל: ניהולסוגי מדיה
  • לחץ על ייבוא מימין
  • בחר את קובץ הייבוא
  • סמן את האפשרויות הנדרשות בכללי הייבוא
  • לחץ על ייבוא

הודעת הצלחה או כישלון של הייבוא תוצג ב- חזיתי.

כללי ייבוא:

כלל תיאור
עדכון קיימים אלמנטים קיימים יעודכנו בנתונים שנלקחו מקובץ הייבוא. אחרת הם לא יתעדכנו.
צור חדש הייבוא יוסיף אלמנטים חדשים באמצעות נתונים מקובץ הייבוא. אחרת זה לא יוסיף אותם.
מחק חסרים הייבוא יסיר רכיבים קיימים שאינם קיימים בקובץ הייבוא. אחרת זה לא יסיר אותם.

Export format

Export to YAML:

zabbix_export:
         version: '6.4'
         media_types:
           -
             name: Pushover
             type: WEBHOOK
             parameters:
               - name: endpoint
                 value: 'https://api.pushover.net/1/messages.json'
               - name: eventid
                 value: '{EVENT.ID}'
               - name: event_nseverity
                 value: '{EVENT.NSEVERITY}'
               - name: event_source
                 value: '{EVENT.SOURCE}'
               - name: event_value
                 value: '{EVENT.VALUE}'
               - name: expire
                 value: '1200'
               - name: message
                 value: '{ALERT.MESSAGE}'
               - name: priority_average
                 value: '0'
               - name: priority_default
                 value: '0'
               - name: priority_disaster
                 value: '0'
               - name: priority_high
                 value: '0'
               - name: priority_information
                 value: '0'
               - name: priority_not_classified
                 value: '0'
               - name: priority_warning
                 value: '0'
               - name: retry
                 value: '60'
               - name: title
                 value: '{ALERT.SUBJECT}'
               - name: token
                 value: '<PUSHOVER TOKEN HERE>'
               - name: triggerid
                 value: '{TRIGGER.ID}'
               - name: url
                 value: '{$ZABBIX.URL}'
               - name: url_title
                 value: Zabbix
               - name: user
                 value: '{ALERT.SENDTO}'
             max_sessions: '0'
             script: |
               try {
                   var params = JSON.parse(value),
                       request = new HttpRequest(),
                       data,
                       response,
                       severities = [
                           {name: 'not_classified', color: '#97AAB3'},
                           {name: 'information', color: '#7499FF'},
                           {name: 'warning', color: '#FFC859'},
                           {name: 'average', color: '#FFA059'},
                           {name: 'high', color: '#E97659'},
                           {name: 'disaster', color: '#E45959'},
                           {name: 'resolved', color: '#009900'},
                           {name: 'default', color: '#000000'}
                       ],
                       priority;
               
                   if (typeof params.HTTPProxy === 'string' && params.HTTPProxy.trim() !== '') {
                       request.setProxy(params.HTTPProxy);
                   }
               
                   if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {
                       throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-3.';
                   }
               
                   if (params.event_value !== '0' && params.event_value !== '1'
                       && (params.event_source === '0' || params.event_source === '3')) {
                       throw 'Incorrect "event_value" parameter given: ' + params.event_value + '\nMust be 0 or 1.';
                   }
               
                   if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {
                       params.event_nseverity = '7';
                   }
               
                   if (params.event_value === '0') {
                       params.event_nseverity = '6';
                   }
               
                   priority = params['priority_' + severities[params.event_nseverity].name] || params.priority_default;
               
                   if (isNaN(priority) || priority < -2 || priority > 2) {
                       throw '"priority" should be -2..2';
                   }
               
                   if (params.event_source === '0' && isNaN(params.triggerid)) {
                       throw 'field "triggerid" is not a number';
                   }
               
                   if (isNaN(params.eventid)) {
                       throw 'field "eventid" is not a number';
                   }
               
                   if (typeof params.message !== 'string' || params.message.trim() === '') {
                       throw 'field "message" cannot be empty';
                   }
               
                   data = {
                       token: params.token,
                       user: params.user,
                       title: params.title,
                       message: params.message,
                       url: (params.event_source === '0') 
                           ? params.url + '/tr_events.php?triggerid=' + params.triggerid + '&eventid=' + params.eventid
                           : params.url,
                       url_title: params.url_title,
                       priority: priority
                   };
               
                   if (priority == 2) {
                       if (isNaN(params.retry) || params.retry < 30) {
                           throw 'field "retry" should be a number with value of at least 30 if "priority" is set to 2';
                       }
               
                       if (isNaN(params.expire) || params.expire > 10800) {
                           throw 'field "expire" should be a number with value of at most 10800 if "priority" is set to 2';
                       }
               
                       data.retry = params.retry;
                       data.expire = params.expire;
                   }
               
                   data = JSON.stringify(data);
                   Zabbix.log(4, '[ Pushover Webhook ] Sending request: ' + params.endpoint + '\n' + data);
               
                   request.addHeader('Content-Type: application/json');
                   response = request.post(params.endpoint, data);
               
                   Zabbix.log(4, '[ Pushover Webhook ] Received response with status code ' + request.getStatus() + '\n' + response);
               
                   if (response !== null) {
                       try {
                           response = JSON.parse(response);
                       }
                       catch (error) {
                           Zabbix.log(4, '[ Pushover Webhook ] Failed to parse response received from Pushover');
                           response = null;
                       }
                   }
               
                   if (request.getStatus() != 200 || response === null || typeof response !== 'object' || response.status !== 1) {
                       if (response !== null && typeof response === 'object' && typeof response.errors === 'object'
                               && typeof response.errors[0] === 'string') {
                           throw response.errors[0];
                       }
                       else {
                           throw 'Unknown error. Check debug log for more information.';
                       }
                   }
               
                   return 'OK';
               }
               catch (error) {
                   Zabbix.log(4, '[ Pushover Webhook ] Pushover notification failed: ' + error);
                   throw 'Pushover notification failed: ' + error;
               }
             description: |
               Please refer to setup guide here: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover
               
               Set token parameter with to your Pushover application key.
               When assigning Pushover media to the Zabbix user - add user key into send to field.
             message_templates:
               - event_source: TRIGGERS
                 operation_mode: PROBLEM
                 subject: 'Problem: {EVENT.NAME}'
                 message: |
                   Problem started at {EVENT.TIME} on {EVENT.DATE}
                   Problem name: {EVENT.NAME}
                   Host: {HOST.NAME}
                   Severity: {EVENT.SEVERITY}
                   Operational data: {EVENT.OPDATA}
                   Original problem ID: {EVENT.ID}
                   {TRIGGER.URL}
               - event_source: TRIGGERS
                 operation_mode: RECOVERY
                 subject: 'Resolved in {EVENT.DURATION}: {EVENT.NAME}'
                 message: |
                   Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
                   Problem name: {EVENT.NAME}
                   Problem duration: {EVENT.DURATION}
                   Host: {HOST.NAME}
                   Severity: {EVENT.SEVERITY}
                   Original problem ID: {EVENT.ID}
                   {TRIGGER.URL}
               - event_source: TRIGGERS
                 operation_mode: UPDATE
                 subject: 'Updated problem in {EVENT.AGE}: {EVENT.NAME}'
                 message: |
                   {USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
                   {EVENT.UPDATE.MESSAGE}
                   
                   Current problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.
               - event_source: DISCOVERY
                 operation_mode: PROBLEM
                 subject: 'Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
                 message: |
                   Discovery rule: {DISCOVERY.RULE.NAME}
                   
                   Device IP: {DISCOVERY.DEVICE.IPADDRESS}
                   Device DNS: {DISCOVERY.DEVICE.DNS}
                   Device status: {DISCOVERY.DEVICE.STATUS}
                   Device uptime: {DISCOVERY.DEVICE.UPTIME}
                   
                   Device service name: {DISCOVERY.SERVICE.NAME}
                   Device service port: {DISCOVERY.SERVICE.PORT}
                   Device service status: {DISCOVERY.SERVICE.STATUS}
                   Device service uptime: {DISCOVERY.SERVICE.UPTIME}
               - event_source: AUTOREGISTRATION
                 operation_mode: PROBLEM
                 subject: 'Autoregistration: {HOST.HOST}'
                 message: |
                   Host name: {HOST.HOST}
                   Host IP: {HOST.IP}
                   Agent port: {HOST.PORT}

תגי אלמנט

ערכי תג אלמנט מוסברים בטבלה למטה.

אלמנט מאפיין אלמנט נדרש סוג טווח1 תיאור
media_types - אלמנט שורש עבור media_types.
name x string שם סוג מדיה.
type x string 0 - EMAIL
1 - SMS
2 - SCRIPT
4 - WEBHOOK
תחבורה המשמשת את סוג המדיה.
status - string 0 - ENABLED (ברירת מחדל)
1 - DISABLED
האם סוג המדיה מופעל.
max_sessions - integer ערכים אפשריים עבור SMS: 1 - (ברירת מחדל)

ערכים אפשריים עבור סוגי מדיה אחרים: 0-100, 0 - בלתי מוגבל
המספר המרבי של התראות שיכולות להיות מעובד במקביל.
attempts - integer 1-10 (ברירת מחדל: 3) המספר המרבי של ניסיונות לשלוח התראה.
attempt_interval - string 0-60s (ברירת מחדל: 10s) המרווח בין ניסיונות ניסיון חוזר.

מקבל שניות ויחידת זמן עם סיומת.
description - מחרוזת תיאור סוג המדיה.
הודעה_תבניות - אלמנט בסיס לתבניות הודעות מסוג מדיה.
event_source x string 0 - TRIGGERS
1 - DISCOVERY
2 - AUTOREGISTRATION
3 - פנימי
4 - SERVICE
מקור האירוע.
operation_mode x string 0 - בעיה
1 - שחזור
2 - עדכון
מצב פעולה.
נושא - מחרוזת נושא ההודעה.
הודעה - מחרוזת גוף ההודעה.
משמש רק לפי סוג מדיה של דואר אלקטרוני
smtp_server x string שרת SMTP.
smtp_port - integer ברירת מחדל: 25 יציאת שרת SMTP לחיבור.
smtp_helo x string SMTP שלום.
smtp_email x string כתובת דואר אלקטרוני שממנה יישלחו הודעות.
smtp_security - string 0 - NONE (ברירת מחדל)
1 - STARTTLS
2 - SSL_OR_TLS
רמת אבטחת חיבור SMTP לשימוש.
smtp_verify_host - string 0 - NO (ברירת מחדל)
1 - YES
SSL אימות מארח עבור SMTP. אופציונלי אם smtp_security הוא STARTTLS או SSL_OR_TLS.
smtp_verify_peer - string 0 - NO (ברירת מחדל)
1 - YES
SSL אימות עמית עבור SMTP. אופציונלי אם smtp_security הוא STARTTLS או SSL_OR_TLS.
smtp_authentication - string 0 - NONE (ברירת מחדל)
1 - PASSWORD
שיטת אימות SMTP לשימוש.
שם משתמש - מחרוזת שם משתמש.
סיסמה - מחרוזת סיסמת אימות.
content_type - string 0 - TEXT
1 - HTML (ברירת מחדל)
פורמט הודעה.
משמש רק לפי סוג מדיה SMS
gsm_modem x string שם ההתקן הטורי של מודם GSM.
משמש רק לפי סוג מדיה סקריפט
שם סקריפט x מחרוזת שם התסריט.
פרמטרים - אלמנט שורש לפרמטרים של סקריפט.
משמש רק לפי סוג המדיה של webhook
script x מחרוזת תסריט.
timeout - string 1-60s (ברירת מחדל: 30s) מרווח זמן קצוב לבקשת HTTP של סקריפט JavaScript.
process_tags - string 0 - NO (ברירת מחדל)
1 - YES
אם לעבד תגים שהוחזרו.
show_event_menu - string 0 - NO (ברירת מחדל)
1 - YES
אם {EVENT.TAGS.*} נפתרו בהצלחה באירוע_menu_url ובאירוע_menu שדות _name, שדה זה מציין נוכחות של כניסה בתפריט האירוע.
event_menu_url - string כתובת האתר של תפריט האירוע. תומך במאקרו {EVENT.TAGS.*}.
event_menu_name - string שם הערך בתפריט האירוע. תומך במאקרו {EVENT.TAGS.*}.
פרמטרים - אלמנט שורש לפרמטרים של סוג מדיה של webhook.
name x string שם פרמטר Webhook.
value - מחרוזת ערך פרמטר Webhook.
הערות שוליים

1 עבור ערכי מחרוזת, רק המחרוזת תיוצא (למשל. "EMAIL") ללא המספור המשמש בטבלה זו. המספרים לטווח ערכים (המתאימים לערכי ה-API) בטבלה זו משמשים עבור הזמנה בלבד.