6 Mediju tipi

Pārskats

Paziņojumu nesēju tipi tiek eksportēti kopā ar visiem saistītajiem objektiem un objektu attiecībām.

Eksportēšana

Lai eksportētu paziņojumu nesēju tipus, rīkojieties šādi:

  1. Atveriet BrīdinājumiPaziņojumu nesēju tipi.
  2. Atzīmējiet eksportējamo paziņojumu nesēju tipu izvēles rūtiņas.
  3. Zem saraksta noklikšķiniet uz Eksportēt.

Atkarībā no izvēlētā formāta paziņojumu nesēju tipi tiek eksportēti uz lokālu failu ar noklusējuma nosaukumu:

  • zabbix_export_mediatypes.yaml - YAML eksportam (noklusējuma eksporta opcija);
  • zabbix_export_mediatypes.xml - XML eksportam;
  • zabbix_export_mediatypes.json - JSON eksportam.

Importēšana

Lai importētu mediju tipus, rīkojieties šādi:

  1. Atveriet BrīdinājumiMediju tipi.
  2. Augšējā labajā stūrī noklikšķiniet uz Importēt.
  3. Atlasiet importēšanas failu.
  4. Importēšanas noteikumos atzīmējiet nepieciešamās opcijas.
  5. Konfigurācijas formas apakšējā labajā stūrī noklikšķiniet uz Importēt.

Importēšanas noteikumi:

Noteikums Apraksts
Atjaunināt esošos Esošie elementi tiks atjaunināti, izmantojot datus no importēšanas faila. Pretējā gadījumā tie netiks atjaunināti.
Izveidot jaunus Jauni elementi tiks izveidoti, izmantojot datus no importēšanas faila. Pretējā gadījumā tie netiks izveidoti.

Lietotāja saskarnē tiks parādīts importēšanas veiksmes vai kļūmes ziņojums.

Eksporta formāts

Eksportēt uz YAML:

