3. アラート受信者として機能し、アラートマネージャーから Webhook アラート情報を受信する go プログラムを作成します。
Webhookのコードを受け取る
package main
import("errors""flag""fmt""github.com/gin-gonic/gin""github.com/prometheus/alertmanager/notify/webhook""log")funcmain(){
listenAddress := flag.String("addr",":5001","Address on which to expose metrics and web interface.")
flag.Parse()
r := gin.Default()
r.POST("/alert", alertReceive)
r.Run(*listenAddress)// listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")}funcalertReceive(c *gin.Context){
var msg webhook.Message
if err := c.BindJSON(&msg); err !=nil{
c.JSON(400, errors.New("invalid args"))return}
baseMsg := fmt.Sprintf("[状态:%s][报警条数:%d]", msg.Status,len(msg.Alerts))
log.Printf("[alertReceive][baseMsg:%+v]", baseMsg)for i :=0; i <len(msg.Alerts); i++{
alert := msg.Alerts[i]
log.Printf("[detail][%d/%d][alert:%+v]", i+1,len(msg.Alerts), alert)}
c.JSON(200,"ok")}