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

前提条件

  • 已创建协议夜莺的开放告警应用。具体操作,请参见配置开放告警对外接口
  • 已购买夜莺5.0 RC版本或者5.0以上的稳定版本。

夜莺配置

夜莺RC版本

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

夜莺稳定版本

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

夜莺告警消息

夜莺RC版本

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

{
    "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=\"192.0.2.0\"}]: [value=1.876676]",
    "notify_channels": "",
    "notify_groups": "",
    "notify_users": "",
    "runbook_url": "",
    "readable_expression": "system_cpu_util{} \u003e 0",
    "tags": "ident=192.0.2.0",
    "notify_group_objs": null,
    "notify_user_objs": null,
    "tag_map": {
        "ident": "192.0.2.0"
    }
}

夜莺稳定版本

夜莺稳定版本告警消息内容示例如下:

{
    "id": 6,
    "cluster": "Default",
    "group_id": 1,
    "hash": "ee099d071732b9a7ef02be911b032ad5",
    "rule_id": 2,
    "rule_name": "test",
    "rule_note": "this is desc",
    "severity": 1,
    "prom_for_duration": 60,
    "prom_ql": "go_threads > 1",
    "prom_eval_interval": 15,
    "callbacks":
    [
        "http://127.0.0.1:80"
    ],
    "runbook_url": "",
    "notify_recovered": 1,
    "notify_channels":
    [],
    "notify_groups":
    [],
    "notify_groups_obj":
    [],
    "notify_repeat_next": 0,
    "target_ident": "",
    "target_note": "",
    "trigger_time": 1648555865,
    "trigger_value": "10",
    "tags":
    [
        "__name__=go_threads",
        "instance=localhost:9090",
        "job=prometheus",
        "name=wkb",
        "value=1"
    ],
    "is_recovered": false,
    "notify_users_obj":
    [],
    "last_eval_time": 1648555865,
    "last_sent_time": 1648555865
}

字段映射

夜莺RC版本

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

{
    "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=\"192.0.2.0\"}]: [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"
}

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

日志服务字段 夜莺字段 说明
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,则映射为high。
  • 如果夜莺告警消息中的priority字段的值为2,则映射为medium。
  • 如果夜莺告警消息中的priority字段的值为3,则映射为low。
policy 您在开放告警应用中配置的告警策略。更多信息,请参见Policy结构
project 告警中心所属的Project。更多信息,请参见项目(Project)
drill_down_query 如果您在开放告警添加标签中配置了名称为__default_drill_down_query__的字段,则系统会使用该值作为夜莺控制台访问链接,否则使用默认值http://127.0.0.1:18000
说明 夜莺RC版本默认端口号为8000,您需要根据实际情况进行修改。

夜莺稳定版本

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

{
    "aliuid": "aliuid1",
    "alert_instance_id": "ee099d071732b9a7ef02be911b032ad5",
    "alert_id": "2",
    "alert_type": "sls_pub",
    "alert_name": "test",
    "region": "",
    "project": "",
    "project_id": 0,
    "next_eval_interval": 15,
    "alert_time": 1648889320,
    "fire_time": 1648555865,
    "fire_results": null,
    "fire_results_count": 0,
    "resolve_time": 0,
    "status": "firing",
    "results": null,
    "labels":
    {
        "__name__": "go_threads",
        "instance": "localhost:9090",
        "job": "prometheus",
        "name": "wkb",
        "value": "1"
    },
    "annotations":
    {
        "__config_app__": "sls_pub_alert",
        "__pub_alert_app__": "appid1",
        "__pub_alert_protocol__": "nightingale",
        "__pub_alert_region__": "e",
        "__pub_alert_service__": "serverid1",
        "cluster": "Default",
        "desc": "this is desc",
        "group_id": "1",
        "last_eval_time": "1648555865",
        "last_sent_time": "1648555865",
        "notify_recovered": "1",
        "notify_repeat_next": "0",
        "prom_for_duration": "60",
        "prom_ql": "go_threads > 1",
        "title": "test",
        "trigger_value": "10"
    },
    "severity": 6,
    "policy":
    {
        "alert_policy_id": "",
        "action_policy_id": "",
        "use_default": false,
        "repeat_interval": "0s"
    },
    "template": null,
    "drill_down_query": "http://127.0.0.1:18000/alert-cur-events/6"
}

日志服务告警属性与夜莺字段的映射关系如下:

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

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

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

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

severity severity 告警严重度。
  • 如果夜莺告警消息中的severity字段的值为1,则映射为high。
  • 如果夜莺告警消息中的severity字段的值为2,则映射为medium。
  • 如果夜莺告警消息中的severity字段的值为3,则映射为low。
policy 您在开放告警应用中配置的告警策略。更多信息,请参见Policy结构
project 告警中心所属的Project。更多信息,请参见项目(Project)
drill_down_query 如果您在开放告警添加标签中配置了名称为__default_drill_down_query__的字段,则系统会使用该值作为夜莺控制台访问链接,否则使用默认值http://127.0.0.1:18000