監視 Microsoft Tunnel

安裝 Microsoft Tunnel 後,您可以在 Microsoft Intune 管理中心查看伺服器設定與伺服器健康狀況。

使用管理中心的介面

登入 Microsoft Intune 管理中心,並前往租戶管理>Microsoft 隧道閘道>健康狀態

接著,選擇一台伺服器,然後開啟 健康檢查 標籤,查看該伺服器的健康狀態指標。 預設情況下,每個指標使用預先定義的閾值來決定狀態。 以下指標 支持這些閾值的客製化

  • CPU 使用量
  • 記憶體使用量
  • 磁碟空間使用
  • 延遲

伺服器健康指標的預設值:

  • 最後一次檢查 – 隧道閘道伺服器最後一次與 Intune 聯絡的時間。

    • 健康 – 最後一次報到是在最後五分鐘內。
    • 不健康 ——上次報到已經超過五分鐘了。
  • 目前連線 – 在最後一次伺服器簽到時,唯一啟用的連線數量。

    • 健康 – 連結數為4,990人或以下
    • 不健康 ——活躍連結超過4,990
  • 吞吐量 ——在最後一次伺服器簽入時,通過隧道閘道網卡的流量每秒兆位元數。

  • CPU 使用率 – 隧道閘道器伺服器平均每五分鐘的 CPU 使用率。

    • 健康 - 95% 或以下
    • 警告 - 96% 到 99%
    • 不健康 - 100% 使用
  • CPU 核心 – 此伺服器可用的 CPU 核心數量。

    • 健康 - 4 個或以上核心
    • 警告 - 1、2 或 3 核心
    • 不健康 核心 -0
  • 記憶體使用量 – 隧道閘道器伺服器平均每 5 分鐘使用記憶體。

    • 健康 - 95% 或以下
    • 警告 - 96% 到 99%
    • 不健康 - 100% 使用
  • 磁碟空間使用 量 – 隧道閘道器伺服器所使用的磁碟空間量。

    • 健康 - 超過 5 GB
    • 警告 - 3-5 GB
    • 不健康 - 低於 3 GB
  • 延遲 ——IP 封包抵達並離開網路介面的平均時間。

    • 健康 - 少於10毫秒
    • 警告 - 10毫秒到20毫秒
    • 不健康 - 超過 20 毫秒
  • 管理代理證書 – 管理代理憑證是 Tunnel Gateway 用來與 Intune 認證的,因此在到期前更新非常重要。 不過,它應該會自動自動續約。

    • 健康狀況 - 證書到期還有超過 30 天。
    • 警告 - 證書到期時間不到30天。
    • 不健康 - 證書已過期。
  • TLS 憑證 - 傳輸層安全 (TLS) 憑證,該憑證保護用戶端與隧道閘道伺服器間的流量,還有幾天到期。

    • 健康 - 超過30天
    • 警告 - 30天或更短
    • 不健康 - 證書已過期
  • TLS 憑證撤銷 – 隧道閘道器嘗試使用線上憑證狀態協定 (OCSP) 或憑證撤銷清單 (TLS 憑證定義的 CRL) 位址,檢查傳輸層安全 (TLS) 憑證的撤銷狀態。 此檢查要求伺服器能存取憑證中定義的 OCSP 端點或 CRL 位址。

    • 健康 - TLS 證書並未被吊銷。
    • 警告 - 無法查詢 TLS 證書是否被撤銷。 確保憑證中定義的端點能從隧道伺服器存取。
    • 不健康 ——TLS證書被撤銷。

    計劃替換被吊銷的TLS證書。

    欲了解更多關於OCSP) (線上證書狀態協議,請參閱 wikipedia.org 上的 線上證書狀態協議

  • 內部網路無障礙 性 – 根據最近一次內部 URL 檢查的狀態。 你要把 URL 設定成 隧道站設定的一部分。

    • 健康 - 伺服器可以存取網站屬性中指定的 URL。
    • 不健康 - 伺服器無法存取網站屬性中指定的網址。
    • 未知 - 此狀態顯示在網站屬性中尚未設定 URL。 此狀態不影響網站整體狀態。
  • 可升級 性 – 伺服器能夠聯絡 Microsoft 容器儲存庫,允許隧道閘道在版本可用時升級。

    • 健康 - 伺服器在過去 5 分鐘內未聯絡 Microsoft 容器倉庫。
    • 不健康 - 伺服器超過 5 分鐘未與 Microsoft 容器儲存庫連線。
  • 伺服器版本 - 隧道閘道器伺服器軟體相較於最新版本的狀態。

    • 健康 - 使用最新版本的軟體
    • 警告 - 落後一個版本
    • 不健康 ——落後兩個或以上版本,且無法支援

    伺服器版本健康時,建議計畫 安裝 Microsoft Tunnel 的升級

  • 伺服器容器 – 判斷承載 Microsoft 隧道伺服器的容器是否正在運行。

    • 健康 - 伺服器容器狀態為健康。
    • 不健康 - 伺服器容器狀態不健康。
  • 伺服器設定 – 判斷伺服器設定是否成功套用至 Microsoft Intune 站點設定中的隧道伺服器。

    • 健康 - 伺服器設定已成功套用。
    • 不健康 - 無法套用伺服器設定。
  • 伺服器日誌 – 判斷過去 60 分鐘內是否有上傳日誌到伺服器。

    • 健康 - 伺服器日誌在過去 60 分鐘內上傳。
    • 不健康 - 伺服器日誌在過去 60 分鐘內未上傳。

管理健康狀態門檻

您可以自訂以下 Microsoft 隧道健康狀態指標,以更改各自使用的報告狀態閾值。 自訂功能適用於整個租戶,適用於所有隧道分接器。 您可以自訂的健康檢查指標包括:

  • CPU 使用量
  • 記憶體使用量
  • 磁碟空間使用
  • 延遲

要修改指標閾值

螢幕截圖顯示如何選擇與設定健康狀態閾值。

  1. 登入 Microsoft Intune 管理中心,並前往租戶管理>Microsoft 隧道閘道>健康狀態

  2. 選擇 設定閾值

  3. 「配置的門檻」 頁面,為你想自訂的每個健康檢查類別設定新的門檻。

    • 閾值適用於所有站點的所有伺服器。
    • 選擇 「還原為預設 」以恢復 所有 閾值回到預設值。
  4. 選取 [儲存]

  5. 在健康狀態面板中,選擇 重新整理 ,根據自訂的閾值值更新所有伺服器的狀態。

修改閾值後,伺服器 健康檢查 分頁的數值會自動更新,反映其狀態,依據目前的閾值。

伺服器健康檢查視圖的螢幕擷取。

以圖表形式查看 Microsoft 隧道閘道健康指標的健康狀態趨勢。 圖表資料平均為三小時區塊,因此可能延遲最多三小時。

以下指標的健康狀況趨勢圖表可供參考:

  • 連線
  • CPU 使用量
  • 磁碟空間使用
  • 記憶體使用量
  • 平均延遲
  • 輸送量

要查看趨勢圖表:

  1. 登入 Microsoft Intune 系統管理中心

  2. 前往 租戶管理>Microsoft 隧道閘道>健康狀態>選擇伺服器,然後選擇 趨勢

  3. 請使用 「指標」 下拉選單選擇你想查看的指標圖表。

使用 mst-cli 命令列工具

使用 mst-cli 命令列工具來取得 Microsoft 隧道伺服器的資訊。 這個檔案會在 Microsoft Tunnel 安裝時加入 Linux 伺服器。 該工具位於: /usr/sbin/mst-cli

欲了解更多資訊及命令列範例,請參閱 Microsoft 隧道的 mst-cli 命令列工具

查看 Microsoft 隧道日誌

Microsoft Tunnel 會以 syslog 格式將資訊記錄到 Linux 伺服器的日誌。 要查看日誌條目,請使用 journalctl -t 指令,後接一個或多個 Microsoft 隧道條目的專屬標籤:

  • mstunnel-agent:顯示代理日誌。

  • mstunnel_monitor:顯示監控任務日誌。

  • ocserv - 顯示伺服器日誌。

  • ocserv-access - 顯示存取日誌。

    預設情況下,存取記錄是被關閉的。 啟用存取日誌可能會降低效能,這取決於伺服器上活躍連線的數量與使用模式。 記錄 DNS 連線會增加日誌的冗長,進而產生雜訊。

    存取日誌格式如下: <Server timestamp><Server Name><ProcessID on Server><userId><deviceId><protocol><src IP and port><dst IP and port><bytes sent><bytes received><connection time in seconds> 例如:

    • 2月25日 16:37:56 MSTunnelTest-VM ocserv-access[9528]: ACCESS_LOG,41150dc4-238x-4dwv-9q89-55e987f30c32,f5132455-ef2dd-225a-a693-afbbqed482dce,tcp,169.254.54.149:49462,10.88.0.5:80,112,60,10

    重要事項

    ocserv-access 中,deviceId 值用來識別執行於裝置上的唯一 Microsoft Defender 安裝實例,且不識別 Intune 裝置 ID 或 Microsoft Entra 裝置 ID。 如果 Defender 被卸載後再重新安裝到裝置上,就會產生一個新的 DeviceId* 實例。

    啟用存取記錄:

    1. 在 /etc/mstunnel/env.sh 中設定 TRACE_SESSIONS=1
    2. 設定 TRACE_SESSIONS=2 以包含 DNS 連線的日誌
    3. 跑去 mst-cli server restart 重啟伺服器。

    如果存取日誌太吵,你可以透過設定 TRACE_SESSIONS=1 並重新啟動伺服器來關閉 DNS 連線記錄。

  • OCSERV_TELEMETRY - 顯示連接隧道的遙測細節。

    遙測日誌格式如下, bytes_inbytes_out持續時間 的數值僅用於斷線操作: <operation><client_ip><server_ip><gateway_ip><assigned_ip><user_id><device_id><user_agent><bytes_in><bytes_out><duration> 例如:

    • 10月20日 19:32:15 mstunnel ocserv[4806]: OCSERV_TELEMETRY,connect,31258,73.20.85.75,172.17.0.3,169.254.0.1,169.254.107.209,3780e1fc-3ac2-4268-a1fd-dd910ca8c13c, 5A683ECC-D909-4E5F-9C67-C0F595A4A70E,MobileAccess iOS 1.1.34040102

    重要事項

    OCSERV_TELEMETRY中,deviceId值識別執行於裝置上的唯一安裝Microsoft Defender實例,且不識別Intune裝置ID或Microsoft Entra裝置ID。 如果 Defender 被卸載後再重新安裝到裝置上,就會產生一個新的 DeviceId* 實例。

journalctl 的命令列範例:

  • 若要僅查看隧道伺服器的資訊,請執行 journalctl -t ocserv
  • 要查看遙測日誌,請執行 journalctl -t ocserv | grep TELEMETRY
  • 要查看所有日誌選項的資訊,你可以執行 journalctl -t ocserv -t ocserv-access -t mstunnel-agent -t mstunnel_monitor
  • 新增 -f 指令以顯示日誌檔案的持續且持續的視圖。 例如,要主動監控 Microsoft Tunnel 的進行中程序,請執行 journalctl -t mstunnel_monitor -f

更多 journalctl 的選項:

  • journalctl -h – 顯示 journalctl 的指令幫助。
  • man journalctl – 顯示額外資訊。
  • man journalctl.conf顯示設定資訊 欲了解更多關於 journalctl 的資訊,請參閱您所使用的 Linux 版本文件。

為隧道伺服器輕鬆上傳診斷日誌

作為診斷輔助,您可以在 Intune 管理中心使用一鍵,讓 Intune 啟用、收集並直接提交隧道閘道伺服器的冗長日誌給 Microsoft。 這些冗長的日誌在你與 Microsoft 合作時,能直接提供給 Microsoft,協助你識別或解決隧道伺服器的問題。

你可以在開啟支援事件前,或在與 Microsoft 合作檢視隧道伺服器運作時,應要求時收集並上傳冗長日誌。

要使用此功能

  1. 打開 Microsoft Intune 管理中心,進入租戶管理>Microsoft Tunnel Gateway>,選擇伺服器>,然後選擇日誌標籤。

  2. 「日誌」標籤中,找到「發送冗長伺服器日誌」區塊,並選擇「傳送日誌」。

當您選擇傳送隧道伺服器的 日誌 時,以下程序會開始:

  • 首先,Intune 會擷取目前的隧道伺服器日誌,並直接上傳給 Microsoft。 這些日誌是根據伺服器目前的日誌冗長程度來收集的。 預設情況下,伺服器冗長程度為 0 (0) 。
  • 接著,Intune 啟用隧道伺服器日誌的冗長程度為 4 (4) 。 這種冗長的細節需要收集八小時。
  • 在八小時的冗長日誌收集期間,應重現所調查的問題或作業,以捕捉日誌中的冗長細節。
  • 八小時後,Intune 會收集第二組包含冗長細節的伺服器日誌,並上傳給 Microsoft。 上傳時,Intune也會重設隧道伺服器日誌,使其使用預設的冗長程度為零 (0) 。 如果你之前提高了伺服器的冗長程度,Intune 將冗長度重置為零後,你可以恢復自訂的冗長程度。

Intune 收集並上傳的每組日誌都被識別為獨立的一組,以下細節會顯示在管理中心的「傳送日誌」按鈕下方:

  • 對數集合的 開始結束 時間
  • 上傳產生的時間
  • 對數設定 了冗長程度
  • 一個可以用來識別該特定日誌集的事件 ID

螢幕截圖顯示「發送冗長伺服器日誌」介面。

在執行詳細日誌收集時擷取問題後,你可以將該日誌的 事件 ID 提供給 Microsoft 協助調查。

關於原木收集

  • Intune 不會停止或重啟隧道伺服器來啟用或關閉冗長記錄。
  • 八小時冗長的記錄時間無法延長或提前結束。
  • 你可以根據需要頻繁使用 「傳送日誌 」流程來捕捉冗長日誌的問題。 然而,增加的日誌冗長會增加隧道伺服器的負擔,並不建議作為一般配置。
  • 冗長記錄結束後,隧道伺服器日誌的預設冗長程度會設定為零,無論先前設定的冗長程度為何。
  • 以下日誌是透過此過程收集的:
    • mstunnel-agent (代理日誌)
    • mstunnel_monitor (監控任務日誌)
    • ocserv (伺服器日誌)

ocserv 存取日誌不會被收集或上傳。

已知問題

以下是 Microsoft 隧道已知的問題。

伺服器健康情況

當伺服器健康狀態顯示為離線時,用戶端仍可成功使用 Tunnel

問題:在 隧道 健康狀態 標籤中,伺服器的健康狀態顯示離線,顯示已斷線,儘管使用者仍能連接隧道伺服器並連接組織資源。

解決方法:要解決此問題,您必須重新安裝 Microsoft Tunnel,並重新註冊隧道伺服器代理程式與 Intune。 為了避免這個問題,隧道代理程式和伺服器在釋出後盡快安裝更新。 使用 Microsoft Intune 管理中心的隧道伺服器健康指標來監控伺服器健康狀況。

用 Podman 時,你會在mstunnel_monitor日誌看到「執行檢查錯誤」

問題:Podman 無法辨識或看到正在運行的容器,並在隧道伺服器 的mstunnel_monitor日誌 中報告「執行檢查錯誤」。 以下是錯誤的例子:

  • 代理人:

    Error executing Checkup
    Error details
    \tscript: 561 /usr/sbin/mst-cli
    \t\tcommand: $ctr_cli exec $agent_name mstunnel checkup 2> >(FailLogger)
    \tstack:
    \t\t<> Checkup /usr/sbin/mst-cli Message: NA
    \t\t<> MonitorServices /usr/sbin/mst-cli Message: Failure starting service mstunnel-agent
    \t\t<> main /usr/sbin/mstunnel_monitor Message: NA
    
  • 伺服器:

    Error executing Checkup
    Error details
    \tscript: 649 /usr/sbin/mst-cli
    \t\tcommand: $ctr_cli exec $agent_name mstunnel checkup 2> >(FailLogger)
    \tstack:
    \t\t<> Checkup /usr/sbin/mst-cli Message: NA
    \t\t<> MonitorServices /usr/sbin/mst-cli Message: Failure starting service mstunnel-server
    \t\t<> main /usr/sbin/mstunnel_monitor Message: NA
    

解決方法:要解決這個問題,請手動 重新啟動 Podman 容器。 Podman 應該能辨識出這些容器。 如果問題持續或復發,考慮使用 cron 建立一個工作,當發現問題時會自動重新啟動容器。

使用 Podman 時,你會在 mstunnel-agent 日誌中看到 System.DateTime 錯誤

問題:使用 Podman 時,mstunnel-agent 日誌可能包含類似以下條目的錯誤:

  • Failed to parse version-info.json for version information.
  • System.Text.Json.JsonException: The JSON value could not be converted to System.DateTime

此問題是因為 Podman 與 Tunnel Agent 格式日期不同所致。 這些錯誤並不代表致命問題或阻礙連線。 從 2022 年 10 月之後釋出的容器開始,格式問題應該會被解決。

解決方案:要解決這些問題,請將 Podman 或 Docker) (代理容器更新到最新版本。 隨著發現新的錯誤來源,我們將在後續版本更新中持續修正。

與隧道的連接

裝置無法連接到隧道伺服器

問題:裝置無法連接到伺服器,隧道伺服器 ocserv 日誌檔中包含類似以下條目的條目: main: tun.c:655: Can't open /dev/net/tun: Operation not permitted

關於查看隧道日誌的指引,請參閱本文中的 「查看 Microsoft 隧道日誌 」。

解決方法:在 Linux 伺服器重啟後重新啟動伺服器mst-cli server restart

如果問題持續,可以考慮使用 cron 排程工具來自動化重新啟動指令。 請參考 opensource.com 如何使用 Linux 的 cron

Microsoft 隧道參考資料