微信支付网络监控工具指引
更新时间:2024.11.13简介
为定位解决公网网络偶现不稳定的问题,特提供此监控程序。
监控程序可监控商户服务器与微信支付服务器之间的网络质量,并将监控数据上报到远端,微信支付技术人员可利用监控数据进行问题的分析与定位。
监控程序有两种工作模式:常驻后台运行;一次性检查。
如果您对程序的逻辑与性能存在疑虑,请查看文档最后的附录“程序逻辑简介”。
常驻后台运行
1、获取程序包
获取程序包,并拷贝到服务器/data目录(或其他目录)下。
您可以直接在服务器上执行:
wget --no-check-certificate
https://wx.gtimg.com/opitil/file/wxpaymonitor-stable.tgz
或者,在页面打开链接,进行下载,然后上传至服务器
2、解压程序包
命令:tar -xvzf wxpaymonitor-stable.tgz
3、启动程序。
使用service.sh脚本启动程序。
命令:./service.sh start
4、输入“微信支付商户号”。
首次运行程序会要求您输入商户号。如下图所示。
商户号mch_id可以登录商户平台-账户概览页面获取,如果不清楚,请填0。
5、确认程序正常运行
./service.sh show
一次性检查
./wxpaymonitor -t
对微信支付API服务进行一次性检查。
包含:接口网络耗时;获取LocalDns;测试微信支付服务器延时。
如下图所示。
图中各字段解释如下表所示。
字段名 | 含义 |
RemoteIp | DNS解析得到的IP |
Total duration | 接口总耗时 |
Lookup duration | DNS解析耗时 |
Connection duration | Connect耗时 |
Request duration | 请求耗时 |
UserIp | 商户服务器IP |
LocalDns | LocalDns |
WXPAY_IP | 微信支付服务器IP |
TIME | Ping测耗时 |
其他功能
运行./wxpaymonitor -h,可以查看所有命令参数。如下图。
(1)./wxpaymonitor -i
展示程序的关键配置信息。
微信支付技术人员可能会要求您提供输出信息的前两行,以便在管理系统中能够查询到您的数据。如图所示。
(2)./wxpaymonitor -m
设置mch_id。
您初次启动时,可能设置mch_id为0。当您获取到准确的mch_id后,可通过此命令进行设置。重启服务后生效,重启命令:./service.sh restart。
(3)./wxpaymonitor -u
检测更新。
只提示是否存在新版本,不会自动进行更新操作。考虑到您可能对自动更新存在顾虑,所以没有实现自动更新的功能。您可以联系微信支付技术人员,获取最新版本。
附录一:程序逻辑简
监控程序使用golang编写,程序常驻后台运行时,会做三件事。
(1)对微信支付API发起一次GET请求
请求API是微信支付查单接口,https://api.mch.weixin.qq.com/pay/orderquery。通过发起一次GET请求,获取:域名解析耗时;connect耗时;域名解析IP列表。
(2)对一个随机域名发起一次域名解析
随机域名是****.mmpay.imtmp.net,这个特定的域名解析时,最终会递归到腾讯的DNS根服务器,根服务器会拿到用户的LocalDns。
(3)Ping测试api.mch.weixin.qq.com解析出的IP
对解析出的IP列表发送ICMP包,三次探测取平均值,得到ping测延时。
监控的结果会进行上报,上报地址为:https://api.mch.weixin.qq.com/opitil/mReport。微信支付内部提供管理平台对数据进行分析、绘图,辅助技术人员定位问题。
程序定时每分钟运行一次。
做一次性检查时,程序逻辑基本类似,只是将检测结果输出到控制台。
附录二:程序目录结构
bin --- 工具脚本目录
data --- 数据文件目录
etc --- 配置文件目录
log --- 日志目录
service.sh --- 启停脚本
wxpaymonitor --- 程序二进制