digiC 簡易介紹
1. digiC 簡介
什麼是 digiC?
digiC 的全名是digiCollector是由 TPIsoftware 產品處團隊開發的一款獨立工具,專門用於蒐集網路傳輸資料的 Collector 工具。它可攔截 HTTP/HTTPS 協議的請求,進行監控與數據蒐集,且具備非侵入式設計,無需對客戶端程式進行修改。
digiC 的主要功能
- API 監控與盤點:記錄所有 API 請求資訊,包括請求次數、回應時間、請求明細等。
- 鏈路追蹤:可將多個應用系統的請求數據串接起來,進行完整的請求追蹤與分析。
- 非侵入式監控:不需要改動現有的應用系統即可蒐集數據。
2. 系統需求與架構
系統需求
- 作業系統:Linux / Windows
- 依賴環境:需支援 HTTP/HTTPS 監聽
- 網路要求:需能夠與目標應用程式通訊
原始架構
在未加入 digiC 之前,Client 端(Web/APP)直接與後端 API 伺服器溝通,請求 API 並獲取回應,請求流向如下圖所示:
加入 digiC架構
確定安裝 digiC 前端的程式不需要修改,但是後端API的port需要調整(如下圖digiC取代原API 443port,原API採用新的port 18443),當加入 digiC 之後,所有請求將會先經過 digiC 進行攔截與監控會寫入dgl-packet及dgc-monitoring兩個index到設定的elastic search中,同步轉發至後端 API 伺服器,確保能夠記錄所有 API 訪問行為,新的請求流向如下圖所示:
適用於高資料流量的架構
在某些高併發、高流量的環境下,digiC 直接將數據寫入 Elasticsearch (ES) 可能會導致寫入瓶頸,進而影響日誌的即時性與系統效能。為了解決這個問題,可以透過 Redis 作為中介緩衝層,讓 digiC 先將收集到的日誌數據寫入 Redis,然後再由 Logstash 定期從 Redis 讀取數據並寫入 Elasticsearch。這種方式能有效減少 ES 直接寫入的負載,提高整體系統的穩定性與效率。
3. 使用情境
API 監控與盤點
digiC 可部署在應用系統前端,所有請求將透過 digiC 進行轉發與監控。
- 可記錄 API 的使用情況,如:
- API 請求次數
- 回應時間
- 請求明細(Header、Body、URL)
- 可偵測 API 是否有異常存取,如過高的請求頻率或可疑來源 IP。
- 可配合 API Gateway進行影子API盤點,如沒被註冊的API確一直暗地被呼叫,可以找出影子API來進行API的有效管理。
鏈路追蹤
- 部署方式:將 digiC 部署於多個應用系統前方,形成統一數據串接。
- 用途:
- 追蹤 API 調用鏈路,分析請求流向。
- 偵測系統內部請求異常,輔助故障排查。
常見問題與解決方案
- Q1:digiC 影響系統效能嗎?
- A:digiC 採用輕量級設計,不會影響應用系統效能。
- Q2:digiC 怎麼保證服務穩定性?
- A:digiC 有內建livenss的api,可以透過container 或是OS對應的排程來偵測服務是否持續提供,當服務無法回應時再執行服務的重啟。
- Q3:digiC 只能連線digiLogs嗎?
- A:digiC 寫入到ES 後 digiRunner 跟digiLogs都可以查詢到相關資料