mediatype.get

描述

integer/array mediatype.get(object parameters)

该方法允许根据给定的参数检索媒介类型。

此方法可供任何类型的用户使用(自 Zabbix 7.0.6 起支持 User 类型用户)。 调用此方法的权限可以在用户角色设置中撤销。 更多信息请参见 User roles

参数

(object) 定义期望输出的参数。

该方法支持以下参数。

当请求媒体类型的用户相关信息时,管理员类型用户(自Zabbix 7.0.4起)和用户类型用户(自Zabbix 7.0.9起)只能检索关于自身用户的数据。 示例参见管理员身份检索媒体类型

参数 数据类型 描述
mediatypeids ID/array 仅返回具有指定ID的媒体类型。
mediaids ID/array 仅返回由指定媒介使用的媒体类型。
userids ID/array 仅返回由指定用户使用的媒体类型。
selectActions query 返回包含使用该媒体类型的操作的actions属性。
selectMessageTemplates query 返回包含媒体类型消息array的message_templates属性。

参数行为:
- 超级管理员类型用户支持(自Zabbix 7.0.4起)
selectUsers query 返回包含使用该媒体类型的用户的users属性。

用户类型限制参见user.get
sortfield string/array 按指定属性排序结果。

可选值:mediatypeid
filter object 仅返回完全匹配过滤条件的结果。

接受一个object,其中键为属性名,值为单个值或用于匹配的array。

不支持text类型的数据类型属性。

管理员类型用户(自Zabbix 7.0.4起)和用户类型用户(自Zabbix 7.0.6起)可用的Media type object属性:mediatypeid, name, type, status, maxattempts
output query 需要返回的Media type object属性。

管理员类型用户(自Zabbix 7.0.4起)和用户类型用户(自Zabbix 7.0.6起)只能检索以下属性:mediatypeid, name, type, status, maxattempts, description。示例参见管理员身份检索媒体类型

默认值:extend
search object 返回匹配指定模式的结果(不区分大小写)。

接受一个object,其中键为属性名,值为要搜索的字符串。如果未指定额外选项,将执行LIKE "%…%"搜索。

仅支持stringtext类型的数据类型属性。

管理员类型用户(自Zabbix 7.0.4起)和用户类型用户(自Zabbix 7.0.6起)可用的Media type object属性:name, description
countOutput boolean 这些参数在通用get方法参数中有描述。
editable boolean
excludeSearch boolean
limit integer
preservekeys boolean
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

返回值

(integer/array) 返回以下之一:

  • array 的 objects;
  • 如果使用了 countOutput 参数,则为检索到的 objects 的数量。

示例

检索媒介类型

检索所有配置的媒介类型。以下示例返回两种媒介类型:

  • 电子邮件媒介类型;
  • 短信(SMS)媒介类型。

执行请求:

