使用ARMS告警管理集成多个告警源后,您可以通过设置事件处理流将告警源产生的事件进行过滤和分类。本文介绍如何创建事件处理流。
新建事件处理流
- 登录ARMS控制台。
- 在左侧导航栏中选择告警管理 > 事件处理流。
- 在事件处理流页面单击右上角的新建处理流。
- 在新建处理流页面的基本信息区域输入处理流名称。
- 在流动作配置区域设置事件处理流程。
- 将可用流程动作区域的动作拖至事件处理流区域。
- 在最右侧区域设置事件处理流中各动作的执行条件。
说明 动作配置完成后可以在 测试数据区域对告警字段进行测试,验证动作是否配置成功。
动作 说明 示例 触发条件 满足触发条件的事件才会执行当前处理流。 场景 名称为容器CPU使用率告警的集成执行当前处理流。
动作配置
设置条件为
_aliyun_arms_integration_name等于容器CPU使用率告警
。过滤事件 满足过滤条件的事件将会跳过当前事件流,执行下一个事件流,未过滤的事件将会继续执行当前处理流。 说明 如果您的告警规则还未产生事件,此时只能选择到ARMS预置的_aliyun_arms_integration_id
和_aliyun_arms_integration_name
字段进行配置。如果您需要使用severity、alertname等事件字段,可以通过以下两种方式配置:- 手动输入字段。
- 添加告警规则,使其产生告警事件。产生事件后,即可以在此选择事件字段值。
场景 P4等级的告警事件不执行当前处理流。
动作配置
设置条件为
severity等于P4
。识别事件类型 根据选择的事件字段值,通过算法识别出事件对象分类(Class)和事件类型(Type),用于事件和告警查询统计。 支持识别的事件对象分类(Class)如下:- 网络(Network)
- 存储(Storage)
- 计算(Compute)
- 操作系统(OS)
- 应用(Application)
- 数据库(Database)
- 变更(Change)
支持识别的事件类型(Type)如下:- 可用性(Availability)
- 时延
- 容量(Capacity)
- 错误
- 未知(Unknown)
场景 通过
alertname
和message
字段值识别事件的对象分类(Class)和事件类型(Type)。动作配置
设置识别分类字段为
alertname
和message
。执行结果
系统会将智能识别结果写入
class
和type
标签。设置事件等级 将执行当前处理流的事件等级设置为特定值。 场景 将核心服务网络类型的告警事件的等级设置为P1。
动作配置
- 设置触发条件动作为
class等于network
。 - 将设置事件等级动作设置为P1。
执行结果
设置业务标签 为执行当前处理流的事件设置业务标签(Label),用于事件和告警统计查询。 - 字段:将事件中的字段值作为
label
字段值。 - 值:为
label
字段设置固定值。
场景 将告警等级作为告警标签,以便之后统计各等级的事件。
动作配置
设置业务标签为
字段:severity
。执行结果
告警事件中将会新增
label
字段,label
字段值为severity
字段值。删除字段 删除事件中的某些字段。 场景 告警事件中存在
location
和region
字段,location
字段中已包含Region信息,需要删除region
字段。动作配置
设置删除字段为
region
。提取内容 通过正则表达式,提取事件中某字段的内容,填充到新的字段中。 场景 告警字段:"location":"cn-hangzhou-hz4"
提取
location
字段的地域和具体位置信息填充到region
和datacenter
字段中。动作配置
- 待提取字段:
location
- 提取正则表达式:
([a-zA-z]+-[a-zA-z]+)-(.*)
- 填充的字符:
region
、datacenter
执行结果
匹配更新 当系统检测到事件的指定字段中存在某段内容时,就将设置的字段值填充到目标字段中。 场景 告警字段:"message":"ping to i-bp1e42d0ydxf7pstuepz > 100ms"
当
message
中包含ping
时表示当前事件为网络事件,则需要将当前事件标记为网络类型。动作配置
- 匹配字段:
message
- 满足下面条件时更新字段值:包含
ping
输出network
说明 包含的值可以使用实际字段值或正则表达式。 - 填充到字段:
class
执行结果
替换内容 查找并替换指定字段中的字段内容,可以正则表达式查找对指定字段内容。 场景 将告警事件中的
d.b.
字符串替换为database
字符串。动作配置
- 需要替换的内容片段:
message
- 将内容片段:
d\.b\.
说明 可以使用实际字段值或正则表达式。 - 替换为:
database
执行结果
分割内容 通过分割字符对字段进行拆分,拆分结果填充到多个目标字段中。 场景 告警字段:"message":"myhostid_myuserid_myruleid"
将
message
字段中的字段值拆分为hostid
、userid
、ruleid
并分别填充到新的字段中。动作配置
- 需要拆分的字段:
message
- 分割字符:
_
- 拆分结果填充字段:
hostId
、userId
、ruleId
说明 拆分后的字段将会按照顺序填充。
执行结果
填充模板 填入一段模版内容(如:类型 ${class}
的事件来源是${source}
),变量名为事件集成后的字段名,模版渲染后填充到目标字段中。场景 告警字段:"source":"server", "class":"network"
将
message
字段设置为类型${class}的事件来源是${source}
,其中需要引用class
和source
字段值。动作配置
- 填充的模板:
类型${class}的事件来源是${source}
- 填充到字段:
message
执行结果
丢弃 丢弃执行当前处理流的事件,丢弃动作只能作为当前事件处理流最后一个节点,且无需设置。 无
- 在测试数据区域左侧输入测试字段和字段值,或者单击从事件中选择,从已有的告警事件中选择测试事件,然后单击点击测试。
- 设置完成后,单击保存。
处理流新建完成后,集成的告警源将会按处理流顺序完成事件的过滤,过滤后的事件可以在告警事件历史页面查看。更多信息,请参见 查看告警事件历史。
管理事件处理流
事件流创建完成后,您可以在事件处理流页面执行以下操作:
- 调整处理流顺序:在目标处理流右侧操作列单击上移或下移。
- 启动或禁用处理流:在目标处理流右侧操作列单击启用或停止。
- 更新处理流:在目标处理流右侧操作列单击编辑。
- 删除处理流:在目标处理流右侧操作列单击删除,在弹出的对话框中单击确认。
查看处理后的告警事件
在控制台左侧导航栏选择告警管理 > 告警事件历史。
在告警事件历史页面可以查看所有告警事件,单击事件名称可以查看Zabbix告警事件的详细信息。更多信息,请参见查看告警事件历史。