[分享] 极狐Gitlab的告警管理

Incident management

这个功能用于接收和管理来自应用程序的告警事件,对告警事件进行分类,发送给相关责任人等。

1 alerts

是一个展示告警的面板,用于展示gitlab接收到的告警详细信息。包括状态,严重级别,开始时间,告警描述等。

Alerts是gitlab所提供的一个告警功能,通过集成webhook receiver去接受告警。

在配置了告警集成的项目中,依次选择Monitor > Alerts,就可以进入到alerts展示的界面,页面如下:

image

在Alerts界面中,我们可以查看告警的状态,描述信息等。还可以通过点击进入告警的详情页面。

用户可以更改告警的状态,gitlab可以记录告警状态更改的时间,从而追踪一个告警响应的情况。

gitlab alerts最好的一点在于它能将告警管理和项目开发结合到一起,对于一些告警,我们确认它已经影响到项目应用的运行,就可以直接在这个告警中点击 Create incident按钮创建一个incident issue,然后将这个issue分配给指定开发人员。就可以根据这个issue将应用bug修复的过程和告警生命周期关联起来。

2 Escalation Policies

Escalation Policies(升级策略):这是一种确保告警不会被遗漏的策略,在升级策略中可以通过定义不同时期对应不同的响应人,如果超过这个时间节点,对应的人员没有响应则将通知发送到下一个响应人。

使用此功能

进入需要配置的项目,依次点击Monitor > Escalation Policies > Add an escalation policy,然后在界面选择一个on-call schedule。

3 Paging and notifications

告警分级和告警通知,目前只支持Slack和email通知。

4 Incidents

incidents是gitlab监控告警中的一个展示面板,是一种特殊类型的issue。incident就是告警中被确认的具有严重影响的告警,然后就可以将这部分告警划分为incident,表示这部分告警需要处理。

这里面所展示的告警,都是需要处理的,incident可以将alert和issue关联起来。通过这种关联,让alert能够通过issue去分配给具体的人,让相关责任人去处理对应的告警。

5 Integrations

Integrate是gitlab告警中集成告警数据源的功能,gitlab本身并不能产生告警,它只能通过webhook receiver接收告警。所以需要有一个告警平台通过webhook将告警发送到gitlab。

目前支持集成的告警平台包括http endpoint和prometheus两种。配置好集成之后,对应的告警平台产生告警就会发送到gitlab,并展示到alerts界面。

使用此功能

进入需要配置的项目,依次点击Settings > Monitor > Alerts > Add new integration, 选定好对应的集成类型,然后就可以得到对应的webhook receiver地址和token了。

6 Status Page

设置一个外部页面来展示当前项目的告警信息

7 On-call Schedule

这个功能就是gitlab所提供的一个on-call排班表,通过在rotation中添加项目成员到指定时段进行on-call,从而形成整个on-call的排班。

然后可以在escalation policy中关联对应的on-call schedule,从而让对应on-call的项目成员收到告警信息。

使用此功能

进入需要配置的项目,依次点击Monitor > On-call schedules,点击Add a schedule添加schedule,然后可以在对应的schedule中点击Add a rotation按钮添加rotation,每个rotation都可以选取至少一个项目成员,并设置对应的时间周期,即表示在这个时间周期内由这些成员on-call.