博客 / 詳情

返回

連鎖門店可用性監測和進程監測最佳實踐

前言

在連鎖零售企業的數字化運營中,多門店通過網絡實時訪問總部業務系統(如收銀、庫存、會員管理等核心模塊)是其日常經營的基礎支撐。然而,由於門店分佈廣泛、網絡環境複雜,網絡或應用服務的任何中斷都可能直接阻斷交易流程、影響顧客體驗,進而造成即時營收損失與長期品牌信任損耗。據行業調研,門店單次網絡中斷平均會造成 15-30 分鐘的業務停滯,高峯時段(如週末、節假日)單店每小時營收損失可達數千元,疊加顧客投訴與復購率下降的隱性成本,對門店整體收益與品牌口碑形成顯著衝擊。

具體而言,門店終端離線將直接切斷門店與總部的網絡通路,線上業務停滯;DNS 解析異常會導致門店終端無法定位業務系統域名(如收銀系統域名指向錯誤 IP),用户無法完成支付;DNS 污染/劫持可能將用户導向惡意或無效頁面,引發交易失敗甚至數據泄露風險;應用進程異常(如 POS 服務崩潰、庫存同步程序卡死)則會使關鍵功能失效,導致顧客排隊流失或訂單積壓。

因此,通過門店主動撥測與進程監測實時感知主機離線、DNS 解析異常、DNS 污染、應用進程中斷等關鍵風險,是保障連鎖門店網絡穩定性與應用可用性、最小化業務中斷損失的必要手段,也是支撐連鎖企業規模化運營與數字化服務連續性的核心運維實踐。

觀測雲簡介

觀測雲是一款專為 IT 工程師打造的全鏈路可觀測產品,它集成了基礎設施監控、應用程序性能監控和日誌管理,為整個技術棧提供實時可觀察性。這款產品能夠幫助工程師全面瞭解端到端的用户體驗追蹤,瞭解應用內函數的每一次調用,以及全面監控雲時代的基礎設施。此外,觀測雲還具備快速發現系統安全風險的能力,為數字化時代提供安全保障。

DataKit

DataKit 是觀測雲提供的開源、跨平台的數據收集和監控工具。它旨在幫助用户收集、處理和分析各種數據源,如日誌、指標和事件,以便進行有效的監控和故障排查。DataKit 支持多種數據輸入和輸出格式,可以輕鬆集成到現有的監控系統中。在門店觀測場景中,DataKit 可運行在 Windows 7、Server 2008R2 或更高版本,其可用性監測功能(撥測)、主機健康檢查功能至關重要。

安裝 DataKit

測試終端:Windows Server 2019 Datacenter Edition

進入觀測雲「集成」-「DataKit」頁面,切換到 Windows 菜單頁,可看到 Windows 版 DataKit 的安裝命令。

圖片

在 windows server(模擬門店主機)上使用管理員權限打開 PowerShell,執行上述安裝命令。

圖片

使用 datakit monitor 命令,如有下方的輸出則證明 DataKit 安裝成功。

datakit monitor

圖片

新建撥測節點

進入「可用性監測」-「自建節點管理」菜單,點擊「新建節點」。

圖片

根據實際情況填寫節點信息,如下所示:

圖片

創建完成後,點擊「獲取配置」。

圖片

獲得如下配置信息,稍後需要複製到 DataKit 的採集器配置文件中。

圖片

配置撥測節點參數

在客户端主機上進入 DataKit 的撥測採集器目錄,默認是在 C:\Program Files\datakit\conf.d\network,將 dialtesting.conf.sample 文件複製一份,去掉其後綴、改名為 dialtesting.conf,如下圖所示:

圖片

編輯 dialtesting.conf 配置文件,將觀測雲界面上自建撥測節點的配置填寫到對應字段中。

圖片

保存後重啓 datakit 服務,再執行 datakit monitor 命令時可以看到 dialtesting 採集器已經成功開啓。

datakit serivce -R
//重啓datakit 服務

圖片

配置撥測任務

進入「可用性監測」-「新建監測任務」-「API撥測」。

圖片

按頁面提示選擇撥測類型,配置撥測目標地址、可用判斷、撥測頻率,勾選撥測節點為剛才創建的自建撥測節點,如下圖所示:

圖片

本次測試所用配置的參數如下:

配置項 配置參數
撥測類型 HTTP協議
URL https://www.guance.com
名稱 門店撥測-測試
可用判斷 默認模式響應狀態碼是200
撥測節點 自建節點
撥測頻率 1min

保存任務後稍等片刻,便可以在「查看器」看到該任務的撥測數據。

圖片

場景1:門店終端離線

場景描述

終端宕機、門店網絡中斷等情況都會導致門店無法訪問總部系統、POS、進銷存等關鍵業務平台,影響正常營業與交易。

場景模擬

當終端宕機、門店網絡中斷等異常情況發生時,門店終端上的 DataKit 撥測節點亦將無法上報撥測數據,因此我們在觀測雲上配置「數據斷檔」監控,可以有效地對終端離線等情況進行監控告警。我們將測試的 windows server 關機以便模擬該現象。

關鍵步驟

  • Step1:確保撥測任務正常,觀測雲上能看到持續產生的撥測數據。

圖片

  • Step2:在觀測雲上配置無數據告警。

進入「監控」-「監控器」-「新建監控器」,配置一個「可用性數據檢測」類型的監控器。在配置時,將「數據斷檔」配置如下,這表示如果觀測雲在 5 分鐘內沒有收到數據上報,則觸發一個嚴重級別事件,並按照監控器配置發送一條監控告警。

圖片

本測試任務的其他配置參數為:

配置項 配置參數
監控器類型 可用性數據檢測
檢測頻率 1分鐘
檢測區間 最近1分鐘
檢測指標 撥測類型:HTTP撥測撥測地址:全部指標:平均響應時間維度:node_name,name篩選:name=門店撥測-測試
觸發條件 Result:嚴重級別-大於5秒
數據斷檔 最近5分鐘查詢條件為空,觸發嚴重事件
  • Step3:將測試用的 windows server 關機,模擬門店終端離線。
  • Step4:當數據斷檔時間超過設定閾值時,觀測雲將產生「數據斷檔」事件,並按照設定的通知渠道發送給告警接收人/團隊。 進入觀測雲「事件中心」可查看該事件。

圖片

觀測雲還提供了「IoT 精簡版」DataKit,專門為 IoT 設備設計的,具有更小的資源佔用和更少的功能,以適應資源受限的嵌入式設備。部分連鎖零售品牌在門店 SD-WAN 網關中安裝 DataKit,來實現門店網絡和終端的監控。

IoT 精簡版 DataKit 的鏈接為
https://docs.guance.com/datakit/datakit-install/#lite-install

場景2:DNS 解析失敗

場景描述

眾所周知,客户端正確解析服務端網站域名是正常訪問業務的前提。運營商 Local DNS 或互聯網 DNS Server 故障都可能導致 DNS 解析異常,這些情況都會引起門店在線業務中斷。

場景模擬

將測試 windows server 的 DNS 地址修改為一個錯誤的 IP 地址,模擬 DNS 解析異常。

關鍵配置

  • Step1:確保撥測任務正常,觀測雲上能看到持續產生的撥測數據。

圖片

  • Step2:在觀測雲上配置可用性監測告警,監控“可用率”指標。

進入「監控」-「監控器」-「新建監控器」,配置一個「可用性數據檢測」類型的監控器。在配置時,將監控指標配置為「可用率」,這表示如果撥測任務的可用率下降,則觸發事件並按照監控器配置發送一條監控告警。(「可用率」由創建撥測任務時的「可用判斷」來決定,例如響應狀態碼≠200等)

圖片

本測試任務的其他配置參數為:

圖片

  • Step3:修改測試 windows server 的 DNS 地址,引發 DNS 解析異常。

配置 windows server 的網絡適配器,將DNS服務器配置為 2.2.2.2 並保存。

圖片

此時通過瀏覽器訪問目標網站,瀏覽器會提示找不到目標服務器 IP 地址,説明 DNS 地址配置成功。

圖片

  • Step4:等待片刻,觀測雲將產生「可用性下降」的事件並按照設定的通知渠道發送給告警接收人/團隊。 進入觀測雲「事件中心」可查看該事件。可以點擊右上角「關聯查看」-「查看相關全部可用性監測」跳轉到撥測查看器。

圖片

跳轉到撥測查看器頁面,可以看到當前的撥測任務都是失敗狀態(狀態為橙紅色)。

圖片

點擊撥測詳情,可查看請求失敗原因,顯然這是一個 DNS 解析異常而產生的錯誤。

Get "https://www.guance.com": dial tcp: lookup www.guance.com: no such host

圖片

在 DNS 解析異常時,撥測數據依然可以從門店終端進行上報。這是因為 DataKit 和後端服務之間採用長連接,不會頻繁進行 DNS 解析。

場景3:DNS 劫持/污染

場景描述

除了正常網絡故障導致的 DNS 解析異常外,互聯網中普遍存在 DNS 劫持/污染攻擊,攻擊者通過篡改 DNS 服務器的解析記錄,將用户請求的合法域名惡意指向虛假或惡意網站,從而可能導致用户訪問異常、數據泄露甚至門店在線業務服務中斷。

場景模擬

通過修改 windows server 的 hosts 文件,強制將目標網站解析到某個 IP。同時,通過觀測雲的 pipeline 功能對撥測的 DNS 解析結果進行判斷,如果解析的 IP 地址並不屬於指定 IP 網段,則進行告警。

關鍵配置

  • Step1:確保撥測任務正常,觀測雲上能看到持續產生的撥測數據。本場景我們使用 baidu 進行來做演示。

圖片

  • Step2:檢查撥測目標網站/業務系統的正確 IP 地址。在測試 windows server 上進行 DNS 解析,DNS Server 返回 baidu 的 IPv4 地址為 182.61.200.108 和 182.61.200.110,他們都屬於 182.61.200.0/24 網段。

圖片

  • Step3:添加觀測雲 pipeline,對撥測任務的目標 IP 進行判斷。

進入觀測雲「管理」-「pipelines」頁面,新建一箇中心 pipeline,將數據類型選為「可用性撥測」。數據來源選擇「http_dial_testing」,配置自定義的 Pipeline 名稱,點擊「一鍵獲取樣本」將撥測任務的 JSON 格式的數據顯示到網頁中。

圖片

將以下 pipeline 代碼粘貼到「定義解析規則」的空白處,這段代碼表示:如果撥測任務的目標 IP 屬於 182.61.200.0/24 網段,便添加一個字段 dns_result=true;若目標 IP 不屬於該網段,則添加 dns_result=false。

json(_, dest_ip)
if cidr(dest_ip, "182.61.200.0/24") {
  add_key(dns_result, "true")
} else {
  add_key(dns_result, "false")
}

圖片

配置好解析規則後,點擊「開始測試」可以看到測試結果,如符合預期則保存該 pipeline。後續的撥測任務將自動應用 pipeline 規則對數據進行處理。

圖片

  • Step4:配置監控告警,對 dns_result 這個字段進行判斷。

進入觀測雲「監控」-「監控器」-「新建監控器」-「閾值檢測」,參考下面的表格進行配置。

圖片

圖片

圖片

  • Step5:配置 windows server 的 hosts 文件,將 baidu 強制解析為某個 IP。保存後,瀏覽器訪問 baidu 將無法正常訪問。

圖片

  • Step6:在修改 DNS 解析記錄之後稍等片刻,觀測雲將產生相關事件,並按照設定的通知渠道發送給告警接收人/團隊。 進入觀測雲「事件中心」可查看該事件。

圖片

從事件跳轉到「可用性監測」後,可以看到異常撥測任務中關鍵信息:

字段 字段説明
dst_ip 目標IP地址,是DNS Server實際解析到的IP地址。正常情況下是應用的合法IP,在遭到DNS劫持/污染時是非法網站IP。
dns_result 通過pipeline新增的、用於判斷DNS解析結果是否正確的字段。在遭遇DNS劫持/污染時,DNS解析結果未落在指定網段,則該字段為false,反之為true。
Country、Province、City、ISP 國家、省份、城市、運營商信息,有助於幫助運維團隊瞭解到DNS劫持/污染影響的範圍,並與相關ISP協同進行處理。
node_name 自定義撥測節點名稱,自定義名稱需要能讓運維團隊直觀看出門店信息,例如“廣州市南沙區萬達廣場店-1號終端”
請求失敗原因 展示了撥測任務出錯的詳細信息,能反映撥測節點當時的故障現場,幫助運維團隊向ISP進行舉證、投訴。

圖片

場景4:門店應用進程中斷

場景描述

門店的 windows 終端上會運行「點單系統」等重要應用,應用進程的正常運行對門店運營至關重要,總部的運維團隊應當第一時間收到門店應用的進程異常告警。

場景模擬

DataKit 可以採集應用進程的指標,並對應用進程的存活進行監控告警。因此在模擬該場景時,可在 windows server 上指定運行中的 chrome 瀏覽器進程,通過結束 chrome 進程來模擬門店應用進程中斷。

關鍵步驟

  • Step1:打開 DataKit 的「host_healthcheck」採集器,上報進程的存活指標。

進入已安裝 DataKit 的 windows server 的如下路徑 C:\Program Files\datakit\conf.d\host,將 host_healthcheck.conf.sample 文件複製一份並修改名稱為 host_healthcheck.conf。

圖片

修改 host_healthcheck.conf 文件,將 names 字段的值配置為應用進程名(對應 DataKit 採集到的 process_name 字段的值)。

圖片

配置文件中的值對應進程名稱,即 process_name 字段的值。可在「基礎設施」-「進程」中找到指定進程。

圖片

修改配置文件後需重啓 DataKit 方可使配置生效。

datakit service -R

通過 datakit monitor 命令觀察,如果看到 host_healthcheck 採集器正常上報數據,則配置成功,如下圖所示。

圖片

進入「指標」-「指標分析」,可以看到 host_process_exception 指標集下新增了 exception 指標,並且按照採集器配置文件中頻率進行刷新。(在本次測試中, host_healthcheck 採集器的採集頻率為 1 分鐘)當應用進程正常運行時,該指標的值為 0。而當進程異常終止時,該指標將接收到 DataKit 上報的異常信號,exception 指標的值為 1。

圖片

也可以採用 DQL 方式進行查看 exception 指標的變化情況。

M::`host_process_exception`:(avg(`exception`)) { `process` = 'chrome.exe' }
  • Step2:配置監控器,對應用進程的存活進行監控。

圖片

關鍵配置如下圖所示,配置完成後保存監控器。

圖片

圖片

  • Step3:結束應用進程,觸發告警。在 windows server 上使用「任務管理器」結束 chrome 瀏覽器進程。

圖片

  • Step4:當進程被終止後,觀測雲將接收到 DataKit 上報的 exception=1 的信號,並將按照監控器配置產生 Critical 級別事件,通過設定的通知渠道發送給告警接收人/團隊。 進入觀測雲「事件中心」可查看該事件。

如下圖所示,觀測雲將接收到 chrome 進程的 excetpion 指標值為 1 的信號。

圖片

監控器產生的事件如下:

圖片

總結

綜上,通過在連鎖門店部署針對 DNS 解析異常、DNS 污染、主機離線及應用進程異常的撥測與監測方案,能夠實時感知網絡與應用層的潛在風險,快速定位中斷根因,有效規避因網絡或服務不可用導致的交易停滯、顧客流失及隱性收益損失。該實踐以“主動監測+精準告警”為核心,為連鎖企業構建了覆蓋全網門店的業務連續性保障體系,是支撐數字化運營穩定、提升門店服務韌性的關鍵基礎。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.