天天看點

Alertmanager結合Slack使用

slack作為一款即時通訊工具,協作溝通主要通過channel(平台)來完成,使用者可以在企業中根據用途添加多個channel,并且通過channel來內建各種第三方工具。

例如,我們可以為監控建立一個單獨的channel用于接收各種監控資訊:

Alertmanager結合Slack使用
Alertmanager結合Slack使用

通過一個獨立的channle可以減少資訊對使用者工作的幹擾,并且将相關資訊聚合在一起:

Alertmanager結合Slack使用

slack的強大之處在于在channel中添加各種第三方服務的內建,使用者也可以基于slack開發自己的聊天機器人來實作一些更進階的能力,例如自動化運維,提高開發效率等。

添加應用:incomming webhooks

為了能夠在monitoring中接收來自alertmanager的消息,在channel的設定選項中使用"add an app"為monitoring channel添加一個名為incoming webhooks的應用:

Alertmanager結合Slack使用
Alertmanager結合Slack使用
Alertmanager結合Slack使用
Alertmanager結合Slack使用

添加成功後slack會顯示incoming webhooks配置和使用方式:

Alertmanager結合Slack使用

incomming webhook的工作方式很簡單,slack為目前channel建立了一個用于接收消息的api位址:

Alertmanager結合Slack使用

使用者隻需要使用post方式向channel發送需要通知的消息即可.,例如,我們可以在指令行中通過curl模拟一次消息通知:

除了發送純文字以外,slack還支援在文本内容中添加連結,例如:

此時接收到的消息中還包含一個可點選的超連結位址。除了payload以外,incomming webhhook還支援一些其他的參數:

Alertmanager結合Slack使用

例如,使用以上參數發送一條更有趣的消息:

在網絡正常的情況下,在channel中會顯示新的通知資訊,如下所示:

Alertmanager結合Slack使用

結合alertmanager使用

在alertmanager的全局配置中,将incomming webhhook位址作為slack_api_url添加到全局配置中即可:

也可以在每個receiver中單獨定義自己的slack_configs即可:

收到的告警示例:

Alertmanager結合Slack使用

對于incomming webhhook支援的其它自定義參數,也可以在slack_config中進行定義,slack_config的主要配置如下:

如果要覆寫預設的告警内容,直接使用go template即可。例如: