监视 Microsoft Tunnel

安装 Microsoft Tunnel 后,可以在 Microsoft Intune 管理中心查看服务器配置和服务器运行状况。

使用管理中心 UI

登录到Microsoft Intune管理中心,然后转到租户管理>Microsoft Tunnel 网关>运行状况状态

接下来,选择一个服务器,然后打开“运行状况检查”选项卡以查看该服务器的运行状况状态指标。 默认情况下,每个指标都使用预定义的阈值来确定状态。 以下指标支持自定义这些阈值

  • CPU 使用率
  • 内存使用率
  • 磁盘空间使用情况
  • 延迟

服务器运行状况指标的默认值:

  • 上次签入 - Tunnel Gateway 服务器上次签入到 Intune 的时间。

    • 运行正常 - 上次签入发生在最近五分钟内。
    • 不正常 - 最后一个检查五分钟前。
  • 当前连接数 - 服务器上次签入时处于活动状态的唯一连接数。

    • 运行正常 - 连接数不超过 4,990 个
    • 运行不正常 - 活动连接数超过 4,990 个
  • 吞吐量 - 服务器上次签入时,流量通过 Tunnel Gateway NIC 的每秒兆位位数。

  • CPU 使用率 - Tunnel Gateway 服务器每隔五分钟的平均 CPU 使用率。

    • 运行正常 - 95% 或更少
    • 警告 - 96% 至 99%
    • 运行不正常 - 100% 使用
  • CPU 核心 数 – 此服务器上可用的 CPU 核心数。

    • 正常 - 4 个或更多核心
    • 警告 - 1 个、2 个或 3 个核心
    • 运行不正常的 -0 个核心
  • 内存使用率 - Tunnel Gateway 服务器每隔 5 分钟的平均内存使用率。

    • 运行正常 - 95% 或更少
    • 警告 - 96% 至 99%
    • 运行不正常 - 100% 使用
  • 磁盘空间使用情况 - Tunnel 网关服务器使用的磁盘空间量。

    • 正常 - 超过 5 GB
    • 警告 - 3-5 GB
    • 不正常 - 低于 3 GB
  • 延迟 - IP 数据包到达然后退出网络接口所需的平均时间。

    • 运行正常 - 小于 10 毫秒
    • 警告 - 10 毫秒至 20 毫秒
    • 运行不正常 - 超过 20 毫秒
  • 管理代理证书 – Tunnel Gateway 使用管理代理证书向Intune进行身份验证,因此请务必在证书过期之前续订证书。 但是,它应会自动续订。

    • 正常 - 证书过期时间超过 30 天。
    • 警告 - 证书过期时间不到 30 天。
    • 不正常 - 证书已过期。
  • TLS 证书 - 传输层安全性 (TLS) 证书(用于保护客户端与 Tunnel 网关服务器之间的流量)过期之前的天数。

    • 运行正常 - 超过 30 天
    • 警告 - 30 天或更短
    • 运行不正常 - 证书已过期
  • TLS 证书吊销 – 隧道网关尝试使用联机证书状态协议 (OCSP) 或证书吊销列表 (CRL) 地址检查传输层安全性 (TLS) 证书的吊销状态。 此检查要求服务器有权访问证书中定义的 OCSP 终结点或 CRL 地址。

    • 正常 - 不会吊销 TLS 证书。
    • 警告 - 如果 TLS 证书被吊销,则无法检查。 确保可以从 Tunnel 服务器访问证书中定义的终结点。
    • 不正常 - TLS 证书已吊销。

    计划替换吊销的 TLS 证书。

    若要详细了解联机证书状态协议 (OCSP) ,请参阅 wikipedia.org 的联机证书状态协议

  • 内部网络可访问性 - 最近的内部 URL 检查的状态。 你需要在隧道站点配置过程中配置 URL。

    • 运行正常 - 服务器可以访问站点属性中指定的 URL。
    • 运行不正常 - 服务器无法访问站点属性中指定的 URL。
    • 未知 - 当你未在站点属性中设置 URL 时,将显示此状态。 此状态不会影响站点的总体状态。
  • 可升级性 - 服务器能够联系 Microsoft 容器存储库,该存储库允许 Tunnel 网关在版本可用时进行升级。

    • 正常 - 服务器在过去 5 分钟内未联系 Microsoft 容器存储库。
    • 不正常 - 服务器已超过 5 分钟未联系 Microsoft 容器存储库。
  • 服务器版本 - 与最新版服务器对应的 Tunnel 网关服务器软件的状态。

    • 正常 - 已更新到最新的软件版本
    • 警告 - 落后一个版本
    • 不正常 - 落后两个或更多版本,且不受支持

    如果“服务器版本”显示“不正常”,请计划为 Microsoft Tunnel 安装升级

  • 服务器容器 – 确定托管 Microsoft Tunnel 服务器的容器是否正在运行。

    • 正常 - 服务器容器状态为正常。
    • 不正常 - 服务器容器状态不正常。
  • 服务器配置 – 确定服务器配置是否已从Microsoft Intune站点设置成功应用到 Tunnel 服务器。

    • 正常 - 已成功应用服务器配置。
    • 不正常 - 无法应用服务器配置。
  • 服务器日志 – 确定日志是否已在过去 60 分钟内上传到服务器。

    • 正常 - 在过去 60 分钟内上传了服务器日志。
    • 不正常 - 服务器日志在过去 60 分钟内未上传。

管理运行状况阈值

你可以自定义以下 Microsoft Tunnel 运行状况指标,以更改用于报告其状态的每个阈值。 自定义项是全租户范围的,适用于所有 Tunnel 服务器。 可以自定义以下运行状况检查指标:

  • CPU 使用率
  • 内存使用率
  • 磁盘空间使用情况
  • 延迟

若要修改指标阈值,请执行以下操作:

有关如何选择和配置运行状况状态阈值的屏幕截图。

  1. 登录到Microsoft Intune管理中心,转到租户管理>Microsoft Tunnel 网关>运行状况状态

  2. 选择“配置阈值”

  3. “配置的阈值”页上,为要自定义的每个运行状况检查类别设置新的阈值。

    • 阈值适用于所有站点中的所有服务器。
    • 如果选择“还原为默认值”,会将所有阈值还原为默认值。
  4. 选择“保存”。

  5. 在“运行状况”窗格上,选择“刷新”,根据自定义阈值更新所有服务器的状态。

修改阈值后,服务器“运行状况检查”选项卡上的值会根据当前阈值自动更新,以反映其状态。

服务器运行状况检查视图的屏幕截图。

以图表形式查看 Microsoft Tunnel 网关运行状况指标的运行状况趋势。 图表的数据是三小时内的平均值,因此可以延迟三小时。

运行状况趋势图表可用于以下指标:

  • Connections
  • CPU 使用率
  • 磁盘空间使用情况
  • 内存使用率
  • 平均延迟
  • 吞吐量

若要查看趋势图表,请执行以下操作:

  1. 登录到 Microsoft Intune 管理中心

  2. 转到“租户管理”>“Microsoft Tunnel 网关”>“运行状况”> 选择服务器,然后选择“趋势”

  3. 使用“指标”下拉列表,选择要查看的指标图表。

使用 mst-cli 命令行工具

使用 mst-cli 命令行工具获取有关 Microsoft Tunnel 服务器的信息。 安装 Microsoft Tunnel 时,此文件将添加到 Linux 服务器。 该工具位于:/usr/sbin/mst-cli

有关详细信息和命令行示例,请参阅适用于 Microsoft Tunnel 的 mst-cli 命令行工具

查看 Microsoft Tunnel 日志

Microsoft Tunnel 会将信息记录到 Linux 服务器日志中(采用 syslog 格式)。 若要查看日志条目,请使用 journalctl -t 命令,后跟一个或多个特定于 Microsoft Tunnel 条目的标记

  • 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>例如:

    • Feb 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. set TRACE_SESSIONS=1 in /etc/mstunnel/env.sh
    2. 将 TRACE_SESSIONS=2 设置为包含 DNS 连接的日志记录
    3. 运行 mst-cli server restart 以重新启动服务器。

    如果访问日志过于嘈杂,可以通过设置 TRACE_SESSIONS=1 并重新启动服务器来关闭 DNS 连接日志记录。

  • OCSERV_TELEMETRY - 显示与 Tunnel 连接的遥测详细信息。

    遥测日志采用以下格式, 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 版本的相应文档

轻松上传 Tunnel 服务器的诊断日志

作为诊断帮助,可以在Intune管理中心内单击一次,让Intune直接从 Tunnel 网关服务器启用、收集和提交详细日志,并将其提交到Microsoft。 使用 Microsoft 识别或解决 Tunnel 服务器的问题时,这些详细日志可直接用于Microsoft。

在打开支持事件之前,可以从事件中收集和上传详细日志,或者,如果已使用 Microsoft 检查 Tunnel 服务器操作,则可以根据请求。

若要使用此功能,请

  1. 打开Microsoft Intune管理中心,转到租户管理>Microsoft Tunnel Gateway> 选择服务器>,然后选择“日志”选项卡。

  2. 在“ 日志 ”选项卡上,找到 “发送详细服务器日志 ”部分,然后选择“ 发送日志”。

为 Tunnel 服务器选择“ 发送日志 ”时,将开始以下过程:

  • 首先,Intune捕获当前一组 Tunnel 服务器日志,并将其直接上传到Microsoft。 这些日志是使用服务器当前的日志详细级别收集的。 默认情况下,服务器详细级别为零 (0) 。
  • 接下来,Intune为 Tunnel 服务器日志启用 4 (4) 的详细级别。 此详细级别收集 8 小时。
  • 在详细日志收集的 8 小时内,应重现正在调查的问题或操作,以捕获日志中的详细详细信息。
  • 8 小时后,Intune收集第二组包含详细详细信息的服务器日志,并将其上传到Microsoft。 在上传时,Intune还会重置 Tunnel 服务器日志,以使用默认的详细级别 0 (0) 。 如果以前提高了服务器的详细级别,则在Intune将详细级别重置为零后,可以还原自定义详细级别。

Intune收集和上传的每组日志都标识为单独的集,管理中心的“发送日志”按钮下方显示以下详细信息:

  • 日志收集的 开始结束 时间
  • 生成上传时间
  • 日志设置 详细级别
  • 可用于标识特定日志集的事件 ID

显示“发送详细服务器日志”界面的屏幕截图。

在运行详细日志收集时捕获问题后,可以将该日志的事件 ID 设置为 Microsoft,以帮助进行调查。

关于日志收集

  • Intune不会停止或重启 Tunnel 服务器来启用或禁用详细日志记录。
  • 8 小时的详细日志记录期不能提前延长或停止。
  • 可以根据需要经常使用 发送日志 进程来捕获详细日志记录问题。 但是,增加日志详细程度会增加 Tunnel Server 的压力,不建议将其用作常规配置。
  • 详细日志记录结束后,为 Tunnel 服务器日志设置默认的详细级别为零,而不管以前设置的详细级别如何。
  • 通过此过程收集以下日志:
    • mstunnel-agent (代理日志)
    • mstunnel_monitor (监视任务日志)
    • ocserv (服务器日志)

不会收集或上传 ocserv-access 日志。

已知问题

以下是 Microsoft Tunnel 的已知问题。

服务器运行状况

当服务器运行状况显示为脱机时,客户端可以成功使用隧道

问题:在 “隧道 运行状况状态 ”选项卡上,即使用户可以访问隧道服务器并连接到组织的资源,服务器的运行状况也会报告为脱机状态,指示该服务器已断开连接。

解决方案:若要解决此问题,必须重新安装 Microsoft Tunnel,这将使用 Intune 重新注册 Tunnel 服务器代理。 若要防止此问题,请在发布 Tunnel 代理和服务器的更新后立即安装这些更新。 使用 Microsoft Intune 管理中心中的 Tunnel 服务器运行状况指标监视服务器运行状况。

使用 Podman 时,可以在mstunnel_monitor日志中看到“执行检查时出错”

问题:Podman 无法识别或看到活动容器正在运行,并在 Tunnel 服务器的 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 代理之间的格式设置日期存在差异。 这些错误并不表示严重问题或阻止连接。 从 2022 年 10 月之后发布的容器开始,应解决格式问题。

解决方案:若要解决这些问题,请将代理容器 (Podman 或 Docker) 更新到最新版本。 发现这些错误的新源后,我们将继续在后续版本更新中修复它们。

与隧道的连接

设备无法连接到 Tunnel 服务器

问题:设备无法连接到服务器,并且 Tunnel 服务器 ocserv 日志文件包含类似于以下条目的条目: main: tun.c:655: Can't open /dev/net/tun: Operation not permitted

有关查看 Tunnel 日志的指南,请参阅本文中的查看 Microsoft Tunnel 日志

解决方案:在 Linux 服务器重新启动后,使用 mst-cli server restart 重启服务器。

如果此问题仍然存在,请考虑使用 cron 计划实用工具自动执行重新启动命令。 请参阅如何在 Linux 上使用 cronopensource.com

后续步骤

Microsoft Tunnel 参考