获取

描述

integer/array mediatype.get(object parameters)

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

任何类型的用户都可以使用此方法。 调用该方法的权限可在用户角色设置中撤销。 更多信息请参见 用户角色

参数

(object) 定义所需输出的参数。

该方法支持以下参数。

请求媒体类型的用户相关信息时,AdminUser 类型的用户只能检索其自身用户的数据。 示例请参见Admin 身份检索媒体类型

参数 类型 描述
mediatypeids ID/array 仅返回具有给定 ID 的媒体类型。
mediaids ID/array 仅返回被给定媒介使用的媒体类型。
userids ID/array 仅返回被给定用户使用的媒体类型。
selectActions query 返回一个 actions 属性,其中包含使用该媒体类型的动作。
selectMessageTemplates query 返回一个 message_templates 属性,其中包含媒体类型消息数组。

参数行为
- 对 Super admin 类型用户支持
selectUsers query 返回一个 users 属性,其中包含使用该媒体类型的用户。

有关基于用户类型的限制,请参见 user.get
sortfield string/array 按给定属性对结果进行排序。

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

接受一个对象,其中键为属性名称,值为单个值或用于匹配的值数组。

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

AdminUser 类型用户可用的 媒体类型对象 属性:mediatypeidnametypestatusmaxattempts
output query 要返回的媒体类型对象属性。

AdminUser 类型用户只能检索以下属性:mediatypeidnametypestatusmaxattemptsdescription。示例请参见Admin 身份检索媒体类型

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

接受一个对象,其中键为属性名称,值为要搜索的字符串。如果未提供其他选项,将执行 LIKE "%…%" 搜索。

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

AdminUser 类型用户可用的 媒体类型对象 属性:namedescription
countOutput boolean 这些参数在参考说明中进行了描述。
editable boolean
excludeSearch boolean
limit integer
preservekeys boolean
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

返回值

(整型/数组) 返回其中之一:

  • 一个对象数组;
  • 如果使用countOutput参数,返回被检索对象的数量。

示例

获取媒体类型

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

  • email 媒体类型;
  • 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": "问题开始于 {EVENT.TIME},日期为 {EVENT.DATE}\r\n问题名称:{EVENT.NAME}\r\n主机:{HOST.NAME}\r\n严重性:{EVENT.SEVERITY}\r\n运行数据:{EVENT.OPDATA}\r\n原始问题 ID:{EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "Resolved: {EVENT.NAME}",
                    "message": "问题已于 {EVENT.RECOVERY.TIME},日期为 {EVENT.RECOVERY.DATE} 解决\r\n问题名称:{EVENT.NAME}\r\n主机:{HOST.NAME}\r\n严重性:{EVENT.SEVERITY}\r\n\r\n原始问题 ID:{EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "Updated problem: {EVENT.NAME}",
                    "message": "{USER.FULLNAME} 于 {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME} {EVENT.UPDATE.ACTION} 了问题。\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\n当前问题状态为 {EVENT.STATUS},已确认:{EVENT.ACK.STATUS}。"
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
                    "message": "发现规则:{DISCOVERY.RULE.NAME}\r\n\r\n设备 IP:{DISCOVERY.DEVICE.IPADDRESS}\r\n设备 DNS:{DISCOVERY.DEVICE.DNS}\r\n设备状态:{DISCOVERY.DEVICE.STATUS}\r\n设备运行时间:{DISCOVERY.DEVICE.UPTIME}\r\n\r\n设备服务名称:{DISCOVERY.SERVICE.NAME}\r\n设备服务端口:{DISCOVERY.SERVICE.PORT}\r\n设备服务状态:{DISCOVERY.SERVICE.STATUS}\r\n设备服务运行时间:{DISCOVERY.SERVICE.UPTIME}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "Autoregistration: {HOST.HOST}",
                    "message": "主机名:{HOST.HOST}\r\n主机 IP:{HOST.IP}\r\nagent 端口:{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\n主机:{HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "",
                    "message": "已解决:{EVENT.NAME}\r\n主机:{HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "",
                    "message": "{USER.FULLNAME} 于 {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME} {EVENT.UPDATE.ACTION} 了问题"
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "",
                    "message": "发现:{DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "",
                    "message": "自动注册:{HOST.HOST}\r\n主机 IP:{HOST.IP}\r\nagent 端口:{HOST.PORT}"
                }
            ],
            "parameters": []
        }
    ],
    "id": 1
}

Admin 身份检索媒体类型

作为 Admin 类型用户,检索所有已启用的媒体类型,以及使用这些媒体类型的用户。 以下示例返回两种媒体类型:

  • 电子邮件媒体类型,包含一个用户(仅 Admin 类型用户自己的用户);
  • SMS 媒体类型,不包含任何用户。

请求

{
    "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 媒介类型

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

  • 带参数的脚本媒介类型;
  • 不带参数的脚本媒介类型;
  • 带参数的 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
}

参见

来源

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