1.1.1 推送长连接失败问题排查
(1)根据日志进行长连接问题排查在/home/admin/logs/yunpushcore 容器,执行下面命令,获取到安卓客户端设备的自建渠道的设备标示
grep adToken yunpushcore-mcometgw.log
(2)在 pushcore 容器上执行以下命令,其中token是在步骤1中获取到的标识,注意要在集群执行,拿到的是该设备长链接标示
grep [token] /home/admin/logs/yunpushcore/*.log|grep INIT
(3)在mcometgw容器中执行以下命令,token是在步骤2中获取到的长链接标识,该日志可以拿到该设备链接信息及客户端服务端数据交互信息。
grep [token] /home/admin/mcometgw/logs/mcometgw*.log
1.1.2 推送三方渠道发送失败问题排查
(1)以业务方消息ID(类似eb03ea598a5244dab8787d3faa5a26e3)为纬度进行查询yunpushcore所有日志
grep eb03ea598a5244dab8787d3faa5a26e3 *.log
(2)以消息ID(_0_0_93017fecc85c86c0bdcb936,上述日志中可查到该内部消息ID)为纬度查询额外信息,查询yunpushcore所有日志
grep 0_0_93017fecc85c86c0bdcb936 *.log
1.1.3 客户端无法收到消息常见问题
(1)服务端网络存在问题(关注三方渠道日志或者common-error日志中是否有报错),排查ACL及正向代理
(2)客户端网络存在问题(长链接无法保持,客户端网络不稳定)
(3)客户端使用参数与服务端无法对齐(请重点关注)
(4)appId workspaceId不对
(5)用户纬度发生换绑
1.1.4 推送数据统计
MPS在分析服务端推送日志时,可以通过以下日志文件进行分析:
1.pushcore
1)统计日志
(1)ACKED标识表示推送成功。
(2)由于自建渠道是根据回调来识别推送是否成功,因此,如果渠道是ANDROID,则状态总是为TO_PUSH。
(3)不包含自建渠道的群发日志。
日志路径:
/home/admin/logs/yunpushcore/yunpushcore-notify-stat.log
日志示例
2022-5-14 11:28:51.120,IOS,570DA89111847-test,iOS,1.0.0.0,570DA89111847_IOS-test,SIMPLE,-,-,200,true,true,2,ACKED,2.1.0,-,#,1,365
日志格式说明如表1-1所示。
表1‑1 统计日志格式表
序号 |
内容 |
说明 |
0 |
2022-5-14 11:28:51.120 |
时间段 |
1 |
IOS |
渠道(IOS:苹果 |
2 |
570DA89111847-test |
appcode |
3 |
iOS |
操作系统平台(Android、iOS) |
4 |
1.0.0.0 |
客户端版本 |
5 |
570DA89111847_IOS-test |
平台 |
6 |
SIMPLE |
推送类型 |
7 |
- |
任务 ID |
8 |
- |
模板 |
9 |
200 |
调用结果码 |
10 |
true |
推送调用结果 |
11 |
true |
业务结果 |
12 |
2 |
消息状态码 |
13 |
ACKED |
消息状态名称 |
14 |
2.1.0 |
Push SDK 版本 |
15 |
- |
场景名称 |
16 |
### |
分隔符 |
17 |
2 |
分钟级别调用总次数 |
18 |
7 |
分钟级别调用总耗时 |
2)回调日志
通过回调日志可以用做筛选出自建渠道非群发推送的到达数量。
(1)自建渠道通过回调日志来标识消息是否到达。如果收到回调,则说明自建渠道已经触达客户端。
(2)如果日志过滤渠道类型为 ANDROID,则表示是对所有自建渠道到达的统计。
(3)日志筛选条件:渠道类型:ANDROID;平台类型:android
(4)日志路径
/home/admin/logs/yunpushcore/yunpushcore-notify-digest.log
日志示例
2022-05-07 15:37:18.924,yunpushcore-pre,-,44ca3e36016e1000800030300a19438d706,null,570DA89111847-test,ANDROID,android,null,SIMPLE,console_1562558523003,_00_326108afdce8560897d8706,5520431,null,200,true,true,0,ACKED
日志格式说明如表1-2所示。
表1‑2 回调日志格式表
序号 |
内容 |
说明 |
0 |
2019-11-07 15:37:18.924 |
时间段 |
1 |
yunpushcore-pre |
|
2 |
- |
traceId |
3 |
44ca3e36016e1000800030300a19438d706 |
目标 ID |
4 |
null |
token |
5 |
570DA89111847-test |
appid |
6 |
ANDROID |
渠道类型(只取 ANDROID) |
7 |
android |
平台类型(只取 android) |
8 |
null |
客户端版本 |
9 |
SIMPLE |
连接类型 |
10 |
console_1562558523003 |
业务方消息 ID |
11 |
_00_326108afdce8560897d8706 |
消息 key |
12 |
5520431 |
任务 ID |
13 |
null |
模板名称 |
14 |
200 |
调用结果码 |
15 |
true |
推送调用结果 |
14 |
true |
业务结果 |
14 |
0 |
消息状态码 |
14 |
ACKED |
消息状态名称(只取 ACKED) |
2. mcometgw
用做搜集自建渠道的群发日志。因为移动推送核心(pushcore)无法收集自建渠道群发的日志,所以自建渠道群发的推送数需要从推送网关(mcometgw)获取。该日志文件包含所有的自建渠道推送消息。筛选条件如下:
(1)消息类型:bc(广播)
(2)请求/响应:请求为 0;响应为 1,只取 1。
(3)日志路径
/home/admin/mcometgw/logs/mcometgw-msg.log
(4)日志示例
2022-06-08 16:14:06:375,recv_c,39,0|1,bc,1,0a2617692bc375d39,-,6835887257032982529,0,59606498816056,-,-,2.1.0,651412853141494|049768964732502,9156D89101340-sit,1220083,测试模板2
(5)日志格式说明
日志格式如表1-3所示。
表1‑3 mcometgw日志格式表
序号 |
内容 |
说明 |
0 |
2019-04-24 16:03:30:585 |
时间段 |
1 |
recv_c |
类型(只取 recv_c) |
2 |
39 |
字节数 |
3 |
0|1 |
进程标识 |
4 |
bc |
消息类型,只取 bc(广播) |
5 |
1 |
请求(0)/响应(1),只取 1 |
6 |
0a2617692bc375d39 |
消息 key(msg_key) |
7 |
- |
原因 |
8 |
6835887257032982529 |
会话 ID(session_id) |
9 |
0 |
连接类型 |
10 |
59606498816056 |
厂商 |
11 |
- |
用户 ID |
12 |
- |
客户端版本 |
13 |
2.1.0 |
Push SDK 版本 |
14 |
651412853141494 |
049768964732502 |
15 |
9156D89101340-sit |
App ID |
16 |
1220083 |
任务 ID |
17 |
测试模板2 |
模板名称 |