Multivides tipi

Pārskats

Multivides tipi tiek eksportēti kopā ar visiem saistītajiem objektiem un objektu attiecībām.

Eksportēšana

Lai eksportētu multivides tipus, rīkojieties šādi:

  1. Dodieties uz Alerts > Media types.
  2. Atzīmējiet eksportējamo multivides tipu izvēles rūtiņas.
  3. Noklikšķiniet uz Export zem saraksta.

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

  • zabbix_export_mediatypes.yaml - YAML eksportā (noklusējuma eksportēšanas opcija);
  • zabbix_export_mediatypes.xml - XML eksportā;
  • zabbix_export_mediatypes.json - JSON eksportā.

Importēšana

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

  1. Dodieties uz Alerts > Media 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 paziņojums tiks parādīts lietotāja saskarne.

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 'Nekorekts "event_source" parametrs: "' + 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 "event_value" parametrs: ' + 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 -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, kura vērtība ir vismaz 30, ja "priority" ir iestatīts uz 2';
                }

                if (isNaN(params.expire) || params.expire > 10800) {
                    throw 'lauks "expire" jābūt skaitlim, kura vērtība ir 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 ] 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 rokasgrāmatu š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, 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 stāvoklis 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 tabulā zemāk.

Element Type Description
name string (obligāts) Mediju tipa nosaukums.
type string (obligāts) Mediju tipa izmantotais transports.
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, noklusējums), 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:1 1 (noklusējums).
Iespējamās vērtības citiem mediju tipiem:1 0-100 (kur 0 - neierobežots).
attempts integer Maksimālais mēģinājumu skaits brīdinājuma nosūtīšanai.
Iespējamās vērtības:1 1-10 (noklusējums: 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 (noklusējums: 10s).
description string Mediju tipa apraksts.
message_templates Saknes elements mediju tipa ziņojumu veidnēm.
event_source string (obligāts) 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 temats.
message string Ziņojuma saturs.

Skatiet arī: Mediju tipa objekts (skatiet attiecīgo īpašību ar atbilstošu nosaukumu).

Email

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

Element Type Description
provider string E-pasta pakalpojuma sniedzējs.
smtp_server string SMTP serveris.
smtp_port integer SMTP servera ports, ar kuru 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 SSL verifikācija SMTP resursdatoram.
Iespējamās vērtības:1 NO (0, noklusējums), YES (1).
smtp_verify_peer string SSL verifikācija SMTP vienaudžam.
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ļ OAuth autorizāciju.
client_id string Klienta identifikators, kas reģistrēts OAuth autorizācijas serverī.
authorization_url string OAuth URL ar parametriem piekļuves un atsvaidzināšanas žetonu iegūšanai.
token_url string OAuth URL autorizācijas žetona apmaiņai pret piekļuves un atsvaidzināšanas žetoniem.
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 multivides tipam.

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

Skatiet arī: Multivides tipa objekts (skatiet attiecīgo īpašību ar atbilstošu nosaukumu).

Skripts

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

Elements Tips Apraksts
skripta nosaukums string (obligāts) Skripta nosaukums.
parametri Saknes elements skripta parametriem.
sortorder string (obligāts) Skripta parametru secība, kas tiek nodota skriptam kā komandrindas argumenti.
value string Skripta parametra vērtība.

Skatiet arī: Multivides tipa objekts (attiecībā uz atbilstošo īpašību ar tādu pašu nosaukumu).

webhook

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

Element Type Description
script string Skripts.
timeout string Javascript skripta HTTP pieprasījuma taimauta 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 {EVENT.TAGS.*} makro ir 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 {EVENT.TAGS.*} makro.
event_menu_name string Notikuma izvēlnes ieraksta nosaukums. Atbalsta {EVENT.TAGS.*} makro.
parameters Saknes elements webhook multivides tipa parametriem.
name string (obligāts) Webhook parametra nosaukums.
value string Webhook parametra vērtība.

Skatiet arī: Media type object (skatiet atbilstošo īpašību ar sakritīgu nosaukumu).

Piezīmes

1 API veselo skaitļu vērtības iekavās, piemēram, ENABLED (0), ir minētas tikai uzziņai. Papildu informāciju skatiet saistītajā API objekta lapā tabulas ierakstā vai katras sadaļas beigās.