【问题现象】调用‘按事件类型订阅事件’,接口返回成功,但是一直没有收到事件。
【接口介绍】
【第三方订阅测试工具】subtool可用于第三方订阅综合安防平台事件后检查能否正常接收事件数据,用户可以根据需要下载使用。
【问题排查建议】请按如下顺序逐一排查问题,每一步确认没问题后再进行下一步。
第一步:检查第三方调用“按事件类型订阅事件”接口的请求参数
如【接口介绍】中所说,请求参数中subType值决定订阅的是原始事件还是联动事件。如果subType值为1,订阅的是联动事件,那么在平台上未配置联动规则的原始事件即使产生了也不会推送给第三方回调服务。
第二步:检查平台界面上是否产生了对应事件。
事件订阅方式是实时推送给第三方,需要确保平台界面上本身已经产生了对应事件,如果没有,那没有收到事件是正常现象。
第三步:检查网络。
事件推送过程是平台服务器发送一个http请求到第三方的回调服务上,所以需要确保网络正常。
iSC平台如果安装在linux系统:可以ssh到平台服务器后台执行 curl -X POST -d “{}” “第三方回调服务url” -s -w "\nhttpCode:%{http_code}\n" -o /dev/null/ 命令,查看返回状态码。
如下图返回状态码为200,说明平台能正常访问到第三方回调服务;如果返回其他状态码,需要第三方开发人员自行定位。
iSC平台如果安装在windows系统:可以安装postman工具,查看是否能正常调用,如下图状态码为200,说明平台服务器能正常访问第三方回调服务,如果返回其他状态码,需要第三方开发人员自行定位。
第四步:修改事件服务esc日志级别
进入运管中心-状态监控-搜索esc-点击服务参数配置(如果无法进入请联系现场的分公司技术人员进行协助):
找到配置项事件服务日志等级,点击编辑按钮:
将日志等级改为Trace及以上,生效时长自定义,建议一天。
修改后点击保存并下发:
第五步:查看日志判断是否推送
查看日志有两种方式,一种是在运管中心直接下载
另外一种是SSH到服务器后台直接查看,推送失败截图如下,如果第3步网络排查无问题,那么此处失败原因可通过第6步抓包定位。
推送成功截图如下:
第六步:抓包
linux服务器上执行 tcpdump –i any port “第三方回调服务端口” –s 0 –v –w /home/hik/0804.pcap ,如下图
抓包文件可以使用wireshark查看: