使用ARMS告警管理集成多个告警源后,您可以通过设置事件处理流将告警源产生的事件进行过滤和分类。本文介绍如何创建事件处理流。

新建事件处理流

  1. 登录ARMS控制台
  2. 在左侧导航栏中选择告警管理 > 事件处理流
  3. 事件处理流页面单击右上角的新建处理流
  4. 新建处理流页面的基本信息区域输入处理流名称。
  5. 流动作配置区域设置事件处理流程。
    1. 可用流程动作区域的动作拖至事件处理流区域。
    2. 在最右侧区域设置事件处理流中各动作的执行条件。
      说明 动作配置完成后可以在测试数据区域对告警字段进行测试,验证动作是否配置成功。
      动作 说明 示例
      触发条件 满足触发条件的事件才会执行当前处理流。 场景

      名称为容器CPU使用率告警的集成执行当前处理流。

      动作配置

      设置条件为_aliyun_arms_integration_name等于容器CPU使用率告警

      处理流触发条件
      过滤事件 满足过滤条件的事件将会跳过当前事件流,执行下一个事件流,未过滤的事件将会继续执行当前处理流。 场景

      P4等级的告警事件不执行当前处理流。

      动作配置

      设置条件为severity等于P4

      处理流过滤事件
      识别事件类型 根据选择的事件字段值,通过算法识别出事件对象分类(Class)和事件类型(Type),用于事件和告警查询统计。
      支持识别的事件对象分类(Class)如下:
      • 网络(Network)
      • 存储(Storage)
      • 计算(Compute)
      • 操作系统(OS)
      • 应用(Application)
      • 数据库(Database)
      • 变更(Change)
      支持识别的事件类型(Type)如下:
      • 可用性(Availability)
      • 时延
      • 容量(Capacity)
      • 错误
      • 未知(Unknown)
      场景

      通过alertnamemessage字段值识别事件的对象分类(Class)和事件类型(Type)。

      动作配置

      设置识别分类字段alertnamemessage

      处理流识别字段类型

      执行结果

      系统会将智能识别结果写入classtype标签。

      识别事件类型执行结果
      设置事件等级 将执行当前处理流的事件等级设置为特定值。 场景

      将核心服务网络类型的告警事件的等级设置为P1。

      动作配置

      1. 设置触发条件动作为class等于network
      2. 设置事件等级动作设置为P1。处理流设置事件等级

      执行结果

      设置事件等级测试数据
      设置业务标签 为执行当前处理流的事件设置业务标签(Label),用于事件和告警统计查询。
      • 字段:将事件中的字段值作为label字段值。
      • 值:为label字段设置固定值。
      场景

      将告警等级作为告警标签,以便之后统计各等级的事件。

      动作配置

      设置业务标签为字段:severity

      处理流设置业务标签

      执行结果

      告警事件中将会新增label字段,label字段值为severity字段值。

      删除字段 删除事件中的某些字段。 场景

      告警事件中存在locationregion字段,location字段中已包含Region信息,需要删除region字段。

      动作配置

      设置删除字段为region

      处理流删除字段
      提取内容 通过正则表达式,提取事件中某字段的内容,填充到新的字段中。 场景
      告警字段:
      "location":"cn-hangzhou-hz4"

      提取location字段的地域和具体位置信息填充到regiondatacenter字段中。

      动作配置

      • 待提取字段:location
      • 提取正则表达式:([a-zA-z]+-[a-zA-z]+)-(.*)
      • 填充的字符:regiondatacenter
      处理流提取内容

      执行结果

      提前内容测试数据
      匹配更新 当系统检测到事件的指定字段中存在某段内容时,就将设置的字段值填充到目标字段中。 场景
      告警字段:
      "message":"ping to i-bp1e42d0ydxf7pstuepz > 100ms"

      message中包含ping时表示当前事件为网络事件,则需要将当前事件标记为网络类型。

      动作配置

      • 匹配字段:message
      • 满足下面条件时更新字段值:包含ping输出network
        说明 包含的值可以使用实际字段值或正则表达式。
      • 填充到字段:class
      处理流匹配更新

      执行结果

      匹配更新测试数据
      替换内容 查找并替换指定字段中的字段内容,可以正则表达式查找对指定字段内容。 场景

      将告警事件中的d.b.字符串替换为database字符串。

      动作配置

      • 需要替换的内容片段:message
      • 将内容片段:d\.b\.
        说明 可以使用实际字段值或正则表达式。
      • 替换为:database
      处理流替换内容

      执行结果

      内容替换测试数据
      分割内容 通过分割字符对字段进行拆分,拆分结果填充到多个目标字段中。 场景
      告警字段:
      "message":"myhostid_myuserid_myruleid"

      message字段中的字段值拆分为hostiduseridruleid并分别填充到新的字段中。

      动作配置

      • 需要拆分的字段:message
      • 分割字符:_
      • 拆分结果填充字段:hostIduserIdruleId
        说明 拆分后的字段将会按照顺序填充。
      处理流分割内容

      执行结果

      分割内容测试数据
      填充模板 填入一段模版内容(如:类型${class}的事件来源是${source}),变量名为事件集成后的字段名,模版渲染后填充到目标字段中。 场景
      告警字段:
      "source":"server",
      "class":"network"

      message字段设置为类型${class}的事件来源是${source},其中需要引用classsource字段值。

      动作配置

      • 填充的模板:类型${class}的事件来源是${source}
      • 填充到字段:message
      处理流填充模板

      执行结果

      填充模板测试数据
      丢弃 丢弃执行当前处理流的事件,丢弃动作只能作为当前事件处理流最后一个节点,且无需设置。
  6. 测试数据区域左侧输入测试字段和字段值,或者单击从事件中选择,从已有的告警事件中选择测试事件,然后单击点击测试
  7. 设置完成后,单击保存
    处理流新建完成后,集成的告警源将会按处理流顺序完成事件的过滤,过滤后的事件可以在告警事件历史页面查看。更多信息,请参见查看告警事件历史

管理事件处理流

事件流创建完成后,您可以在事件处理流页面执行以下操作:

  • 调整处理流顺序:在目标处理流右侧操作列单击上移下移
  • 启动或禁用处理流:在目标处理流右侧操作列单击启用停止
  • 更新处理流:在目标处理流右侧操作列单击编辑
  • 删除处理流:在目标处理流右侧操作列单击删除,在弹出的对话框中单击确认

查看处理后的告警事件

在控制台左侧导航栏选择告警管理 > 告警事件历史

告警事件历史页面可以查看所有告警事件,单击事件名称可以查看Zabbix告警事件的详细信息。更多信息,请参见查看告警事件历史