怎么排查定位社区版后台错误

[复制链接]
查看746 | 回复2 | 2024-8-27 10:07:18 | 显示全部楼层 |阅读模式
本帖最后由 chensg 于 2024-8-27 10:07 编辑

       社区版没有提供日志监控系统,当前端或APP调用后台API发生错误怎么排查问题呢?本文和大家谈谈这个问题及解决之道。
       要排查后台问题,首先必须理清后系统的通讯图,便于摸清排查的方向。
       爱星物联IoT后台的通讯图如下所示:

       call.jpg

       前端和APP接口请求,首先经过nginx代理,分别路由到iot_cloud_api_service服务和iot_app_api_service服务,后两者根据处理逻辑,会调用后台微服务及第三方组件、平台。

       第三方组件中,我们用到了zipkin,用来进行调用链路的追踪。所有经过两个api服务的调用,调到其它微服务时,记录调用服务,调用层级、调用开始时间、持续时间等。

       zipkin.PNG
      
       理清通讯图之后,我们可以根据调用路径挨个排查。当然,也不是每次都需要这样,在熟悉代码的情况下,可以不用挨个排查,基本可以直接根据问题现象推断出问题的点及其可能的原因。本文假设社区版用户还不熟悉代码逻辑时排查问题。

       后续介绍下每类服务的路径及文件作用,日志内容格式不再具体介绍,基本看字面意思就能理解。

       (1) Nginx日志。
       默认情况下,在安装目录下的deploy/web/log路径,主要由2各文件,access.log是访问日志,每个api调用,都会记录该日志,一般通过该日志查看调用记录、用时、响应等。error.log是错误日志,当发生错误时会记录。

       (2) API日志。
       iot_cloud_api_service和iot_app_api_service服务的日志。在安装目录下的deploy/service/logs路径。
其中,iot_cloud_api_servic服务的日志文件名,默认情况下是iot_cloud_api_service.log和iot_cloud_api_service.log.error。
iot_cloud_api_service.log记录所有的日志,crash日志除外。iot_cloud_api_service.log.error主要记录crash日志。
iot_app_api_service服务的日志文件名,默认情况下是iot_app_api_service.log和iot_app_api_service.log.error。

       (3)微服务日志。
       其它所有iot_{XXX}_service的服务(含api关键字的除外)都是微服务,微服务的日志名称路径同api服务,在deploy/service/logs路径下,文件名规则也类同,默认都是以服务名为日志文件名。
       log.PNG

       (4)第三方组件。
       默认情况下,在安装目录下的deploy/third路径下,是用到的所有第三方组件服务。一般在对应组件的子目录下,可能有的组件服务未开启log。详情可查看组件服务的docker配置,在deploy/third/docker-compose.yml对应的组件服务节点下。

       (5)第三方服务。
       这里的第三方服务是指第三方平台服务,无需部署,直接通过配置API进行调用的服务。第三方服务一般要求有开发者账号,可进入对应服务的控制台查看。

        了解了以上通讯图、调用链路、日志信息后,遇到后台问题就会有方向了,可以根据这些信息迅速定位到对应的服务及日志文件,对日志内容进行分析了。

call.jpg
log.PNG
zipkin.PNG
回复

使用道具 举报

妖猊 | 2024-8-27 14:39:21 | 显示全部楼层
这是啥?
回复

使用道具 举报

Yhue | 2024-8-28 09:14:19 | 显示全部楼层
什么的社区版
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则