Webhook

Webhook#

Webhook 是最通用的 Alertmanager 集成方式。任何平台只要能接收 HTTP POST,都可以通过 webhook_configs 对接。

1. Alertmanager Webhook Payload#

Alertmanager 会向 webhook endpoint 发送 JSON payload。

docs:

2. Alertmanager Config#

route:
  receiver: custom-webhook

receivers:
  - name: custom-webhook
    webhook_configs:
      - url: http://alert-webhook.example.com/alertmanager
        send_resolved: true
        max_alerts: 20

3. Node.js Receiver Example#

import express from 'express';

const app = express();
app.use(express.json());

app.post('/alertmanager', (req, res) => {
  const { status, groupLabels, commonLabels, alerts } = req.body;

  console.log({
    status,
    groupLabels,
    commonLabels,
    count: alerts.length,
  });

  res.sendStatus(200);
});

app.listen(5001, () => {
  console.log('webhook receiver listening on :5001');
});

4. Notes#

Best Practice:
    webhook receiver 必须快速返回 2xx
    平台 API 调用失败时要有 retry / dead letter
    不要在 webhook 里做复杂查询
    对外暴露时要加认证或网络限制