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. Dodieties uz AlertsMedia types.
  2. Augšējā labajā stūrī noklikšķiniet uz Import.
  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.

Importēšanas noteikumi:

Rule Description
Update existing Esošie elementi tiks atjaunināti, izmantojot datus no importēšanas faila. Pretējā gadījumā tie netiks atjaunināti.
Create new Jauni elementi tiks izveidoti, izmantojot datus no importēšanas faila. Pretējā gadījumā tie netiks izveidoti.

Veiksmīgas vai neveiksmīgas importēšanas ziņojums tiks parādīts lietotāja saskarne.

Eksporta formāts

Eksportēt uz YAML:

zabbix_export:
  version: '7.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 'Nekorekts parametrs "event_source": "' + params.event_source + '".\nTam jābūt 0-3.';
            }

            if (params.event_value !== '0' && params.event_value !== '1'
                && (params.event_source === '0' || params.event_source === '3')) {
                throw 'Nekorekts parametrs "event_value": ' + params.event_value + '\nTam jābūt 0 vai 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" jābūt diapazonā -2..2';
            }

            if (params.event_source === '0' && isNaN(params.triggerid)) {
                throw 'lauks "triggerid" nav skaitlis';
            }

            if (isNaN(params.eventid)) {
                throw 'lauks "eventid" nav skaitlis';
            }

            if (typeof params.message !== 'string' || params.message.trim() === '') {
                throw 'lauks "message" nevar būt tukšs';
            }

            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 'lauks "retry" jābūt skaitlim ar vērtību vismaz 30, ja "priority" ir iestatīts uz 2';
                }

                if (isNaN(params.expire) || params.expire > 10800) {
                    throw 'lauks "expire" jābūt skaitlim ar vērtību ne vairāk kā 10800, ja "priority" ir iestatīts uz 2';
                }

                data.retry = params.retry;
                data.expire = params.expire;
            }

            data = JSON.stringify(data);
            Zabbix.log(4, '[ Pushover Webhook ] Sūta pieprasījumu: ' + params.endpoint + '\n' + data);

            request.addHeader('Content-Type: application/json');
            response = request.post(params.endpoint, data);

            Zabbix.log(4, '[ Pushover Webhook ] Saņemta atbilde ar statusa kodu ' + request.getStatus() + '\n' + response);

            if (response !== null) {
                try {
                    response = JSON.parse(response);
                }
                catch (error) {
                    Zabbix.log(4, '[ Pushover Webhook ] Neizdevās parsēt no Pushover saņemto atbildi');
                    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 'Nezināma kļūda. Lai iegūtu vairāk informācijas, pārbaudiet atkļūdošanas žurnālu.';
                }
            }

            return 'OK';
        }
        catch (error) {
            Zabbix.log(4, '[ Pushover Webhook ] Pushover paziņojuma nosūtīšana neizdevās: ' + error);
            throw 'Pushover paziņojuma nosūtīšana neizdevās: ' + error;
        }
      description: |
        Lūdzu, skatiet iestatīšanas rokasgrāmatu šeit: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover

        Iestatiet parametru token ar savu Pushover lietotnes atslēgu.
        Piešķirot Pushover mediju Zabbix lietotājam, laukā "send to" pievienojiet lietotāja atslēgu.
      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}
            Smagums: {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 {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}
            Smagums: {EVENT.SEVERITY}
            Sākotnējās problēmas ID: {EVENT.ID}
            {TRIGGER.URL}
        - event_source: TRIGGERS
          operation_mode: UPDATE
          subject: 'Atjaunināta problēma {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 statuss ir {EVENT.STATUS}, vecums ir {EVENT.AGE}, apstiprināts: {EVENT.ACK.STATUS}.
        - event_source: DISCOVERY
          operation_mode: PROBLEM
          subject: 'Atklāšana: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
          message: |
            Atklāšanas noteikums: {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 pakalpojuma nosaukums: {DISCOVERY.SERVICE.NAME}
            Ierīces pakalpojuma ports: {DISCOVERY.SERVICE.PORT}
            Ierīces pakalpojuma statuss: {DISCOVERY.SERVICE.STATUS}
            Ierīces pakalpojuma darbības laiks: {DISCOVERY.SERVICE.UPTIME}
        - event_source: AUTOREGISTRATION
          operation_mode: PROBLEM
          subject: 'Automātiska reģistrācija: {HOST.HOST}'
          message: |
            Hosts nosaukums: {HOST.HOST}
            Hosts 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).

Email

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

Element Type Description
provider string E-pasta pakalpojuma sniedzējs.
smtp_server string SMTP serveris.
smtp_port integer SMTP servera ports savienojumam.
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 SMTP savienojuma drošības līmenis, ko izmantot.
Iespējamās vērtības:1 NONE (0, noklusējums), STARTTLS (1), SSL_OR_TLS (2).
smtp_verify_host string SMTP SSL resursdatora pārbaude.
Iespējamās vērtības:1 NO (0, noklusējums), YES (1).
smtp_verify_peer string SMTP SSL vienaudža pārbaude.
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).
username string Lietotājvārds.
password string Autentifikācijas parole.
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 attiecīgo īpašību ar atbilstoš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.