微信支付網絡監控工具部署指引
1. 簡介
爲定位解決公網網絡偶現不穩定的問題,特提供此監控程序。
監控程序可監控商戶服務器與微信支付服務器之間的網絡質量,並將監控數據上報到遠端,微信支付技術人員可利用監控數據進行問題的分析與定位。
監控程序有兩種工作模式:常駐後臺運行;一次性檢查。
如果您對程序的邏輯與性能存在疑慮,請查看文檔最後的附錄“程序邏輯簡介”。
2. 常駐後臺運行
2.1 獲取程序包
獲取程序包,並拷貝到服務器/data目錄(或其他目錄)下。
文件地址:https://wx.gtimg.com/opitil/file/wxpaymonitor-stable.tgz
您可以直接在服務器上執行:
wget --no-check-certificate
https://wx.gtimg.com/opitil/file/wxpaymonitor-stable.tgz
或者,在頁面打開鏈接,進行下載,然後上傳至服務器
2.2 解壓程序包
命令:tar -xvzf wxpaymonitor-stable.tgz
2.3 啓動程序。
使用service.sh腳本啓動程序。
命令:./service.sh start
2.4 輸入“微信支付商戶號”。
首次運行程序會要求您輸入商戶號。如下圖所示。
商戶號mch_id可以登錄商戶平臺-賬戶概覽頁面獲取,如果不清楚,請填0。
2.5 確認程序正常運行
./service.sh show
3. 一次性檢查
./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測耗時 |
4. 其他功能
運行./wxpaymonitor -h,可以查看所有命令參數。如下圖。
(1)./wxpaymonitor -i
展示程序的關鍵配置信息。
微信支付技術人員可能會要求您提供輸出信息的前兩行,以便在管理系統中能夠查詢到您的數據。如圖所示。
(2)./wxpaymonitor -m
設置mch_id。
您初次啓動時,可能設置mch_id爲0。當您獲取到準確的mch_id後,可通過此命令進行設置。重啓服務後生效,重啓命令:./service.sh restart。
(3)./wxpaymonitor -u
檢測更新。
只提示是否存在新版本,不會自動進行更新操作。考慮到您可能對自動更新存在顧慮,所以沒有實現自動更新的功能。您可以聯繫微信支付技術人員,獲取最新版本。
5. 附錄一:程序邏輯簡
監控程序使用golang編寫,程序常駐後臺運行時,會做三件事。
5.1 對微信支付API發起一次GET請求
請求API是微信支付查單接口,https://api.mch.weixin.qq.com/pay/orderquery。通過發起一次GET請求,獲取:域名解析耗時;connect耗時;域名解析IP列表。
5.2 對一個隨機域名發起一次域名解析
隨機域名是****.mmpay.imtmp.net,這個特定的域名解析時,最終會遞歸到騰訊的DNS根服務器,根服務器會拿到用戶的LocalDns。
5.3 Ping測試api.mch.weixin.qq.com解析出的IP
對解析出的IP列表發送ICMP包,三次探測取平均值,得到ping測延時。
監控的結果會進行上報,上報地址爲:https://api.mch.weixin.qq.com/opitil/mReport。微信支付內部提供管理平臺對數據進行分析、繪圖,輔助技術人員定位問題。
程序定時每分鐘運行一次。
做一次性檢查時,程序邏輯基本類似,只是將檢測結果輸出到控制檯。
6. 附錄二:程序目錄結構
bin --- 工具腳本目錄
data --- 數據文件目錄
etc --- 配置文件目錄
log --- 日誌目錄
service.sh --- 啓停腳本
wxpaymonitor --- 程序二進制