{
           "jsonrpc": "2.0",
           "method": "mediatype.get",
           "params": {
               "output": "extend",
               "selectMessageTemplates": "extend"
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "mediatypeid": "1",
                   "type": "0",
                   "name": "Email",
                   "smtp_server": "mail.example.com",
                   "smtp_helo": "example.com",
                   "smtp_email": "[email protected]",
                   "exec_path": "",
                   "gsm_modem": "",
                   "username": "",
                   "passwd": "",
                   "status": "0",
                   "smtp_port": "25",
                   "smtp_security": "0",
                   "smtp_verify_peer": "0",
                   "smtp_verify_host": "0",
                   "smtp_authentication": "0",
                   "maxsessions": "1",
                   "maxattempts": "3",
                   "attempt_interval": "10s",
                   "message_format": "0",
                   "script": "",
                   "timeout": "30s",
                   "process_tags": "0",
                   "show_event_menu": "1",
                   "event_menu_url": "",
                   "event_menu_name": "",
                   "description": "",
                   "provider": "0",
                   "message_templates": [
                       {
                           "eventsource": "0",
                           "recovery": "0",
                           "subject": "Problem: {EVENT.NAME}",
                           "message": "Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}"
                       },
                       {
                           "eventsource": "0",
                           "recovery": "1",
                           "subject": "Resolved: {EVENT.NAME}",
                           "message": "Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\n\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}"
                       },
                       {
                           "eventsource": "0",
                           "recovery": "2",
                           "subject": "Updated problem: {EVENT.NAME}",
                           "message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}."
                       },
                       {
                           "eventsource": "1",
                           "recovery": "0",
                           "subject": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
                           "message": "Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}"
                       },
                       {
                           "eventsource": "2",
                           "recovery": "0",
                           "subject": "Autoregistration: {HOST.HOST}",
                           "message": "Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}"
                       }
                   ],
                   "parameters": []
               },
               {
                   "mediatypeid": "3",
                   "type": "2",
                   "name": "SMS",
                   "smtp_server": "",
                   "smtp_helo": "",
                   "smtp_email": "",
                   "exec_path": "",
                   "gsm_modem": "/dev/ttyS0",
                   "username": "",
                   "passwd": "",
                   "status": "0",
                   "smtp_port": "25",
                   "smtp_security": "0",
                   "smtp_verify_peer": "0",
                   "smtp_verify_host": "0",
                   "smtp_authentication": "0",
                   "maxsessions": "1",
                   "maxattempts": "3",
                   "attempt_interval": "10s",
                   "message_format": "1",
                   "script": "",
                   "timeout": "30s",
                   "process_tags": "0",
                   "show_event_menu": "1",
                   "event_menu_url": "",
                   "event_menu_name": "",
                   "description": "",
                   "provider": "0",
                   "message_templates": [
                       {
                           "eventsource": "0",
                           "recovery": "0",
                           "subject": "",
                           "message": "{EVENT.SEVERITY}: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                       },
                       {
                           "eventsource": "0",
                           "recovery": "1",
                           "subject": "",
                           "message": "RESOLVED: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                       },
                       {
                           "eventsource": "0",
                           "recovery": "2",
                           "subject": "",
                           "message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}"
                       },
                       {
                           "eventsource": "1",
                           "recovery": "0",
                           "subject": "",
                           "message": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
                       },
                       {
                           "eventsource": "2",
                           "recovery": "0",
                           "subject": "",
                           "message": "Autoregistration: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}"
                       }
                   ],
                   "parameters": []
               }
           ],
           "id": 1
       }

管理员身份检索媒介类型

作为 Admin 类型用户,检索所有处于启用状态的媒介类型,并列出使用这些媒介类型的用户。 以下示例返回了两种媒介类型:

  • 电子邮件媒介类型,包含一个用户(由于 Zabbix 7.0.4,仅 Admin 类型用户自己的用户);
  • 短信媒介类型,没有用户。

执行请求:

{
           "jsonrpc": "2.0",
           "method": "mediatype.get",
           "params": {
               "output": "extend",
               "filter": {
                   "status": 0
               },
               "selectUsers": "extend"
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "mediatypeid": "1",
                   "type": "0",
                   "name": "Email",
                   "status": "0",
                   "description": "",
                   "maxattempts": "3",
                   "users": [
                       {
                           "userid": "3",
                           "username": "database-admin",
                           "name": "John",
                           "surname": "Doe",
                           "url": "",
                           "autologin": "0",
                           "autologout": "0",
                           "lang": "default",
                           "refresh": "30s",
                           "theme": "default",
                           "attempt_failed": "0",
                           "attempt_ip": "",
                           "attempt_clock": "0",
                           "rows_per_page": "50",
                           "timezone": "default",
                           "roleid": "2",
                           "provisioned": "0"
                       }
                   ]
               },
               {
                   "mediatypeid": "3",
                   "type": "2",
                   "name": "SMS",
                   "status": "0",
                   "description": "",
                   "maxattempts": "3",
                   "users": []
               }
           ],
           "id": 1
       }

检索脚本和网络钩子媒介类型

以下示例返回三种媒介类型:

  • 带参数的脚本媒介类型;
  • 不带参数的脚本媒介类型;
  • 带参数的 webhook 媒介类型。

执行请求:

{
           "jsonrpc": "2.0",
           "method": "mediatype.get",
           "params": {
               "output": ["mediatypeid", "name", "parameters"],
               "filter": {
                   "type": [1, 4]
               }
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "mediatypeid": "10",
                   "name": "Script with parameters",
                   "parameters": [
                       {
                           "sortorder": "0",
                           "value": "{ALERT.SENDTO}"
                       },
                       {
                           "sortorder": "1",
                           "value": "{EVENT.NAME}"
                       },
                       {
                           "sortorder": "2",
                           "value": "{ALERT.MESSAGE}"
                       },
                       {
                           "sortorder": "3",
                           "value": "Zabbix alert"
                       }
                   ]
               },
               {
                   "mediatypeid": "13",
                   "name": "Script without parameters",
                   "parameters": []
               },
               {
                   "mediatypeid": "11",
                   "name": "Webhook",
                   "parameters": [
                       {
                           "name": "alert_message",
                           "value": "{ALERT.MESSAGE}"
                       },
                       {
                           "name": "event_update_message",
                           "value": "{EVENT.UPDATE.MESSAGE}"
                       },
                       {
                           "name": "host_name",
                           "value": "{HOST.NAME}"
                       },
                       {
                           "name": "trigger_description",
                           "value": "{TRIGGER.DESCRIPTION}"
                       },
                       {
                           "name": "trigger_id",
                           "value": "{TRIGGER.ID}"
                       },
                       {
                           "name": "alert_source",
                           "value": "Zabbix"
                       }
                   ]
               }
           ],
           "id": 1
       }

另请参阅

来源

CMediaType::get() 在 ui/include/classes/api/services/CMediaType.php 中。