监视 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 使用率
- 内存使用率
- 磁盘空间使用情况
- 延迟
若要修改指标阈值,请执行以下操作:
登录到Microsoft Intune管理中心,转到租户管理>Microsoft Tunnel 网关>运行状况状态。
选择“配置阈值”。
在“配置的阈值”页上,为要自定义的每个运行状况检查类别设置新的阈值。
- 阈值适用于所有站点中的所有服务器。
- 如果选择“还原为默认值”,会将所有阈值还原为默认值。
选择“保存”。
在“运行状况”窗格上,选择“刷新”,根据自定义阈值更新所有服务器的状态。
修改阈值后,服务器“运行状况检查”选项卡上的值会根据当前阈值自动更新,以反映其状态。
Tunnel 服务器的运行状况趋势
以图表形式查看 Microsoft Tunnel 网关运行状况指标的运行状况趋势。 图表的数据是三小时内的平均值,因此可以延迟三小时。
运行状况趋势图表可用于以下指标:
- Connections
- CPU 使用率
- 磁盘空间使用情况
- 内存使用率
- 平均延迟
- 吞吐量
若要查看趋势图表,请执行以下操作:
转到“租户管理”>“Microsoft Tunnel 网关”>“运行状况”> 选择服务器,然后选择“趋势”
使用“指标”下拉列表,选择要查看的指标图表。
使用 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* 的新实例。
若要启用访问日志记录,请执行以下操作:
- set TRACE_SESSIONS=1 in /etc/mstunnel/env.sh
- 将 TRACE_SESSIONS=2 设置为包含 DNS 连接的日志记录
- 运行
mst-cli server restart
以重新启动服务器。
如果访问日志过于嘈杂,可以通过设置 TRACE_SESSIONS=1 并重新启动服务器来关闭 DNS 连接日志记录。
OCSERV_TELEMETRY - 显示与 Tunnel 连接的遥测详细信息。
遥测日志采用以下格式, bytes_in、 bytes_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 服务器操作,则可以根据请求。
若要使用此功能,请:
打开Microsoft Intune管理中心,转到租户管理>Microsoft Tunnel Gateway> 选择服务器>,然后选择“日志”选项卡。
在“ 日志 ”选项卡上,找到 “发送详细服务器日志 ”部分,然后选择“ 发送日志”。
为 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 上使用 cron:opensource.com。