乐趣区

关于apisix:再下一城两大社区携手打造-API-日志监控新利器

Apache RocketMQ 自 2016 年走入寰球开发者视线以来,目前已倒退成为电商、金融、教育、科技等多畛域技术中台的外围数据底座。

据不齐全统计,国内用户(包含金融、保险、财产和券商等各畛域百强企业)超过 70% 的企业都在外围利用链路上规模化部署了 Apache RocketMQ,包含寰球 5 大云厂商也纷纷上线了无关 Apache RocketMQ 的云产品服务。

除了惯例利用于外围业务音讯的解决,也有十分多的公司开始应用 Apache RocketMQ 进行日志解决与剖析。

插件介绍

为了满足宽广企业用户对于日志解决的需要,Apache APISIX 公布了基于 Apache RocketMQ 的日志插件 rocketmq-logger,反对将 API 接口申请日志以 JSON 模式推送给 RocketMQ 集群。

该插件应用 RocketMQ 原生反对的 TCP 协定,通过 OpenResty 提供的无阻塞 TCP Socket API,实现了高并发、高性能拜访等性能个性。

同时,应用 rocketmq-logger 插件发送的 API 日志格局与其余日志插件雷同,同样反对批量发送日志、自定义日志格局、反对重试等性能。

此外,该插件还反对 TLS 加密传输,以及配置 AK、SK 认证形式拜访 Apache RocketMQ,满足用户对于数据安全的需要。

如何应用

启动 RocketMQ

首先在本地利用下述命令来启动 RocketMQ,具体具体步骤可参考官网文档。

wget https://dlcdn.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip
unzip rocketmq-all-4.9.2-bin-release.zip
cd rocketmq-4.9.2/
nohup sh bin/mqnamesrv &
nohup sh bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf &

在 Apache APISIX 中开启插件

在生产环境中只需执行一条命令,就能够为指定路由启用 rocketmq-logger 插件。

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"plugins": {"rocketmq-logger": {"nameserver_list": ["127.0.0.1:9876"],"topic":"test",
      }
   },
   "upstream": {
      "nodes": {"127.0.0.1:1980": 1},
      "type": "roundrobin"
   },
   "uri": "/hello"
}'

启用 rocketmq-logger 插件后,任何对端点 URI/hello 的申请都会将日志推送到 Apache RocketMQ 中。

具体反对的参数详情可参考下方表格:

插件元数据设置

当然,如果在应用过程中不想应用默认的日志格局,也能够对插件进行元数据设置。

首先能够通过模板模式来调整相干日志格局。

日志格局调整实现后,须要向 /apisix/admin/plugin_metadata 端点发出请求来更新元数据,具体可参考下方代码。

curl http://127.0.0.1:9080/apisix/admin/plugin_metadata/rocketmq-logger -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"log_format": {"host":"$host","@timestamp":"$time_iso8601","client_ip":"$remote_addr"}
}'

禁用插件

如果您不再应用该插件,可通过在插件配置中删除相应的 JSON 配置来禁用 rocketmq-logger 插件。该过程无需重新启动服务,输出下方代码即可立刻失效。

curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"methods": ["GET"],"uri":"/hello","plugins": {},"upstream": {"type":"roundrobin","nodes": {"127.0.0.1:1980": 1}
   }
}'

想要理解更多实际?

12 月 26 日(周日),Apache APISIX 社区将联结 Apache RocketMQ 社区为大家带来更多实际内容的线上分享。想要理解更多利用实际内容,一起来参加此次的线上 Meetup 吧!泛滥精彩议题内容等你来看。

入群交换

扫描下方二维码,退出 Apache APISIX 线上直播交换群,理解更多社区动静!

退出移动版