Alertmanager是开源监控系统Prometheus中用于处理告警信息的服务,通过将日志服务开放告警配置为Alertmanager中的一个Receiver,可以将Alertmanager产生的告警消息发送到日志服务。
Alertmanager配置
route:
receiver: '{RECIEVER_NAME}'
...
...
receivers:
- name: '{RECIEVER_NAME}'
webhook_configs:
- url: 'http://{ALIYUN_SLS_ENDPOINT}/event/webhook/RAMAK_{ACCESS_KEY_ID}/{WEBHOOK_APP_ID}'
- name: ...
参数 | 说明 |
---|---|
receiver | 自定义的receiver名称。 |
name | 自定义的receiver名称,需与receiver参数中配置的receiver名称相同。 |
url | 告警消息的接收端,此处配置为您在日志服务中创建开放告警服务和应用后生成的接口信息(完整URL)。如何获取,请参见获取接口信息。
说明 如果您的Alertmanager运行在阿里云ECS上,则建议您在选择Alertmanager告警消息接入地域时,选择ECS所在地域,并使用局域网或VPC域名。否则您选择任一地域的公网接口即可。
|
Alertmanager告警消息解析
{
"version": "4",
"groupKey": "alertname,job",
"truncatedAlerts": 0,
"status": "firing",
"receiver": "webhook",
"groupLabels": {
"alertname": "Alert",
"job": "promethueus"
},
"commonLabels": {
"instance": "localhost:9090"
},
"commonAnnotations": {},
"externalURL": "http://example.com/#/alerts",
"alerts": [
{
"annotations": {
"description": "description info",
"summary": "High request latency"
},
"endsAt": "2020-10-28T12:28:52.710Z",
"startsAt": "2020-10-28T12:23:37.710Z",
"generatorURL": "",
"labels": {
"alertname": "Alert",
"instance": "localhost:9090",
"job": "prometheus",
"severity": "page"
}
},
...
]
}
字段映射
Alertmanager告警消息被接入到日志服务后,映射为日志服务告警内容。示例如下:
{
"aliuid": "{开放告警应用所属的阿里云账号ID}",
"alert_instance_id": "{自动生成}",
"project": "{告警中心所属的Project}",
"region": "{告警中心Project所在地域}",
"alert_id": "Alert",
"alert_type": "sls_pub",
"alert_name": "Alert",
"next_eval_interval": 0,
"alert_time": 1603859020,
"fire_time": 1603859017,
"resolve_time": 0,
"status": "firing",
"labels": {
"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__": "alert_manager",
"desc": "description info",
"summary": "High request latency"
},
"severity": 2,
"policy": {
"alert_policy_id": "{开放告警应用中配置的告警策略}",
"action_policy_id": "{开放告警应用中配置的行动策略}",
"repeat_interval": "{开放告警应用中配置的重复等待时间}"
},
...
日志服务 | Alertmanager | 说明 |
---|---|---|
aliuid | 无 | 用于接入告警的开放告警应用所属的阿里云账号ID。 |
alert_id | alertname | 告警监控规则ID。
如果Alertmanager告警消息的labels字段中有alertname字段,则alert_id的值为alertname字段的值,否则为空。 |
alert_type | 无 | 告警类型,固定为sls_pub。 |
alert_name | alertname | 告警监控规则名称。
如果Alertmanager告警消息的labels字段中有alertname字段,则alert_name的值为alertname字段的值,否则为空。 |
status | status | 告警状态。 |
next_eval_interval | 无 | 告警评估时间间隔,固定为0。 |
alert_time | 无 | 告警触发时间,为日志服务接收到Alertmanager告警消息的时间。 |
fire_time | startsAt | 告警首次触发时间。 |
resolve_time | endsAt | 告警恢复时间。
如果Alertmanager告警消息中的status为firing,则resolve_time的值为0,否则为endsAt对应的时间戳。 |
labels | labels | 告警标签信息。
如果您在创建开放告警应用时 ,在信息加工中添加了标签信息,则此标签信息将被添加到labels字段中。 |
annotations | annotations | 告警标注信息。日志服务告警的annotations字段中将添加如下额外字段。
如果您在创建开放告警应用时 ,在信息加工中添加了标注信息,则此标注信息将被添加到annotations字段中。 |
severity | severity | 告警严重度。
说明 如果Alertmanager告警消息中存在severity字段,则将Alertmanager告警消息发送到日志服务后,日志服务会根据该字段映射告警严重度。如果没有,则默认映射为中等。更多信息,请参见告警严重程度。
|
policy | 无 | 您在开放告警应用中配置的告警策略。更多信息,请参见Policy结构。 |
project | 无 | 告警中心所属的Project。更多信息,请参见项目(Project)。 |
drill_down_query |
|
Alertmanager告警消息的URL。
单击该URL,系统将跳转至Alertmanager的Alert管理界面,并自动为您过滤显示符合groupLabels字段内容的告警消息。 |