AlertManager作为Prometheus生态系统的一员,提供了包括静默、抑制、通知在内的多种告警管理服务。同时AlertManager在实际使用中还存在着或多或少的不足,例如通知渠道过少,规则配置过程繁琐。
阿里云日志服务为了解决告警的通知、管理等问题,推出了日志服务告警中心,为客户提供了一站式的告警解决方案。下图中的功能对比给出了SLS告警和AlertManager+Prometheus生态的功能对比,可以看出SLS告警提供了企业级的服务,能够极大的方便用户的工作。
SLS开放告警
SLS告警提供的开放告警功能,能够很方便的将三方系统的告警消息接入到SLS告警中心,而且不需要对现有系统做任何改造。AlertManager接入SLS告警后的告警消息流如下图所示:
下面介绍将AlertManager接入到SLS告警的详细流程,包括SLS告警配置和AlertManager配置两部分。
SLS告警配置
1. 创建行动策略
行动策略将决定了SLS在接收Alert Manager告警消息后,以何种方式及何种渠道通知您。为此,您需要首先打开告警中心,点击告警管理,在下拉菜单中选择行动策略:
然后点击页面左上角的添加按钮,在弹出的对话框中配置新的行动策略,然后点击确认。目前,系统支持语音,短信,邮箱,钉钉和企业微信等通知渠道,有关行动策略的具体配置方法,可参阅官方文档创建行动策略。
2. 创建开放告警服务
首先打开告警中心,点击告警管理,在下拉菜单中选择开放告警:
点击页面左上角的创建按钮,在弹出的对话框中配置新的开放告警服务,包括服务ID和服务名称,然后点击保存:
3. 创建开放告警应用
选择上一步骤中创建的服务,在操作栏中点击该服务的应用按钮:
在弹出的对话框中点击创建,添加新的应用,点击保存。这里的协议请选择AlertManager,行动策略选择在第一步中配置的策略,其余选项可选择默认值。
4. 获取开放告警应用接口
现在,您在第二步创建的开放告警服务中已经存在一个新的告警应用了。点击该应用操作栏的接口按钮,获取接口信息:
接口地址由两部分构成:
域名部分:SLS的接入地址,和地域相关,每个地域都有各自不同的接入地址;
子路径部分:包括用于发送消息的Access Key Id和开放告警应用Id。需要注意的是,用户需要将子路径部分中的{ACCESS_KEY_ID}替换为具体阿里云RAM账户的Access Key Id,并且将权限策略AliyunLogOpenEventWrite赋予该账户。
Alert Manager接入配置
在Alert Manager配置文件中,您首先需要创建一个告警消息的接收者。为此,您需要在receivers配置项下添加一个Webhook接收者,在url字段中填写上一步骤中获取的接口地址。然后,您需要在route配置项下添加前面创建的接收者。典型的配置文件如下图所示:
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: ...
其中{RECIVER_NAME}为用户为接收者自定义的名称。
效果展示
告警消息查看
在告警中心的事务视图界面,可以查看接收到的告警消息列表,以及该告警消息的详情。
告警接入概览
在开放告警大盘,可以查看告警消息过滤、发送情况。
告警通知概览
告警大盘展示了所有告警消息的概览视图,可以查看通过不同通知渠道发送的消息量。