• 告警通知
  • webhook(企业微信机器人)无法收到消息

操作系统信息
虚拟机/物理机,Centos7 4C/8G

Kubernetes版本信息
Kubernetes:v1.22.10 v1.22.09

容器运行时
docker/containerd 都有

KubeSphere版本信息
v3.3.0。

问题是什么
通知配置下,配置企业微信机器人webhook无法接收到消息

去看notification-manager-deployment 无日志

wanjunlei 后续版本会加入 消息发企业微信机器人吗?
发企业微信机器人应该是最常用的一个功能,按现在大部分企业的使用习惯,比现在已有的发企业微信(企业ID、AgentId、Secret)这种方式更加常用,建议增加

同问,这是一个非常常用的功能,建议增加。

5 个月 后

最新的 notification manager 已支持企业微信机器人,v3.3.2 没有集成最新的 nm,可以自己升级下 nm

    16 天 后

    wanjunlei 请教一下这怎么单独升级呢,我用v2.2.0安装报错呢:helm install notification-manager helm -n kubesphere-monitoring-system

    Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(NotificationManager.spec): unknown field “groupLabels” in io.kubesphere.notification.v2beta2.NotificationManager.spec, ValidationError(NotificationManager.spec): unknown field “template” in io.kubesphere.notification.v2beta2.NotificationManager.spec]

      先手动升级下crd,helm是不会升级crd的

      1 年 后

      我试了下,升级nm到最新版本后,企微webhook还是无法收到消息,页面显示发送成功,

      notification-manager日志

       level=info ts=2024-05-20T03:10:42.720377921Z caller=main.go:103 msg="Starting notification manager..." addr=:19093 timeout=5s
       I0520 03:10:43.846339       1 request.go:697] Waited for 1.04147041s due to client-side throttling, not priority and fairness, request: GET:https://10.96.0.1:443/apis/app.k8s.io/v1beta1
       level=info ts=2024-05-20T03:10:44.351655229Z caller=controller.go:232 msg="notification manager changed" op=add
       level=info ts=2024-05-20T03:10:44.456242749Z caller=controller.go:318 msg="reload configs"
       level=info ts=2024-05-20T03:10:44.456969444Z caller=controller.go:341 msg="reload receivers"
       level=info ts=2024-05-20T03:10:44.457261142Z caller=controller.go:505 msg="Receiver changed" op=add name=global-webhook-receiver
       level=info ts=2024-05-20T03:11:39.421407484Z caller=controller.go:505 msg="Receiver changed" op=update name=global-webhook-receiver
       level=info ts=2024-05-20T03:11:47.311745961Z caller=controller.go:505 msg="Receiver changed" op=update name=global-webhook-receiver
       level=info ts=2024-05-20T03:16:03.924080681Z caller=controller.go:505 msg="Receiver changed" op=update name=global-webhook-receiver

      tenant日志

       W0520 03:10:42.987894       1 client_config.go:615] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
       I0520 03:10:43.245335       1 controller.go:71] Starting controller
       I0520 03:10:43.245365       1 controller.go:74] Waiting for informer caches to sync
       I0520 03:10:43.245378       1 controller.go:80] Starting workers
       I0520 03:10:43.245388       1 controller.go:84] Started workers
       I0520 03:10:43.247498       1 tenant.go:66] reload tenant
       I0520 03:10:43.249167       1 tenant.go:66] reload tenant
       I0520 03:10:43.250556       1 tenant.go:66] reload tenant
       I0520 03:10:43.251872       1 tenant.go:66] reload tenant
       I0520 03:10:43.253715       1 tenant.go:66] reload tenant
       I0520 03:10:43.258520       1 tenant.go:66] reload tenant
       I0520 03:10:43.260305       1 tenant.go:66] reload tenant
       I0520 03:10:43.262036       1 tenant.go:66] reload tenant
       I0520 03:10:43.263738       1 tenant.go:66] reload tenant
       I0520 03:10:43.265432       1 tenant.go:66] reload tenant
       I0520 03:10:43.267162       1 tenant.go:66] reload tenant
       I0520 03:10:43.268960       1 tenant.go:66] reload tenant
       I0520 03:10:43.270546       1 tenant.go:66] reload tenant
       I0520 03:10:43.272074       1 tenant.go:66] reload tenant
       I0520 03:10:43.273666       1 tenant.go:66] reload tenant

        1.重新创建一个容易触发的告警规则,再观察下能不能收到告警

        2.确认下 receiver 有没有设置 filter,是不是告警被过滤了

        3.确认下 receiver 是 global 的还是 tenant 的,tenant receiver 只能接收租户的告警

        4.确认下是否配置了静默规则,确认告警是不是被静默了

          NullFox 看下了你发的文档,我这边的企业微信机器人,实际上只需要一个URL字段就可以,因为key直接填在了url里面:

          比如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx

          这个使用起来就是一个curl的命令就行了,例如:

          curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx' \
             -H 'Content-Type: application/json' \
             -d '
             {
                  "msgtype": "text",
                  "text": {
                      "content": "hello world"
                  }
             }'

          文档中,我应该使用哪种类型的通知?Webhook Receiver 还是WeChat Chatbot

          感谢回复!

          NullFox

          wanjunlei

          已成功发送告警,感谢。

          不过还是希望能在web界面上增加个一键配置的地方(更友好,更小白)

            24 天 后