Skip to content
forked from rea1shane/a2w

通过企业微信机器人发送 Alertmanager 通知。

Notifications You must be signed in to change notification settings

DesistDaydream/a2w

 
 

Repository files navigation

Alertmanager to WeCom

docker-image-ci

通过 企业微信机器人 发送 Alertmanager 通知。查看 演示

使用方式

  1. 运行 A2W:

    make run

    或是部署在 Docker 中:

    make docker-run

    或是直接使用 Docker Hub 中已发布的镜像:

    docker run --name a2w -d -p 5001:5001 rea1shane/a2w

    或是通过 Helm 部署在 Kubernetes 中:

    make helm-install

    查看项目使用说明:

    make help
  2. 在企业微信中创建机器人,在机器人的 “webhook 地址” 中获取 key 值,webhook 样式为:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={key}

  3. 修改 Alertmanager 配置文件:

    route:
      receiver: "a2w"
    receivers:
      - name: "a2w"
        webhook_configs:
          - url: "https://{a2w_address}/send?key={key}"

功能说明

时区

A2W 使用本地时区。Docker 镜像的默认时区为 Asia/Shanghai。如果想要修改 Docker 镜像的时区,可以在 docker run 时使用参数 -e TZ={TIME_ZONE} 进行指定,如:

docker run --name a2w -d -p 5001:5001 -e TZ=Asia/Tokyo rea1shane/a2w

消息模板

消息模板决定了企业微信机器人发出的消息格式,在启动 A2W 时通过 --template 指定模板文件所在目录。默认模板的使用说明见 文档

Note

因为企业微信机器人接口限制单条消息的最大长度为 4096,所以本软件会对大于此限制的长消息进行分段。如果你使用自定义模板,请在想要分段的地方留一个空行(在企业微信中,至少三个连续的 \n 才被认为是一个空行),以便本软件对消息进行正确的分段。

使用 tmpl URL Query 可以指定要使用的其他模板(以便适应想要让不同的告警使用不同的模板场景):

receivers:
  - name: "a2w"
    webhook_configs:
      - url: "https://{a2w_address}/send?tmpl=base_two&key={key}"

[!Attention]

模板文件必须以 .tmpl 作为后缀,前缀要符合 URL 字符规范 RFC 3986, Uniform Resource Identifier(URI): Generic Syntax。不要使用中文作为文件名。

用户提醒

A2W 支持用户提醒功能,修改 Alertmanager 中的配置如下:

receivers:
  - name: "a2w"
    webhook_configs:
      - url: "https://{a2w_address}/send?key={key}&mention=user1&mention=user2"

当 A2W 接收到该 receiver 的通知时,会在发送至企业微信机器人的消息尾部添加一个 @ 列表,包含 url 中指定的所有用户。

构建项目

编译二进制文件:

make build

或是构建 Docker 镜像:

make docker-build

贡献

About

通过企业微信机器人发送 Alertmanager 通知。

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 66.7%
  • Smarty 15.0%
  • Makefile 13.6%
  • Dockerfile 4.7%