zabbix_export:
  version: '8.0'
  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}'
      status: DISABLED
      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: |
        Lūdzu, skatiet iestatīšanas ceļvedi šeit: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover

        Iestatiet token parametru ar savu Pushover lietotnes atslēgu.
        Piešķirot Pushover mediju Zabbix lietotājam, pievienojiet lietotāja atslēgu laukā send to.
      message_templates:
        - event_source: TRIGGERS
          operation_mode: PROBLEM
          subject: 'Problēma: {EVENT.NAME}'
          message: |
            Problēma sākās {EVENT.TIME} {EVENT.DATE}
            Problēmas nosaukums: {EVENT.NAME}
            Hosts: {HOST.NAME}
            Nopietnība: {EVENT.SEVERITY}
            Operatīvie dati: {EVENT.OPDATA}
            Sākotnējās problēmas ID: {EVENT.ID}
            {TRIGGER.URL}
        - event_source: TRIGGERS
          operation_mode: RECOVERY
          subject: 'Atrisināts pēc {EVENT.DURATION}: {EVENT.NAME}'
          message: |
            Problēma tika atrisināta {EVENT.RECOVERY.TIME} {EVENT.RECOVERY.DATE}
            Problēmas nosaukums: {EVENT.NAME}
            Problēmas ilgums: {EVENT.DURATION}
            Hosts: {HOST.NAME}
            Nopietnība: {EVENT.SEVERITY}
            Sākotnējās problēmas ID: {EVENT.ID}
            {TRIGGER.URL}
        - event_source: TRIGGERS
          operation_mode: UPDATE
          subject: 'Atjaunināta problēma pēc {EVENT.AGE}: {EVENT.NAME}'
          message: |
            {USER.FULLNAME} {EVENT.UPDATE.ACTION} problēmu {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
            {EVENT.UPDATE.MESSAGE}

            Pašreizējais problēmas stāvoklis ir {EVENT.STATUS}, vecums ir {EVENT.AGE}, apstiprināta: {EVENT.ACK.STATUS}.
        - event_source: DISCOVERY
          operation_mode: PROBLEM
          subject: 'Atklāšana: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
          message: |
            Atklāšanas kārtula: {DISCOVERY.RULE.NAME}

            Ierīces IP: {DISCOVERY.DEVICE.IPADDRESS}
            Ierīces DNS: {DISCOVERY.DEVICE.DNS}
            Ierīces statuss: {DISCOVERY.DEVICE.STATUS}
            Ierīces darbības laiks: {DISCOVERY.DEVICE.UPTIME}

            Ierīces servisa nosaukums: {DISCOVERY.SERVICE.NAME}
            Ierīces servisa ports: {DISCOVERY.SERVICE.PORT}
            Ierīces servisa statuss: {DISCOVERY.SERVICE.STATUS}
            Ierīces servisa darbības laiks: {DISCOVERY.SERVICE.UPTIME}
        - event_source: AUTOREGISTRATION
          operation_mode: PROBLEM
          subject: 'Automātiskā reģistrācija: {HOST.HOST}'
          message: |
            Hosta nosaukums: {HOST.HOST}
            Hosta IP: {HOST.IP}
            Aģenta ports: {HOST.PORT}

Eksportētie elementi

Eksportētie elementi ir izskaidroti zemāk esošajā tabulā.

Elements Tips Apraksts
name string (obligāti) Mediju tipa nosaukums.
type string (obligāti) Pārsūtīšanas veids, ko izmanto mediju tips.
Iespējamās vērtības:1 EMAIL (0), SMS (1), SCRIPT (2), WEBHOOK (4).
status string Vai mediju tips ir iespējots.
Iespējamās vērtības:1 ENABLED (0, pēc noklusējuma), DISABLED (1)
max_sessions integer Maksimālais brīdinājumu skaits, ko var apstrādāt paralēli.
Iespējamās vērtības SMS gadījumā:1 1 (pēc noklusējuma).
Iespējamās vērtības citiem mediju tipiem:1 0-100 (kur 0 — neierobežoti).
attempts integer Maksimālais mēģinājumu skaits brīdinājuma nosūtīšanai.
Iespējamās vērtības:1 1-10 (pēc noklusējuma: 3).
attempt_interval string Intervāls (izmantojot sekundes vai laika sufiksu) starp atkārtotiem mēģinājumiem.
Iespējamās vērtības:1 0-60s (pēc noklusējuma: 10s).
description string Mediju tipa apraksts.
message_templates Saknes elements mediju tipa ziņojumu veidnēm.
event_source string (obligāti) Notikuma avots.
Iespējamās vērtības:1 TRIGGERS (0), DISCOVERY (1), AUTOREGISTRATION (2), INTERNAL (3), SERVICE (4).
operation_mode string Darbības režīms.
Iespējamās vērtības:1 PROBLEM (0), RECOVERY (1), UPDATE (2).
subject string Ziņojuma tēma.
message string Ziņojuma teksts.

Skatiet arī: Media type object (skatiet atbilstošo īpašību ar tādu pašu nosaukumu).

E-pasts

Tālāk norādītie papildu elementi tiek eksportēti tikai E-pasts medija tipam.

Elements Type Apraksts
provider string E-pasta pakalpojumu sniedzējs.
smtp_server string SMTP serveris.
smtp_port integer SMTP servera ports, kuram izveidot savienojumu.
Noklusējums: 25.
smtp_helo string SMTP helo.
smtp_email string E-pasta adrese, no kuras tiks sūtīti paziņojumi.
smtp_security string Izmantojamais SMTP savienojuma drošības līmenis.
Iespējamās vērtības:1 NONE (0, noklusējums), STARTTLS (1), SSL_OR_TLS (2).
smtp_verify_host string SMTP SSL hosta verifikācija.
Iespējamās vērtības:1 NO (0, noklusējums), YES (1).
smtp_verify_peer string SMTP SSL partnera verifikācija.
Iespējamās vērtības:1 NO (0, noklusējums), YES (1).
smtp_authentication string Izmantojamā SMTP autentifikācijas metode.
Iespējamās vērtības:1 NONE (0, noklusējums), PASSWORD (1), OAUTH (2).
username string Lietotājvārds.
password string Autentifikācijas parole.
redirection_url string Zabbix lietotāja saskarne URL, uz kuru novirzīt atpakaļ pēc OAuth autorizācijas.
client_id string Klienta identifikators, kas reģistrēts OAuth autorizācijas serverī.
authorization_url string OAuth URL ar parametriem, lai iegūtu piekļuves un atsvaidzināšanas marķierus.
token_url string OAuth URL, lai apmainītu autorizācijas marķieri pret piekļuves un atsvaidzināšanas marķieriem.
message_format string Ziņojuma formāts.
Iespējamās vērtības:1 TEXT (0), HTML (1, noklusējums).

Skatiet arī: Media type object (skatiet atbilstošo īpašību ar tādu pašu nosaukumu).

SMS

Tālāk norādītie papildu elementi tiek eksportēti tikai SMS medija tipam.

Elements Type Apraksts
gsm_modem string (obligāti) GSM modema seriālās ierīces nosaukums.

Skatiet arī: Medija tipa objekts (skatiet atbilstošo īpašību ar tādu pašu nosaukumu).

Skripts

Tālāk norādītie papildu elementi tiek eksportēti tikai Skripts paziņojumu nesēja tipam.

Elements Type Apraksts
skripta nosaukums string (obligāti) Skripta nosaukums.
parametri Saknes elements skripta parametriem.
sortorder string (obligāti) Skripta parametru secība, kādā tie tiek nodoti skriptam kā komandrindas argumenti.
value string Skripta parametra vērtība.

Skatiet arī: Paziņojumu nesēja tipa objekts (skatiet atbilstošo īpašību ar tādu pašu nosaukumu).

Webhook

Tālāk norādītie papildu elementi tiek eksportēti tikai Webhook medija tipam.

Elements Type Apraksts
script string Skripts.
timeout string Javascript skripta HTTP pieprasījuma noildzes intervāls.
Iespējamās vērtības:1 1-60s (noklusējums: 30s).
process_tags string Vai apstrādāt atgrieztos tagus.
Iespējamās vērtības:1 NO (0, noklusējums), YES (1).
show_event_menu string Norāda ieraksta esamību notikuma izvēlnē, ja makross {EVENT.TAGS.*} tika veiksmīgi atrisināts laukos event_menu_url un event_menu_name.
Iespējamās vērtības:1 NO (0, noklusējums), YES (1).
event_menu_url string Notikuma izvēlnes ieraksta URL. Atbalsta makrosu {EVENT.TAGS.*}.
event_menu_name string Notikuma izvēlnes ieraksta nosaukums. Atbalsta makrosu {EVENT.TAGS.*}.
parameters Saknes elements webhook medija tipa parametriem.
name string (obligāti) Webhook parametra nosaukums.
value string Webhook parametra vērtība.

Skatiet arī: Media type object (skatiet atbilstošo īpašību ar tādu pašu nosaukumu).

Piezīmes

1 API integer vērtības iekavās, piemēram, ENABLED (0), ir minētas tikai atsaucei. Papildinformāciju skatiet saistītā API objekta lapā tabulas ierakstā vai katras sadaļas beigās.