创建

描述

object maintenance.create(object/array maintenances)

此方法允许您创建新的维护。

此方法仅适用于 Admin 和 Super admin 用户类型。调用该方法的权限可以在用户角色 设置中撤销。有关更多信息,请参见 User roles。

参数

(object/array) 要创建的维护。

除标准维护属性外,该方法还接受以下参数。

参数 类型 描述
groups object/array 要置于维护状态的主机群组。

主机群组只能定义 groupid 属性。

参数行为:
- 如果未设置 hosts,则为必需
hosts object/array 要置于维护状态的主机。

主机只能定义 hostid 属性。

参数行为:
- 如果未设置 groups,则为必需
triggers object/array 要置于维护状态的触发器。

触发器只能定义 triggerid 属性。

参数行为:
- 如果未设置 groups 和 hosts,则为必需
- 当 maintenance_type=0(收集数据)时支持
event_names object/array 用于定义要置于维护状态的问题的事件名称。

参数行为:
- 当 maintenance_type=0(收集数据)时支持
tags object/array 用于定义要置于维护状态的问题的问题标签。

参数行为:
- 当维护对象的 maintenance_type 设置为“收集数据”时支持
timeperiods object/array 维护时间段。

参数行为:
- 必需

返回值

(object)在maintenanceids属性中返回一个包含所有已被创建的维护模式的对象的ID。返回的IDs的排序与传递的维护模式的IDs顺序一致。

案例

创建维护

创建一个维护,启用主机组(ID 为 "20")的数据采集,并设置问题标签 service:mysqld 和 error。
维护时间必须从 2026 年 3 月 17 日持续到 2027 年 3 月 17 日,每周日 18:00 生效,持续一小时。

请求:

{
    "jsonrpc": "2.0",
    "method": "maintenance.create",
    "params": {
        "name": "Sunday maintenance",
        "active_since": 1773720240,
        "active_till": 1805256240,
        "tags_evaltype": 0,
        "groups": [
            {"groupid": "20"}
        ],
        "timeperiods": [
            {
                "period": 3600,
                "timeperiod_type": 3,
                "start_time": 64800,
                "every": 1,
                "dayofweek": 64
            }
        ],
        "tags": [
            {
                "tag": "service",
                "operator": "0",
                "value": "mysqld"
            },
            {
                "tag": "error",
                "operator": "2",
                "value": ""
            }
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "maintenanceids": [
            "3"
        ]
    },
    "id": 1
}

创建临时维护

为 ID 为 "4" 的主机组、ID 为 "12345" 的触发器以及事件名称 Printer: ink low 创建一个持续一小时且收集数据的临时维护。

请求:

{
    "jsonrpc": "2.0",
    "method": "maintenance.create",
    "params": {
        "name": "Ad-hoc maintenance",
        "active_since": 1792057740,
        "active_till": 1792061340,
        "tags_evaltype": 0,
        "groups": [
            {"groupid": "4"}
        ],
        "triggers": [
            {"triggerid": "12345"}
        ],
        "timeperiods": [
            {
                "period": 3600,
                "timeperiod_type": 0,
                "start_date": 1792057740
            }
        ],
        "event_names": [
            {
                "operator": "2",
                "value": "Printer: ink low"
            }
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "maintenanceids": [
            "4"
        ]
    },
    "id": 1
}

另请参阅

来源

CMaintenance::create() in ui/include/classes/api/services/CMaintenance.php.