Go to main content

Oracle® ZFS Storage Appliance RESTful API 指南,发行版 OS8.8.x

退出打印视图

更新时间: 2021 年 8 月
 
 

警报操作

警报操作是对事件警报的响应。要创建警报操作,请指定一个或多个事件,并指定在为该事件发送警报时要执行的一个或多个操作(如发送电子邮件或执行工作流)。可以为任何特定事件警报指定多个警报操作。

category 属性指定将针对其执行警报操作的事件的类别。每个类别包括一个或多个事件。创建或列出警报操作时,将列出每个类别中的事件。默认情况下,将对类别中的所有事件执行警报操作。如果仅应对一部分事件执行该警报操作,请将表示不应导致执行该警报操作的事件的属性值更改为 false

下表介绍了可以指定的事件类别。

表 8  警报操作事件类别
类别
说明
ad
Active Directory 或 SMB Kerberos 客户机验证已降级。
all
高级别事件,例如所有警报或缺陷、服务警报和硬件故障。
analytics
高级别事件,例如数据集自动暂停警告、超过总内存以及超过使用量。有关特定 Analytics(分析)统计信息的事件,请参见阈值警报
appliance_software
阻止软件更新或导致内核紧急情况的事件。
cloud_snapshot
cluster
群集事件,包括链路故障和对等错误。
custom
在工作流中指定的定制事件的警报操作。请参见定制警报
hardware
设备引导和硬件配置更改。
hardware_faults
任何硬件故障。
ndmp
backup
restore
NDMP TAR/DUMP 备份和恢复的启动和完成事件。
network
网络端口、数据链路和 IP 接口事件与故障。
scrk
支持包上载事件。
replication
replication_source
replication_target
发送和接收事件与故障。
smf
软件服务故障事件。
shadow
迁移错误或迁移完成。
thresholds
可用于向现有阈值事件警报添加操作,如阈值警报中所述。
zfs_pool
存储池事件,包括清理和热空间激活。

handler 属性指定要在发生指定事件时执行的操作类型。handler 的大多数值都要求设置其他属性,如下表中所示。

表 9  警报操作响应类型
响应类型 (handler)
处理程序属性
响应类型说明
email
address
subject
将具有指定主题的电子邮件发送给指定的收件人。
只输入一个收件人,而不是收件人列表。要发送给多个单独的收件人,请为此事件警报创建其他警报操作。
使用 SMTP 服务配置电子邮件的发送方式。请参见列出服务
snmp_trap
发送包含警报详细信息的 SNMP 陷阱。
使用 SNMP 服务配置 SNMP 陷阱目标。请参见列出服务
syslog
将包含警报详细信息的系统消息发送至一个或多个远程系统。
使用 syslog 服务配置系统日志目标。请参见列出服务
有关发送系统日志消息的更多信息,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.x 中的 系统日志配置
resume_dataset
dataset
恢复 Analytics(分析)数据集。对于诊断间歇性的性能问题以及不需要让数据集连续保持启用的其他情况,恢复和暂停数据集可能很有用。
suspend_dataset
dataset
暂停 Analytics(分析)数据集。
resume_worksheet
worksheet
恢复 Analytics(分析)工作表。恢复和暂停工作表可能很有用,其原因与恢复和暂停数据集相同。工作表可能包含很多数据集。
suspend_worksheet
worksheet
暂停 Analytics(分析)工作表。
execute_workflow
workflow
执行指定的工作流。有关符合警报操作条件的工作流的更多信息,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.x 中的 针对警报操作使用工作流

列出所有警报操作

列出所有警报操作时,对于每个警报操作仅列出事件类别以及该类别中的每个事件。要还显示为警报操作定义的响应,请参见列出单个警报操作

获取警报操作的请求示例:

GET /api/alert/v1/actions HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json

结果示例:

HTTP/1.1 200 OK
X-Zfssa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 1395

{
    "actions": [
        {
            "category": "smf",
            "uuid": "actions-uuid1",
            "failed_services": true,
            "degraded_services": true,
            "repaired_services": false,
            "actions": "actions-000",
            "href": "/api/alert/v2/actions/actions-000"
        },
        {
            "category": "analytics",
            "uuid": "actions-uuid2",
            "analytics_datasets_auto-suspend_notify": false,
            "analytics_datasets_auto-suspend_warning": false,
            "analytics_memory_total_exceeded": true,
            "analytics_memory_total_normal": false,
            "analytics_usage_exceeded": true,
            "analytics_usage_normal": false,
            "actions": "actions-001",
            "href": "/api/alert/v2/actions/actions-001"
        }
    ]
}

列出单个警报操作

指定要列出的特定警报操作时,对于该警报操作将列出事件类别、该类别中的每个事件以及每个响应或操作。

以下警报操作具有三个响应,当发生 true 事件之一时,将执行所有这些响应。

请求示例:

GET /api/alert/v1/actions/actions-000 HTTP/1.1

