WebHook

简介: WebHook

WebHook 是由 emqx_web_hook 插件提供的 EMQ X 中的钩子事件通知到某个 Web 服务 的功能。


WebHook 的内部实现是基于 钩子,但它更靠近顶层一些。它通过在钩子上的挂载回调函数,获取到 EMQ X 中的各种事件,并转发至 emqx_web_hook 中配置的 Web 服务器。


提示

WebHook 对于事件的处理是单向的,它仅支持将 EMQ X 中的事件推送给 Web 服务,并不关心 Web 服务的返回。 借助 Webhook 可以完成设备在线、上下线记录,订阅与消息存储、消息送达确认等诸多业务。


docker-compose配置

一般我们会通过 Docker Compose 来启动 emqx 服务,直接将 webhook 的配置写到配置文件中即可,以本地开发环境为例:

version: '3.8'
volumes:
  vol-emqx-data:
    name: emqx-data
  vol-emqx-etc:
    name: emqx-etc
  vol-emqx-log:
    name: emqx-log
services:
  emqx:
    image: emqx/emqx:4.3.4
    container_name: emqx
    restart: always
    network_mode: host
    pid: host
    volumes:
      - vol-emqx-data:/opt/emqx/data
      - vol-emqx-etc:/opt/emqx/etc
      - vol-emqx-log:/opt/emqx/log
      - /etc/localtime:/etc/localtime:ro
    environment:
      # webhook 插件配置
      EMQX_WEB__HOOK__URL: http://127.0.0.1:3000/emqx/webhook
      EMQX_WEB__HOOK__HEADERS__CONTENT-TYPE: application/json
      EMQX_WEB__HOOK__HEADERS__ACCEPT: '*/*'
      EMQX_WEB__HOOK__RULE__CLIENT__CONNECT__1: '{"action": "on_client_connect"}'
      EMQX_WEB__HOOK__RULE__CLIENT__CONNACK__1: '{"action": "on_client_connack"}'
      EMQX_WEB__HOOK__RULE__CLIENT__CONNECTED__1: '{"action": "on_client_connected"}'
      EMQX_WEB__HOOK__RULE__CLIENT__DISCONNECTED__1: '{"action": "on_client_disconnected"}'
      EMQX_WEB__HOOK__RULE__CLIENT__SUBSCRIBE__1: '{"action": "on_client_subscribe"}'
      EMQX_WEB__HOOK__RULE__CLIENT__UNSUBSCRIBE__1: '{"action": "on_client_unsubscribe"}'
      EMQX_WEB__HOOK__RULE__SESSION__SUBSCRIBE__1: '{"action": "on_session_subscribed"}'
      EMQX_WEB__HOOK__RULE__SESSION__UNSUBSCRIBE__1: '{"action": "on_session_unsubscribed"}'
      EMQX_WEB__HOOK__RULE__SESSION__TERMINATED__1: '{"action": "on_session_terminated"}'
      EMQX_WEB__HOOK__RULE__MESSAGE__PUBLISH__1: '{"action": "on_message_publish"}'
      EMQX_WEB__HOOK__RULE__MESSAGE__DELIVERED__1: '{"action": "on_message_delivered"}'
      EMQX_WEB__HOOK__RULE__MESSAGE__ACKED__1: '{"action": "on_message_acked"}'点击复制复制失败已复制


经过上述配置,所有的事件都会转发到本地 3000 端口的 /emqx/webhook 路径上。


::: danger 警告 默认 WebHook 插件是禁用的,需要现在 Dashboard 控制台开启这个插件!!! :::

目录
相关文章
Prometheus-prometheus-webhook-dingtalk 安装
Prometheus-prometheus-webhook-dingtalk 安装
1507 0
Prometheus-prometheus-webhook-dingtalk 安装
|
2月前
|
JSON 机器人 Go
go接收alertmanager告警并发送钉钉
go接收alertmanager告警并发送钉钉
|
2月前
|
存储 Prometheus Cloud Native
[prometheus]配置alertmanager和钉钉告警
[prometheus]配置alertmanager和钉钉告警
|
3月前
|
Kubernetes API 容器
如何基于kubelet的kubeconfig鉴权拉secret
如何利用节点中kubelet的权限获取apiserver中的secret资源
59 0
|
5月前
|
Kubernetes 容器
阿里云OpenAPI咋取到ack集群的Deployment呀?
阿里云OpenAPI咋取到ack集群的Deployment呀?【1月更文挑战第17天】【1月更文挑战第84篇】
39 2
|
jenkins 持续交付
webhook
Webhook 是一种机制,可用于在两个不同的应用程序之间实现实时通信。它允许应用程序在特定事件发生时相互通信,实现自动化操作。
519 1
|
Prometheus 运维 Cloud Native
【2023】Prometheus-接入Alertmanager并实现邮件告警通知
【2023】Prometheus-接入Alertmanager并实现邮件告警通知
389 0
|
JSON Prometheus Cloud Native
AlertManager实现webhook告警(使用Postman测试)
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线 🍋相关学习资料及其参考文章:prometheus手册,邮件和微信告警,Alertmanager篇 🍊 可以去个人博客网站查看本博客排版更清晰:AlertManager ———————————————— 版权声明:本文为CSDN博主「程序员小王java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn
849 0
AlertManager实现webhook告警(使用Postman测试)
|
XML 存储 JSON
Jenkins 实现Gitlab事件自动触发Jenkins构建及钉钉消息推送
Jenkins 实现Gitlab事件自动触发Jenkins构建及钉钉消息推送
342 0
|
机器人
Gitlab上手指南(九)|如何通过gitlab webhooks绑定钉钉消息通知机器人
当我们push代码、合并代码、触发了CI/CD等等一系列操作的时候,都可以通过配置钉钉机器人,来接受到这些消息。下面我们实际操作一下。 找一个钉钉群,在智能群助手中添加钉钉机器人 点击...添加机器人
1464 0