Construa o objeto de alerta em github.com/prometheus/common/model e insira os campos relevantes
Use http post para enviar json para a interface do alertmanager.
2. Execute o programa para alertar o alertmanager
Verifique a página da web do alertmanager e você poderá ver o alerta que acabou de ser enviado.
3. Escreva um programa go para atuar como um receptor de alerta e receber informações de alerta de webhook do alertmanager.
Receba o código do 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")}
Use gin para iniciar http
alertReceive recebe o alerta enviado pelo alertmanager
Analise o campo json na mensagem de github.com/prometheus/alertmanager/notify/webhook
Basta imprimir alguns campos
4. Edite o arquivo de configuração do alertmanager
Aponte o remetente do webhook padrão para o receptor de alerta acima
Execute o programa receptor
Execute o programa de envio
A extremidade receptora deve ser capaz de receber o alarme e imprimir registros relevantes