slack作為一款即時通訊工具,協作溝通主要通過channel(平台)來完成,使用者可以在企業中根據用途添加多個channel,并且通過channel來內建各種第三方工具。
例如,我們可以為監控建立一個單獨的channel用于接收各種監控資訊:
通過一個獨立的channle可以減少資訊對使用者工作的幹擾,并且将相關資訊聚合在一起:
slack的強大之處在于在channel中添加各種第三方服務的內建,使用者也可以基于slack開發自己的聊天機器人來實作一些更進階的能力,例如自動化運維,提高開發效率等。
添加應用:incomming webhooks
為了能夠在monitoring中接收來自alertmanager的消息,在channel的設定選項中使用"add an app"為monitoring channel添加一個名為incoming webhooks的應用:
添加成功後slack會顯示incoming webhooks配置和使用方式:
incomming webhook的工作方式很簡單,slack為目前channel建立了一個用于接收消息的api位址:
使用者隻需要使用post方式向channel發送需要通知的消息即可.,例如,我們可以在指令行中通過curl模拟一次消息通知:
除了發送純文字以外,slack還支援在文本内容中添加連結,例如:
此時接收到的消息中還包含一個可點選的超連結位址。除了payload以外,incomming webhhook還支援一些其他的參數:
例如,使用以上參數發送一條更有趣的消息:
在網絡正常的情況下,在channel中會顯示新的通知資訊,如下所示:
結合alertmanager使用
在alertmanager的全局配置中,将incomming webhhook位址作為slack_api_url添加到全局配置中即可:
也可以在每個receiver中單獨定義自己的slack_configs即可:
收到的告警示例:
對于incomming webhhook支援的其它自定義參數,也可以在slack_config中進行定義,slack_config的主要配置如下:
如果要覆寫預設的告警内容,直接使用go template即可。例如: