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

6 メディアタイプ

概要

メディアタイプは、関連するすべてのオブジェクトやオブジェクトの関係性と一緒にエクスポートされます。

エクスポート

メディアタイプをエクスポートするには、次のようにします。

  • 管理メディアタイプ に移動します。
  • エクスポートするメディアタイプのチェックボックスにマークを付けます。
  • リストの下にあるエクスポートをクリックします。

選択された形式に応じて、メディアタイプはローカルファイルにデフォルトの名前でエクスポートされます。

  • zabbix_export_mediatypes.yaml - YAML形式の場合 (export の default option)
  • zabbix_export_mediatypes.xml - XML形式の場合
  • zabbix_export_mediatypes.json - JSON形式の場合

インポート

メディアタイプをインポートするには、次のようにします。

  • 管理メディアタイプ に移動します。
  • 右側のインポートをクリックします。
  • インポートするファイルを選択します。
  • インポートルールの必要なオプションにマークを付けます。
  • インポートをクリックします。

インポートの成功または失敗のメッセージがWebインターフェースに表示されます。

インポートルール:

ルール 説明
既存の設定を上書Update existing 既存の要素は、import ファイルから取得したデータで更新されます。そうでない場合は、更新されません。
新規作成 import ファイルのデータを使用して新しい要素を追加します。そうでない場合は、追加されません。
存在しない場合に削除 インポートファイルに存在しない既存の要素を削除します。そうでない場合は、削除されません。

エクスポートフォーマット

YAML形式の export:

zabbix_export:  version: '6.0'  date: '2021-08-31T13:34:17Z'  media_types:  -  name: Pushover  type: WEBHOOK  parameters:  8:  name: endpoint  value: 'https://api.pushover.net/1/messages.json'  6:  name: eventid  value: '{EVENT.ID}'  11:  name: event_nseverity  value: '{EVENT.NSEVERITY}'  12:  name: event_source  value: '{EVENT.SOURCE}'  13:  name: event_value  value: '{EVENT.VALUE}'  10:  name: expire  value: '1200'  2:  name: message  value: '{ALERT.MESSAGE}'  14:  name: priority_average  value: '0'  15:  name: priority_default  value: '0'  16:  name: priority_disaster  value: '0'  17:  name: priority_high  value: '0'  18:  name: priority_information  value: '0'  19:  name: priority_not_classified  value: '0'  20:  name: priority_warning  value: '0'  9:  name: retry  value: '60'  3:  name: title  value: '{ALERT.SUBJECT}'  0:  name: token  value: '<PUSHOVER TOKEN HERE>'  7:  name: triggerid  value: '{TRIGGER.ID}'  4:  name: url  value: '{$ZABBIX.URL}'  5:  name: url_title  value: Zabbix  1:  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}

要素のタグ

要素のタグの値は下表のとおりです。

Element Element プロパティ 必須 レンジ1 説明
media_types - Root element for media_types.
name x string Media type name.
type x string 0 - EMAIL
1 - SMS
2 - SCRIPT
4 - WEBHOOK
Transport used by the media type.
status - string 0 - ENABLED (default)
1 - DISABLED
Whether the media type is enabled.
max_sessions - integer Possible values for SMS: 1 - (default)

Possible values for other media types: 0-100, 0 - unlimited
The maximum number of alerts that can be processed in parallel.
attempts - integer 1-10 (default: 3) The maximum number of attempts to send an alert.
attempt_interval - string 0-60s (default: 10s) The interval between retry attempts.

Accepts seconds and time unit with suffix.
description - string Media type description.
message_templates - Root element for media type message templates.
event_source x string 0 - TRIGGERS
1 - DISCOVERY
2 - AUTOREGISTRATION
3 - INTERNAL
Event source.
operation_mode x string 0 - PROBLEM
1 - RECOVERY
2 - UPDATE
Operation mode.
subject - string Message subject.
message - string Message body.
Used only by e-mail media type
smtp_server x string SMTP server.
smtp_port - integer Default: 25 SMTP server port to connect to.
smtp_helo x string SMTP helo.
smtp_email x string Email address from which notifications will be sent.
smtp_security - string 0 - NONE (default)
1 - STARTTLS
2 - SSL_OR_TLS
SMTP connection security level to use.
smtp_verify_host - string 0 - NO (default)
1 - YES
SSL verify host for SMTP. Optional if smtp_security is STARTTLS or SSL_OR_TLS.
smtp_verify_peer - string 0 - NO (default)
1 - YES
SSL verify peer for SMTP. Optional if smtp_security is STARTTLS or SSL_OR_TLS.
smtp_authentication - string 0 - NONE (default)
1 - PASSWORD
SMTP authentication method to use.
username - string Username.
password - string Authentication password.
content_type - string 0 - TEXT
1 - HTML (default)
Message format.
Used only by SMS media type
gsm_modem x string Serial device name of the GSM modem.
Used only by script media type
script name x string Script name.
parameters - Root element for script parameters.
Used only by webhook media type
script x string Script.
timeout - string 1-60s (default: 30s) Javascript script HTTP request timeout interval.
process_tags - string 0 - NO (default)
1 - YES
Whether to process returned tags.
show_event_menu - string 0 - NO (default)
1 - YES
If {EVENT.TAGS.*} were successfully resolved in event_menu_url and event_menu_name fields, this field indicates presence of entry in the event menu.
event_menu_url - string URL of the event menu entry. Supports {EVENT.TAGS.*} macro.
event_menu_name - string Name of the event menu entry. Supports {EVENT.TAGS.*} macro.
parameters - Root element for webhook media type parameters.
name x string Webhook parameter name.
value - string Webhook parameter value.

Email

The following additional elements are exported only for the Email media type.

Element Type Description
provider string Email provider.
smtp_server string SMTP server.
smtp_port integer SMTP server port to connect to.
Default: 25.
smtp_helo string SMTP helo.
smtp_email string Email address from which notifications will be sent.
smtp_security string SMTP connection security level to use.
Possible values:1 NONE (0, default), STARTTLS (1), SSL_OR_TLS (2).
smtp_verify_host string SSL verify host for SMTP.
Possible values:1 NO (0, default), YES (1).
smtp_verify_peer string SSL verify peer for SMTP.
Possible values:1 NO (0, default), YES (1).
smtp_authentication string SMTP authentication method to use.
Possible values:1 NONE (0, default), PASSWORD (1).
username string Username.
password string Authentication password.
message_format string Message format.
Possible values:1 TEXT (0), HTML (1, default).

See also: Media type object (refer to the relevant property with a matching name).

SMS

The following additional elements are exported only for the SMS media type.

Element Type Description
gsm_modem string (required) Serial device name of the GSM modem.

See also: Media type object (refer to the relevant property with a matching name).

Script

The following additional elements are exported only for the Script media type.

Element Type Description
script name string (required) Script name.
parameters Root element for script parameters.
sortorder string (required) Order of the script parameters passed to the script as command-line arguments.
value string Script parameter value.

See also: Media type object (refer to the relevant property with a matching name).

Webhook

The following additional elements are exported only for the Webhook media type.

Element Type Description
script string Script.
timeout string Javascript script HTTP request timeout interval.
Possible values:1 1-60s (default: 30s).
process_tags string Whether to process returned tags.
Possible values:1 NO (0, default), YES (1).
show_event_menu string Indicates the presence of an entry in the event menu if the {EVENT.TAGS.*} macro was successfully resolved in event_menu_url and event_menu_name fields.
Possible values:1 NO (0, default), YES (1).
event_menu_url string URL of the event menu entry. Supports {EVENT.TAGS.*} macro.
event_menu_name string Name of the event menu entry. Supports {EVENT.TAGS.*} macro.
parameters Root element for webhook media type parameters.
name string (required) Webhook parameter name.
value string Webhook parameter value.

See also: Media type object (refer to the relevant property with a matching name).

脚注

1 文字列値については、文字列のみがエクスポートされ(例:"EMAIL "など) 、この表で使用される番号付けは行われません。
このテーブルの範囲値(API値に対応)の番号は、順序付けのためにのみ使用されます。