配置一般使用者監視

與其他類型的監視資料 (例如基礎架構或應用程式資料) 相反,一般使用者監視一律從在廣域網際網路或本端內部網路內執行的未授信裝置收集。 因此,需要採取額外的配置步驟,以確保一般使用者的 Web 瀏覽器及行動式裝置可以建立受您組織控制的 使用公用網域名稱的安全連線 。 此外,請確保一般使用者僅取得特定一般使用者監視端點的存取權,而不是監視基礎架構的任何其他部分。

下列各節說明相關監視端點、公開的 API、安全考量,以及如何讓一般使用者可以使用監視端點。

Monitoring 端點

Instana 自行管理 (內部部署) Instana 後端會在埠 86 (HTTP) 及 446 (HTTP) 下公開 HTTP 一般使用者監視端點。 這些埠可以在網際網路或內部網路上提供 (例如直接或透過反向 Proxy) ,以容許下載 JavaScript 代理程式及資料接受。 這些埠的數目故意減少至最小,以減少可能的攻擊向量,並容許簡單部署監視端點。

這些埠故意不是 80443 ,因為這些埠已重新安置以存取 Instana 的使用者介面。 透過分隔資料進入和使用者介面,可以更輕鬆地安全地部署 Instana 一般使用者監視解決方案。

對於下列路徑,在 86446 (代理到內部埠 2999) 上接受 HTTP 要求:

  • 網站監視資料接受
    • GET /eum/
    • POST /eum/
  • JavaScript 代理程式下載
    • GET /eum/eum.min.js
    • GET /eum/eum.min.js.map
    • GET /eum/eum.js
    • GET /eum/eum.js.map
    • GET /eum/eum.debug.min.js
    • GET /eum/eum.debug.min.js.map
    • GET /eum/eum.debug.js
    • GET /eum/eum.debug.js.map
  • 行動應用程式監視資料接受
    • POST /eum/mobile

在 Instana 使用者介面中,建議您使用監視端點的 URL 作為 trackingBaseUrltrackingBaseUrl 的有效值可能是 https://{{instana_server}}:446/eum/

向一般使用者公開監視端點

建議您使用反向 Proxy (例如 NGINX 或 Apache HTTPd) ,將監視端點公開給一般使用者。 透過這樣做,您可以確保透過網路將資料流量從網際網路或內部網路適當地遞送至監視端點。 此外,它還可讓您公開網域名稱下的監視端點,以及使用「傳輸層安全 (TLS)」、您自己的憑證及負載平衡器 (如果有的話) 的埠 443 ! 不過,您可以決定容許直接從網際網路存取埠 86446

提供可執行的範例,以顯示如何配置監視端點的反向 Proxy。 這些範例也顯示需要新增或代理哪些標頭,例如需要 X-Forwarded-For 標頭。

附註: 請不要重新配置 NGINX ,它會在自行管理 (內部部署) Instana 後端設定的過程中自動安裝。 這個 NGINX 用來容許存取 Instana 使用者介面和 API ,因此受限於不同的安全需求和更新生命週期。 更具體而言,在後續 Instana 自行管理 (內部部署) Instana 後端更新項目上,可能會改寫 NGINX 配置。 它很容易導致不安全的配置,讓一般使用者能夠存取 Instana 登入畫面、API 和資產。

請確保在 Instana 內配置監視端點,如 一般使用者監視 (EUM) 設定 中所述,以便 Instana 使用者介面可以提供正確的 JavaScript 代理程式及行動式應用程式代理程式安裝指示。

配置瀏覽器與反向 Proxy 之間的安全連線

建議您使用 HTTP 埠來公開監視端點。 您可以使用具有有效簽章憑證的相同網域名稱來配置網路的「傳輸層安全 (TLS)」。

如果您沒有憑證管理中心,但使用 自簽 憑證,則需要設定反向 Proxy 或負載平衡器,以同時對受監視網站及監視端點提出 Proxy 要求,並使用自簽憑證來配置 Proxy。

例如,您將具有兩個位置的 Proxy 配置為 https://proxy-server/websitehttps://proxy-server/eum/。 然後,如果一般使用者接受 https://proxy-server的送入自簽憑證,則此憑證同時適用於網站及監視端點。

如需如何產生您自己的自簽憑證的相關資訊,請參閱 安裝文件

GeoLite2 資料庫

Instana 使用 Maxmand 的 GeoLite2 資料庫來支援一般使用者監視資料的 IP 地理定位。 Max心要求您定期更新 GeoLite2 資料庫,以符合「加州消費者隱私法案 (CCPA)」。 如果沒有此資訊,則會遺漏地理資訊。

  1. 執行下列指令,從 https://packages.instana.io 下載 GeoLite2 資料庫 (例如:

    instana geodb download -k <agentKey>
    
  2. 更新內部使用的資料庫。

    instana geodb update -f <path/to/file>
    
  3. 套用變更。

    instana update -f /path/to/settings.hcl
    

確保符合 GeoLite2 EULA

分析問題

若要分析問題,請執行下列動作:

  1. 在瀏覽器中手動開啟 JavaScript 代理程式的 URL。 您是否取得 JavaScript 作為伺服器的回應?

    • 如果失敗,且您使用 Proxy ,請記住 JavaScript 檔的路徑可能已變更。 在先前的 Proxy 配置範例中,路徑是 /eum.min.js。 如果您在子路徑下對 eum-acceptor 進行 Proxy 處理,請檢查您是否將尾端斜線納入考量,亦即,您的 Proxy 是否會除去 /eum 路徑?
    • 如果失敗,且您不使用 Proxy ,請記住, Instana 監視端點只會連結至埠 86446
    • 如果仍無法運作,請聯絡支援中心並說明設定、傳送 Proxy 配置,以及說明您如何嘗試存取 Script。
  2. 將網站監視 Snippet 新增至應用程式。

    • 如果您看不到任何網站資料,請使用網站除錯 Script。 請使用 eum.debug.js,而不是存取 eum.min.js。 這會記載一些配置及傳輸至瀏覽器主控台的相關資訊。 請檢查主控台,並解決任何進一步的問題。
    • 在瀏覽器中開啟網路瀏覽器 (在開發工具中找到)。 您可以針對所配置的報告 URL ,查看送出的 HTTP GET 和 HTTP POST 呼叫。 請確定這些呼叫會傳回狀態碼 200204。 特別是確保 Proxy 不會因為此呼叫而傳回任何 HTTP 重新導向 (狀態碼 302)。
    • 如果仍無法運作,請聯絡支援中心並說明設定、傳送 Proxy 配置、說明您如何嘗試存取 Script ,以及傳送除錯 Script 的輸出。