可以从工作流中发布警报,以响应工作流中定义的事件。警报操作可以在工作流中创建,也可以使用 BUI 或 CLI 创建。警报必须从工作流中发布。
定制警报可用于帮助强制执行管理策略或合规性。定制警报还可以帮助诊断工作流中的问题。
下表介绍了用户创建定制警报操作和发布定制警报所必须具有的授权。
|
有关向用户授权的说明,请参见配置用户。
使用以下方法之一创建定制警报:
创建警报操作时,指定定制或 custom 事件类别,如以下文档中所述:
在脚本或工作流中使用 createalert 函数。要在脚本中使用 createalert,请参见使用定制警报函数。本节的其余部分介绍了如何在工作流中使用 createalert。
createalert 函数采用以下参数,并返回创建的定制警报操作的 UUID。
|
此示例显示了使用 UUID custom_alert_uuid 创建定制警报的工作流。
var workflow = { name: 'createalert', description: 'Create a Custom Alert', version: '1.0', origin: 'Oracle', alert: false, setid: true, execute: function () { var actions = [{ handler: 'email', args: { address: 'admin@example.com', subject: 'Custom Alert Response' } }]; var createparams = { description: 'createalert from within a workflow' }; var custom_alert_uuid = createalert(actions, createparams); } };
通过使用工作流创建定制警报时,会使警报显示在 BUI 和 CLI 中的警报操作列表中。
通过使用工作流创建定制警报时,将创建审计日志条目,其中包含以下摘要:
Workflow name_of_workflow: created custom alert value_of_custom_alert_uuid
通过使用 BUI 或 CLI 或通过使用 script 命令运行脚本来创建定制警报时,将创建审计日志条目,其中包含以下摘要:
Created custom alert value_of_custom_alert_uuid
使用 postalert 函数从工作流中发布定制警报,以响应该工作流中发生的事件。
虽然可使用 script 命令从脚本中调用 createalert 函数,但是只能从工作流定义中调用 postalert 函数。
postalert 函数采用与 createalert 函数相同的参数,第一个参数除外:createalert 采用处理程序或警报操作的列表,而 postalert 采用要发布的警报的 UUID。有关其他参数的说明,请参见表 161, createalert 函数的参数。
对 createalert 可选的参数值(severity、response、impact 和 action)对于 postalert 不是可选的。对于 postalert 调用,根据以下规则确定这些值:
如果可选参数的值提供给 createalert,但未提供给该 UUID 的 postalert 调用,则 postalert 调用从相应 createalert 调用继承那些参数值。
如果可选参数的值未提供给 createalert,但提供给该 UUID 的 postalert 调用,则 postalert 调用使用在 postalert 调用中指定的那些值。
如果可选参数的值同时提供给 createalert 和相应的 postalert,则每个调用使用在该调用中指定的参数值。
如果可选参数的值未提供给 createalert 或相应的 postalert,则一条错误消息将指示用户为 postalert 调用提供值。
postalert 函数返回发布的定制警报的 UUID。
示例 19 从工作流中创建和发布定制警报此示例发布在示例 18, 从工作流中创建定制警报中创建的警报。postalert 调用是对工作流中发生的事件的响应。在此示例中,省略了用于定义在 postalert 调用之前发生的事件的代码。
var workflow = { name: 'createalert and postalert', description: 'Create and Post a Custom Alert', version: '1.0', origin: 'Oracle', alert: false, setid: true, execute: function () { var actions = [{ 'handler': 'resume_dataset', 'args': { 'dataset': 'dataset_to_resume' } }]; var createparams = { description: 'createalert and postalert from within a workflow' }; var postparams = { severity: 'Minor', description: 'postalert from within a workflow', response: 'The alert action resumes dataset dataset_to_resume', impact: 'What happened to the appliance', recommended_action: 'What the administrator should do' }; var custom_alert_uuid = createalert(actions, createparams); var posted_alert_uuid = postalert(custom_alert_uuid, postparams); } };
执行调用 postalert 函数的工作流时,将创建警报日志条目,其中包含以下摘要:
Custom: name_of_workflow示例 20 使用现有警报操作 UUID 发布定制警报
您可能希望使用现有定制警报的 UUID 作为 postalert 函数的第一个参数,而不是增加同一警报操作的副本。
使用 BUI、CLI、脚本、工作流或 RESTful API 创建定制警报操作。
使用 BUI、CLI 或审计日志检索定制警报操作的 UUID。
使用检索到的 UUID 作为 postalert 函数的第一个参数。
var workflow = { name: 'postalert', description: 'Post a Custom Alert using existing uuid', version: '1.0', origin: 'Oracle', alert: false, setid: true, execute: function () { var postparams = { severity: 'Minor', description: 'postalert from within a workflow', response: 'What the system will do', impact: 'What happened to the appliance', recommended_action: 'What the administrator should do' }; var posted_alert_uuid = postalert('uuid_of_existing_custom_alert', postparams); } };