夜莺是一套开箱即用的一体化监控告警系统。您可以在夜莺控制台上设置报警回调地址为日志服务开放告警的接口地址。设置完成后,夜莺会将告警消息发送到日志服务告警系统中,由日志服务告警系统完成告警降噪、通知等处理。

前提条件

夜莺配置

  1. 登录夜莺控制台。
  2. 在左侧导航栏中,选择策略配置 > 告警策略
  3. 单击目标告警策略。
    目标告警策略相关的告警将接入日志服务告警系统。
  4. 通知配置区域,设置报警回调地址。
    设置报警回调为您在日志服务中创建开放告警服务和应用后生成的接口信息(完整URL)。如何获取,请参见获取接口信息回调地址
  5. 单击保存

夜莺告警消息

夜莺告警消息内容示例如下:

{
    "id": 2,
    "rule_id": 10,
    "rule_name": "我的测试",
    "rule_note": "my desc",
    "hash_id": "59453d81111111110c389673b9466",
    "is_prome_pull": 1,
    "last_sent": true,
    "alert_duration": 60,
    "res_classpaths": "",
    "res_ident": "",
    "priority": 2,
    "status": 0,
    "is_recovery": 1,
    "history_points": [
        {
            "metric": "system_cpu_util",
            "tags": {
                "ident": "192.0.2.0"
            },
            "points": [
                {
                    "t": 1629453245,
                    "v": 1.876676
                }
            ]
        }
    ],
    "trigger_time": 1629453245,
    "values": "[vector={__name__=\"system_cpu_util\", ident=\"127.1.4.51\"}]: [value=1.876676]",
    "notify_channels": "",
    "notify_groups": "",
    "notify_users": "",
    "runbook_url": "",
    "readable_expression": "system_cpu_util{} \u003e 0",
    "tags": "ident=127.1.4.51",
    "notify_group_objs": null,
    "notify_user_objs": null,
    "tag_map": {
        "ident": "127.1.4.51"
    }
}

字段映射

夜莺告警消息被接入到日志服务后,映射为日志服务告警内容。示例如下:

{
    "aliuid": "aliuid1",
    "alert_instance_id": "59453d81111111110c389673b9466",
    "alert_id": "10",
    "alert_type": "sls_pub",
    "alert_name": "我的测试",
    "region": "",
    "project": "sls-alert--",
    "project_id": 0,
    "next_eval_interval": 60,
    "alert_time": 0,
    "fire_time": 1629453245,
    "fire_results": null,
    "fire_results_count": 0,
    "resolve_time": 1630308759,
    "status": "resolved",
    "results": null,
    "labels": {
        "ident": "192.0.2.0"
    },
    "annotations": {
        "__config_app__": "sls_pub_alert",
        "__pub_alert_app__": "appid1",
        "__pub_alert_protocol__": "nightingale",
        "__pub_alert_region__": "e",
        "__pub_alert_service__": "serverid1",
        "desc": "my desc",
        "is_prome_pull": "1",
        "readable_expression": "system_cpu_util{} > 0",
        "title": "我的测试",
        "values": "[vector={__name__=\"system_cpu_util\", ident=\"127.1.4.51\"}]: [value=1.876676]"
    },
    "severity": 6,
    "policy": {
        "alert_policy_id": "",
        "action_policy_id": "",
        "use_default": false,
        "repeat_interval": "0s"
    },
    "drill_down_query": "http://127.0.0.1:8000/event/2"
}

日志服务告警消息内容与夜莺告警消息内容的映射关系如下:

日志服务字段 夜莺字段 说明
aliuid 用于接入告警的开放告警应用所属的阿里云账号ID。
alert_id rule_id 告警监控规则ID。
alert_type 告警类型,固定为sls_pub。
alert_name rule_name 告警监控规则名称。
status 告警状态,包括firing和resolved。
  • 如果夜莺告警消息中的is_recovery字段的值为0,则status的值为firing。
  • 如果夜莺告警消息中的is_recovery字段的值不为0,则status的值为resolved。
next_eval_interval alert_duration 告警评估时间间隔。
alert_time 日志服务接收到夜莺告警消息的时间。
fire_time trigger_time 该告警消息首次触发的时间。
resolve_time 告警恢复时间。
  • 如果夜莺告警消息中的is_recovery字段的值为0,则resolve_time的值为0。
  • 如果夜莺告警消息中的is_recovery字段的值不为0,则resolve_time的值为日志服务接收到夜莺告警消息的时间。
labels tag_map 告警标签信息。

如果您在创建开放告警应用时,在信息加工中添加了标签信息,则此标签信息将被添加到labels字段中。

说明 当您在信息加工中配置的标签的Key与夜莺告警消息的tag_map字段中的子字段重复时,映射结果以您在信息加工中配置的为准。
annotations 夜莺告警被接入到日志服务后,日志服务告警的annotations字段中将添加如下额外字段。
  • title: {夜莺消息中的rule_name}
  • desc: {夜莺消息中的rule_note或者event_note}
  • is_prome_pull: {夜莺消息中的is_prome_pull}
  • readable_expression: {夜莺消息中的readable_expression}
  • values: {夜莺消息中的values}
  • __config_app__: "sls_pub_alert"
  • __pub_alert_service__: {开放告警服务ID}
  • __pub_alert_app__: {开放告警应用ID}
  • __pub_alert_protocol__: "nightingale"
  • __pub_alert_region__: {发送告警消息的网络接口对应的地域}

如果您在创建开放告警应用时 ,在信息加工中添加了标注信息,则此标注信息将被添加到annotations字段中。

severity priority 告警严重度。
  • 如果夜莺告警消息中的priority字段的值为1,则severity的值为high。
  • 如果夜莺告警消息中的priority字段的值为2,则severity的值为medium。
  • 如果夜莺告警消息中的priority字段的值为3,则severity的值为low。
policy 您在开放告警应用中配置的告警策略。更多信息,请参见Policy结构
project 告警中心所属的Project。更多信息,请参见项目(Project)
drill_down_query 如果您在创建开放告警应用时,在信息加工中添加了Key为__default_drill_down_query__的标签,则drill_down_query的值为夜莺控制台地址。否则drill_down_query的值为http://127.0.0.1:8000。