您可以在Loki中,将日志服务开放告警系统配置为一个Alertmanager组件。配置完成后,Loki会将告警消息发送到日志服务告警系统中,由日志服务告警系统完成告警降噪、通知等处理。
背景信息
- 通过Grafana接入Loki告警的操作步骤,请参见接入Grafana告警(Grafana 8.0以下版本)。
- 通过Alertmanager接入Loki告警的操作步骤,请参见接入Alertmanager告警。
Loki配置
在Loki配置文件的ruler配置项中添加alertmanager_url配置。其中,设置alertmanager_url为您在日志服务中创建开放告警服务和应用后生成的接口信息(完整URL)。如何获取,请参见获取接口信息。
ruler:
alertmanager_url: {ALIYUN_SLS_ENDPOINT}/event/webhook/RAMAK_{ACCESS_KEY_ID}/{WEBHOOK_APP_ID}
...
Loki告警消息
Loki告警消息内容示例如下:
[
{
"annotations": {
"description": "description info",
"summary": "High request latency"
},
"endsAt": "2020-10-28T12:28:52.710Z",
"startsAt": "2020-10-28T12:23:37.710Z",
"generatorURL": "http://127.0.0.1:9090/graph?g0.expr=go_threads%7Binstance%3D%22localhost%3A9090%22%2Cjob%3D%22prometheus%22%7D+%3E+0\\u0026g0.tab=1",
"labels": {
"alertname": "HighErrorRate",
"instance": "localhost:9090",
"job": "prometheus",
"severity": "page"
}
}
]
字段映射
Loki告警消息被接入到日志服务后,映射为日志服务告警内容。示例如下:
{
"aliuid": "{开放告警应用所属的阿里云账号ID}",
"alert_instance_id": "{自动生成}",
"project": "{告警中心所属的Project}",
"region": "{告警中心Project所在地域}",
"alert_id": "HighErrorRate",
"alert_type": "sls_pub",
"alert_name": "HighErrorRate",
"next_eval_interval": 78,
"alert_time": 1603859020,
"fire_time": 1603859017,
"resolve_time": 0,
"status": "firing",
"labels": {
"alertname": "HighErrorRate",
"instance": "localhost:9090",
"job": "prometheus"
},
"annotations": {
"__pub_alert_region__": "{接收告警消息的网络接口对应的地域}",
"__config_app__": "sls_pub_alert",
"__pub_alert_service__": "{开放告警服务ID}",
"__pub_alert_app__": "{开放告警应用ID}",
"__pub_alert_protocol__": "loki",
"severity": "page"
},
"severity": 2,
"policy": {
"alert_policy_id": "{开放告警应用中配置的告警策略}",
"action_policy_id": "{开放告警应用中配置的行动策略}",
"repeat_interval": "{开放告警应用中配置的重复等待时间}"
},
"drill_down_query": "http://127.0.0.1:9090/graph?g0.expr=go_threads%7Binstance%3D%22localhost%3A9090%22%2Cjob%3D%22prometheus%22%7D+%3E+0\\u0026g0.tab=1"
}
日志服务告警消息内容与Loki告警消息内容的映射关系如下:
日志服务字段 | Loki字段 | 说明 |
---|---|---|
aliuid | 无 | 用于接入告警的开放告警应用所属的阿里云账号ID。 |
alert_id | alertname | 告警监控规则ID。 |
alert_type | 无 | 告警类型,固定为sls_pub。 |
alert_name | alertname | 告警监控规则名称。 |
status | 无 | 告警状态,包括firing和resolved。
|
next_eval_interval | 无 | 告警评估时间间隔。如果当前告警状态为firing,则next_eval_interval字段的值为(endsAt-alert_time)/4。 |
alert_time | 无 | 日志服务接收到Loki告警消息的时间。 |
fire_time | startsAt | 日志服务接收到Loki告警消息的时间。 |
resolve_time | 无 | 告警恢复时间,详细说明如下:
|
labels | labels | 告警标签信息。
如果Loki告警消息的labels字段中存在severity字段,则被接入到日志服务后,severity字段将被添加日志服务告警的annotations字段中。 |
annotations | annotations | Loki告警被接入到日志服务后,日志服务告警的annotations字段中将添加如下额外字段。
|
severity | severity | 告警严重度。更多信息,请参见告警严重程度。 |
policy | 无 | 您在开放告警应用中配置的告警策略。更多信息,请参见Policy结构。 |
project | 无 | 告警中心所属的Project。更多信息,请参见项目(Project)。 |
drill_down_query | generatorURL | 展示Loki告警消息中generatorURL字段的值。 |