结果示例:

HTTP/1.1 200 OK
X-Zfssa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 331

{
    "actions": {
        "href": "/api/alert/v2/actions/actions-000",
        "category": "smf",
        "uuid": "actions-uuid1",
        "failed_services": true,
        "degraded_services": true,
        "repaired_services": false,
        "action-000": {
            "handler": "email",
            "address": "admin@example.com",
            "subject": "failed or degraded service",
            "href": "/api/alert/v2/actions/actions-000/action-000"
        },
        "action-001": {
            "handler": "email",
            "address": "it-team@example.com",
            "subject": "failed or degraded service",
            "href": "/api/alert/v2/actions/actions-000/action-001"
        },
        "action-002": {
            "handler": "syslog",
            "href": "/api/alert/v2/actions/actions-000/action-002"
        }
    }
}

创建警报操作

创建警报操作时,必须为 category 属性指定值,该属性是要为其定义此定制响应的事件的类别。有关 category 值的列表,请参见表 8, 警报操作事件类别

请求示例:

POST /api/alert/v1/actions HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-Session: uerqghq84vbdv
Content-Type: application/json
Content-Length: 30

{"category": "smf"}

结果示例:

结果中将列出指定事件类别中的所有事件。默认情况下,该类别中的所有事件将导致执行响应操作(这些事件都设置为 true)。

HTTP/1.1 201 Created
X-Zfssa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 118
Location: /api/alert/v1/actions/actions-000

{
    "actions": {
        "href": "/api/alert/v2/actions/actions-000",
        "category": "smf",
        "uuid": "actions-uuid",
        "failed_services": true,
        "degraded_services": true,
        "repaired_services": true
    }
}

修改警报操作

如果指定事件类别中的一些事件不应导致执行响应操作,则将表示这些事件的属性设置为 false

在以下示例中,您可能想要为修复的服务定义与失败或降级的服务不同的响应。

请求示例:

PUT /api/alert/v1/actions/actions-000 HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-Session: uerqghq84vbdv
Content-Type: application/json
Content-Length: 30

{"repaired_services": false}

结果示例:

HTTP/1.1 202 Accepted
X-Zfssa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 195

{
    "actions": {
        "href": "/api/alert/v2/actions/actions-000",
        "category": "smf",
        "uuid": "actions-uuid",
        "failed_services": true,
        "degraded_services": true,
        "repaired_services": false
    }
}

为事件指定响应

默认情况下,会将事件警报记录到警报日志中。上面的几个示例除了发布到警报日志外,还指定要为其定义响应的事件。要定义对这些事件的响应,请为特定警报操作指定 handler 属性的值。有关 handler 值的列表,请参见表 9, 警报操作响应类型

请求示例:

此示例为 actions-000 警报创建向 admin 发送电子邮件的警报操作。

POST /api/alert/v1/actions/actions-000 HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-Session: uerqghq84vbdv
Content-Type: application/json
Content-Length: 68

{"handler": "email", "address": "admin@example.com", "subject": "failed or degraded service"}

结果示例:

HTTP/1.1 201 Created
X-Zfssa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 177
Location: /api/alert/v1/actions/actions-000/action-000

{
    "action": {
        "href": "/api/alert/v1/actions/actions-002/action-000",
        "handler": "email",
        "address": "admin@example.com",
        "subject": "failed or degraded service"
    }
}

要为同一个事件指定其他响应,请针对同一个警报操作再次发出 POST 请求,然后指定一个不同的处理程序,或者指定同一个处理程序并为该处理程序指定不同的参数。如果您在一个请求中指定多个 handler 属性,则将忽略除最后一个 handler 属性以外的所有其他 handler 属性。

以下示例进行了简化。这些请求创建 /api/alert/v1/actions/actions-000/action-001/api/alert/v1/actions/actions-000/action-002,如列出单个警报操作中所示。

POST /api/alert/v1/actions/actions-002 HTTP/1.1
...
{"handler": "email", "address": "it-team@example.com", "subject": "failed or degraded service"}
POST /api/alert/v1/actions/actions-002 HTTP/1.1
...
{"handler": "syslog"}

修改对事件的响应

要修改响应,请为您要修改的响应指定 HREF。

PUT /api/alert/v1/actions/actions-000/action-001 HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-Session: uerqghq84vbdv
Content-Type: application/json
Content-Length: 28

{"address": "it-group@example.com"}

删除对事件的响应

要删除响应,请为您要删除的响应指定 HREF。

DELETE /api/alert/v1/actions/actions-000/action-000 HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-Session: uerqghq84vbdv

HTTP/1.1 204 No Content

删除警报操作

要删除警报操作,请为您要删除的警报操作指定 HREF。

请求示例:

DELETE /api/alert/v1/actions/actions-003 HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215

结果示例:

HTTP/1.1 204 No Content
X-Zfssa-Appliance-Api: 1.0