您可以使用 NSX 命令行界面 (CLI) 解决问题。
说明 | NSX Manager 上的命令 | 备注 |
---|---|---|
列出所有群集以获取群集 ID | show cluster all | 查看所有群集信息 |
列出群集中的所有主机以获取主机 ID | show cluster clusterID | 查看群集中的主机、主机 ID 和主机准备安装状态列表 |
列出主机上的所有虚拟机 | show host hostID | 查看特定主机信息、虚拟机、虚拟机 ID 和电源状态 |
NSX 版本 | ESXi 版本 | VIB | 模块 |
---|---|---|---|
6.3.2 和更低版本 | 6.0 和更高版本 | esx-vxlan 和 esx-vsip | vdl2、vdrb、vsip、dvfilter-switch-security、bfd、traceflow |
6.3.3 和更高版本 | 6.0 和更高版本 | esx-nsxv | nsx-vdl2、nsx-vdrb、nsx-vsip、nsx-dvfilter-switch-security、nsx-core、nsx-bfd、nsx-traceflow |
说明 | 主机上的命令 | 备注 |
---|---|---|
包含的 VIB 取决于 NSX 和 ESXi 版本。 有关在您的安装上检查哪些模块的详细信息,请参见在主机上安装的 VIB 和模块名称表。 |
esxcli software vib get --vibname <name> | 检查安装的版本/日期 esxcli software vib list 显示系统上的所有 VIB 的列表 |
列出当前在系统中加载的所有系统模块: | esxcli system module list | 较旧的等效命令:vmkload_mod -l | grep -E vdl2|vdrb|vsip|dvfilter-switch-security |
包含的模块取决于 NSX 和 ESXi 版本。 有关在您的安装上检查哪些模块的详细信息,请参见在主机上安装的 VIB 和模块名称表。 |
esxcli system module get -m <name> | 为每个模块运行该命令 |
两个用户环境代理 (UWA):控制层面代理、防火墙代理 | /etc/init.d/vShield-Stateful-Firewall status /etc/init.d/netcpad status |
|
检查 UWA 连接:端口 1234 到控制器以及端口 5671 到 NSX Manager | esxcli network ip connection list | grep 1234 esxcli network ip connection list | grep 5671 |
控制器 TCP 连接 消息总线 TCP 连接 |
检查 EAM 状态 | vSphere Web Client,检查管理 > vSphere ESX Agent Manager (Administration > vSphere ESX Agent Manager) |
说明 | 主机网络命令 | 备注 |
---|---|---|
列出物理网卡/vmnic | esxcli network nic list | 检查网卡类型、驱动程序类型、链路状态、MTU |
物理网卡详细信息 | esxcli network nic get -n vmnic# | 检查驱动程序和固件版本以及其他详细信息 |
列出 vmk 网卡以及 IP 地址/MAC/MTU 等 | esxcli network ip interface ipv4 get | 确保正确实例化 VTEP |
每个 vmk 网卡的详细信息,包括 vDS 信息 | esxcli network ip interface list | 确保正确实例化 VTEP |
每个 vmk 网卡的详细信息,包括 VXLAN vmk 的 vDS 信息 | esxcli network ip interface list --netstack=vxlan | 确保正确实例化 VTEP |
查找与该主机的 VTEP 关联的 VDS 名称 | esxcli network vswitch dvs vmware vxlan list | 确保正确实例化 VTEP |
从 VXLAN 专用 TCP/IP 堆中执行 Ping 操作 | ping ++netstack=vxlan –I vmk1 x.x.x.x | 要解决 VTEP 通信问题:添加 -d -s 1572 选项以确保传输网络的 MTU 适用于 VXLAN |
查看 VXLAN 专用 TCP/IP 堆的路由表 | esxcli network ip route ipv4 list -N vxlan | 解决 VTEP 通信问题 |
查看 VXLAN 专用 TCP/IP 堆的 ARP 表 | esxcli network ip neighbor list -N vxlan | 解决 VTEP 通信问题 |
说明 | 日志文件 | 备注 |
---|---|---|
从 NSX Manager 中 | show manager log follow | 跟踪 NSX Manager 日志 适用于实时故障排除 |
主机的任何安装相关日志 | /var/log/esxupdate.log | |
与主机相关的问题 VMkernel 警告、消息、警示和可用性报告 |
/var/log/vmkernel.log /var/log/vmksummary.log /var/log/vmkwarning.log |
|
捕获模块加载故障 | /var/log/syslog | IXGBE 驱动程序故障 NSX 模块相关性故障是重要指标 |
在 vCenter 上,ESX Agent Manager 负责进行更新 | 在 vCenter 日志 eam.log 中 |
说明 | NSX Manager 上的命令 | 备注 |
---|---|---|
列出所有逻辑交换机 | show logical-switch list all | 列出在 API、传输区域和 vdnscope 中使用的所有逻辑交换机及其 UUID |
说明 | 控制器上的命令 | 备注 |
---|---|---|
查找作为 VNI 所有者的控制器 | show control-cluster logical-switches vni 5000 | 记下输出中的控制器 IP 地址并通过 SSH 访问该地址 |
查找连接到该 VNI 的该控制器的所有主机 | show control-cluster logical-switch connection-table 5000 | 输出中的源 IP 地址是主机的管理接口,而端口号是 TCP 连接的源端口 |
查找注册以托管该 VNI 的 VTEP | show control-cluster logical-switches vtep-table 5002 | |
列出为该 VNI 上的虚拟机获悉的 MAC 地址 | show control-cluster logical-switches mac-table 5002 | 指出 MAC 地址实际位于报告该地址的 VTEP 上 |
列出虚拟机 IP 更新填充的 ARP 缓存 | show control-cluster logical-switches arp-table 5002 | ARP 缓存在 180 秒后过期 |
对于特定的主机/控制器对,找出主机已加入的 VNI | show control-cluster logical-switches joined-vnis <host_mgmt_ip> |
说明 | 主机上的命令 | 备注 |
---|---|---|
检查主机 VXLAN 是否同步 | esxcli network vswitch dvs vmware vxlan get | 显示同步状态和用于封装的端口 |
查看连接的虚拟机以及用于数据路径捕获的本地交换机端口 ID | net-stats -l | 提供了一种更好的方法以获取特定虚拟机的虚拟机交换机端口 |
验证是否加载了 VXLAN 内核模块 vdl2 | esxcli system module get -m vdl2 | 显示指定的模块的完整详细信息 验证版本 |
验证是否安装了正确的 VXLAN VIB 版本 有关在您的安装上检查哪些 VIB 的详细信息,请参见在主机上安装的 VIB 和模块名称表。 |
esxcli software vib get --vibname esx-vxlan 或 esxcli software vib get --vibname esx-nsxv |
显示指定的 VIB 的完整详细信息 验证版本和日期 |
验证主机是否了解逻辑交换机中的其他主机 | esxcli network vswitch dvs vmware vxlan network vtep list --vxlan-id=5001 --vds-name=Compute_VDS | 显示该主机了解并托管 vtep 5001 的所有 VTEP 的列表 |
验证逻辑交换机的控制层面是否已启动并处于活动状态 | esxcli network vswitch dvs vmware vxlan network list --vds-name Compute_VDS | 确保控制器连接已启动并且端口/Mac 数与该主机上的 LS 中的虚拟机数相匹配。 |
验证主机是否获悉所有虚拟机的 MAC 地址 | esxcli network vswitch dvs vmware vxlan network mac list --vds-name Compute_VDS --vxlan-id=5000 | 这会列出该主机上的 VNI 5000 虚拟机的所有 MAC |
验证主机是否在本地缓存远程虚拟机的 ARP 条目 | esxcli network vswitch dvs vmware vxlan network arp list --vds-name Compute_VDS --vxlan-id=5000 | 验证主机是否在本地缓存远程虚拟机的 ARP 条目 |
验证虚拟机是否连接到 LS 并映射到本地 VMKnic 还会显示虚拟机 dvPort 映射到的 vmknic ID |
esxcli network vswitch dvs vmware vxlan network port list --vds-name Compute_VDS --vxlan-id=5000 | 只要 VNI 连接到路由器,就会始终列出 vdrport |
查看 vmknic ID 以及它们映射到的交换机端口/上行链路 | esxcli network vswitch dvs vmware vxlan vmknic list --vds-name=DSwitch-Res01 |
说明 | 日志文件 | 备注 |
---|---|---|
主机始终连接到托管其 VNI 的控制器 | /etc/vmware/netcpa/config-by-vsm.xml | 该文件应始终列出环境中的所有控制器。config-by-vsm.xml 文件是由 netcpa 进程创建的 |
config-by-vsm.xml 文件是 NSX Manager 使用 vsfwd 推送的 如果 config-by-vsm.xml 文件不正确,请查看 vsfwd 日志 |
/var/log/vsfwd.log | 分析该文件以查找错误 要重新启动进程,请运行以下命令:/etc/init.d/vShield-Stateful-Firewall stop|start |
到控制器的连接是使用 netcpa 建立的 | /var/log/netcpa.log | 分析该文件以查找错误 |
逻辑交换模块日志位于 vmkernel.log 中 | /var/log/vmkernel.log | 在 /var/log/vmkernel.log 中检查“具有 VXLAN 前缀”的逻辑交换模块: |
说明 | NSX Manager 上的命令 | 备注 |
---|---|---|
用于 ESG 的命令 | show edge | 用于 Edge 服务网关 (ESG) 的 CLI 命令以“show edge”开头 |
用于 DLR 控制虚拟机的命令 | show edge | 用于分布式逻辑路由器 (DLR) 控制虚拟机的 CLI 命令以“show edge”开头 |
用于 DLR 的命令 | show logical-router | 用于分布式逻辑路由器 (DLR) 的 CLI 命令以 show logical-router 开头 |
列出所有 Edge | show edge all | 列出支持集中式 CLI 的所有 Edge |
列出 Edge 的所有服务和部署详细信息 | show edge edgeID | 查看 Edge 服务网关信息 |
列出 Edge 的命令选项 | show edge edgeID ? | 查看详细信息,例如,版本、日志、NAT、路由表、防火墙、配置、接口和服务 |
查看路由详细信息 | show edge edgeID ip ? | 查看路由信息、BGP、OSPF 和其他详细信息 |
查看路由表 | show edge edgeID ip route | 查看 Edge 中的路由表 |
查看路由邻居 | show edge edgeID ip ospf neighbor | 查看路由邻居关系 |
查看 BGP 路由 | show edge edgeID ip bgp | 查看边界网关协议 (BGP) 路由表中的条目 |
查看逻辑路由器连接信息 | show logical-router host hostID connection | 验证连接的 LIF 数是否正确,绑定策略是否正确以及是否使用相应的 vDS |
列出在主机上运行的所有逻辑路由器实例 | show logical-router host hostID dlr all | 验证 LIF 和路由数 在逻辑路由器的所有主机上,控制器 IP 应该相同 控制层面 Active 应该为 yes --brief 提供了精简响应 |
检查主机上的路由表 | show logical-router host hostID dlr dlrID route | 这是控制器推送到传输区域中的所有主机的路由表 在所有主机上,该表必须是相同的 如果在少数主机上缺少某些路由,请尝试从控制器中运行前面提到的 sync 命令 E 标记表示路由是通过 ECMP 获悉的 |
检查主机上的 DLR 的 LIF | show logical-router host hostID dlr dlrID interface (all | intName) verbose | LIF 信息将从控制器推送到主机 可以使用该命令确保主机了解应了解的所有 LIF |
显示路由日志 | show log routing [follow | reverse] | follow:更新显示的日志。 reverse:以反向时间顺序显示日志。 |
说明 | NSX Controller 上的命令 | 备注 |
---|---|---|
查找所有逻辑路由器实例 | show control-cluster logical-routers instance all | 这会列出逻辑路由器实例以及传输区域中具有逻辑路由器实例的所有主机 此外,还会显示为该逻辑路由器提供服务的控制器 |
查看每个逻辑路由器的详细信息 | show control-cluster logical-routers instance 0x570d4555 | IP 列显示该 DLR 所在的所有主机的 vmk0 IP 地址 |
查看连接到逻辑路由器的所有接口 | show control-cluster logical-routers interface-summary 0x570d4555 | IP 列显示该 DLR 所在的所有主机的 vmk0 IP 地址 |
查看该逻辑路由器获悉的所有路由 | show control-cluster logical-routers routes 0x570d4555 | 请注意,IP 列显示该 DLR 所在的所有主机的 vmk0 IP 地址 |
显示建立的所有网络连接,类似于 net stat 输出 | show network connections of-type tcp | 检查要排除故障的主机是否建立到控制器的 netcpa 连接 |
将接口从控制器同步到主机 | sync control-cluster logical-routers interface-to-host <logical-router-id> <host-ip> | 如果新接口连接到逻辑路由器,但未同步到所有主机,这是非常有用的 |
将路由从控制器同步到主机 | sync control-cluster logical-routers route-to-host <logical-router-id> <host-ip> | 如果在少数主机上缺少某些路由,但这些路由在大多数主机上可用,这是非常有用的 |
说明 | Edge 或逻辑路由器控制虚拟机上的命令 | 备注 |
---|---|---|
查看配置 | show configuration <global | bgp | ospf | …> | |
查看获悉的路由 | show ip route | 确保路由和转发表保持同步 |
查看转发表 | show ip forwarding | 确保路由和转发表保持同步 |
查看分布式逻辑路由器接口 | show interface | 在输出中显示的第一个网卡是分布式逻辑路由器接口 分布式逻辑路由器接口不是该虚拟机上的真正 vNIC 连接到分布式逻辑路由器的所有子网具有 INTERNAL 类型 |
查看其他接口(管理) | show interface | 管理/HA 接口是逻辑路由器控制虚拟机上的真正 vNIC 如果启用 HA 而未指定 IP 地址,则使用 169.254.x.x/30 如果为管理接口分配了 IP 地址,则会在此处显示该地址 |
调试协议 | debug ip ospf debug ip bgp |
在查看配置问题(例如,不匹配的 OSPF 区域、计时器和错误的 ASN)时,这是非常有用的 注意:只能在 Edge 控制台上查看输出(而不能通过 SSH 会话) |
OSPF 命令 | show configuration ospf show ip ospf interface show ip ospf neighbor show ip route ospf show ip ospf database show tech-support(并查找字符串“EXCEPTION”和“PROBLEM”) |
|
BGP 命令 | show configuration bgp show ip bgp neighbor show ip bgp show ip route bgp show ip forwarding show tech-support (查找字符串“EXCEPTION”和“PROBLEM”) |
说明 | 日志文件 | 备注 |
---|---|---|
vsfwd 将分布式逻辑路由器实例信息推送到主机并保存为 XML 格式 | /etc/vmware/netcpa/config-by-vsm.xml | 如果在主机上缺少分布式逻辑路由器实例,请先查看该文件以确定是否列出该实例 如果未列出,请重新启动 vsfwd 此外,还可以使用该文件确保主机了解所有控制器 |
上述文件是 NSX Manager 使用 vsfwd 推送的 如果 config-by-vsm.xml 文件不正确,请查看 vsfwd 日志 |
/var/log/vsfwd.log | 分析该文件以查找错误 要重新启动进程,请运行以下命令:/etc/init.d/vShield-Stateful-Firewall stop|start |
到控制器的连接是使用 netcpa 建立的 | /var/log/netcpa.log | 分析该文件以查找错误 |
逻辑交换模块日志位于 vmkernel.log 中 | /var/log/vmkernel.log | 在 /var/log/vmkernel.log 中检查“具有 vxlan 前缀”的逻辑交换模块: |
描述 | 命令(在 NSX Manager 上) | 备注 |
---|---|---|
列出所有控制器及其状态 | show controller list all | 显示所有控制器及其运行状态的列表 |
说明 | 命令(在控制器上) | 备注 |
---|---|---|
检查控制器群集状态 | show control-cluster status | 应始终显示“Join complete”和“Connected to Cluster Majority” |
检查抖动连接的统计信息和消息 | show control-cluster core stats | 丢弃的数据包计数器不应发生变化 |
查看与最初加入群集或重新启动后有关的节点活动 | show control-cluster history | 这对于解决群集加入问题非常有用 |
查看群集中的节点列表 | show control-cluster startup-nodes | 请注意,该列表不需要仅包含活动群集节点 它应该是具有当前部署的所有控制器的列表 在启动控制器以联系群集中的其他控制器时,可以使用该列表 |
显示建立的所有网络连接,类似于 net stat 输出 | show network connections of-type tcp | 检查要排除故障的主机是否建立到控制器的 netcpa 连接 |
重新启动控制器进程 | restart controller | 仅重新启动主控制器进程 强制重新连接到群集 |
重新引导控制器节点 | restart system | 重新引导控制器虚拟机 |
说明 | 日志文件 | 备注 |
---|---|---|
查看控制器历史记录以及最近的加入、重新启动,等等 | show control-cluster history | 用于解决控制器问题的极佳工具,尤其是解决群集问题 |
检查速度较慢的磁盘 | show log cloudnet/cloudnet_java-zookeeper<timestamp>.log filtered-by fsync | 一种检查速度较慢的磁盘的可靠方法是,在 cloudnet_java-zookeeper 日志中查找“fsync”消息 如果同步所需的时间超过 1 秒,ZooKeeper 将输出该消息,这很好地指明了其他程序此时正在使用该磁盘 |
检查速度较慢/发生故障的磁盘 | show log syslog filtered-by collectd | 有关“collectd”的示例输出中的消息往往与速度较慢或发生故障的磁盘有关 |
检查磁盘空间使用率 | show log syslog filtered-by freespace: | 在空间使用率达到某个阈值时,名为“freespace”的后台作业定期从磁盘中清除旧日志和其他文件。在某些情况下,如果磁盘很小以及/或者填充速度很快,则会看到大量 freespace 消息。这可能表明磁盘已填满 |
查找当前的活动群集成员 | show log syslog filtered-by Active cluster members | 列出当前的活动群集成员的节点 ID。可能需要查看较早的 syslog,因为并非始终输出该消息。 |
查看核心控制器日志 | show log cloudnet/cloudnet_java-zookeeper.20150703-165223.3702.log | 可能具有多个 zookeeper 日志,请查看具有最新时间戳的文件 该文件包含有关选择的控制器群集主控制器的信息以及与控制器的分布式特性有关的其他信息 |
查看核心控制器日志 | show log cloudnet/cloudnet.nsx-controller.root.log.INFO.20150703-165223.3668 | 主控制器工作日志,例如,LIF 创建时间、1234 上的连接侦听器、分片 |
说明 | NSX Manager 上的命令 | 备注 |
---|---|---|
查看虚拟机信息 | show vm vmID | DC、群集、主机、虚拟机名称、vNIC、安装的 dvfilter 等详细信息 |
查看特定的虚拟网卡信息 | show vnic icID | VNIC 名称、mac 地址、端口组、应用的筛选器等详细信息 |
查看所有群集信息 | show dfw cluster all | 群集名称、群集 ID、数据中心名称、防火墙状态 |
查看特定的群集信息 | show dfw cluster clusterID | 主机名、主机 ID、安装状态 |
查看 dfw 相关主机信息 | show dfw host hostID | 虚拟机名称、虚拟机 ID、电源状态 |
查看 dvfilter 中的详细信息 | show dfw host hostID filter filterID <option> | 列出每个 VNIC 的规则、统计信息、地址集等 |
查看虚拟机的 DFW 信息 | show dfw vm vmID | 查看虚拟机的名称、VNIC ID、筛选器等 |
查看 VNIC 详细信息 | show dfw vnic vnicID | 查看 VNIC 名称、ID、MAC 地址、端口组、筛选器 |
列出为每个 vNIC 安装的筛选器 | show dfw host hostID summarize-dvfilter | 查找感兴趣的虚拟机/vNIC,并获取名称字段以在后续命令中作为筛选器 |
查看特定筛选器/vNIC 的规则 | show dfw host hostID filter filterID rules show dfw vnic nicID |
|
查看地址集的详细信息 | show dfw host hostID filter filterID addrsets | 这些规则仅显示地址集,可以使用该命令扩充地址集包含的内容 |
每个 vNIC 的 spoofguard 详细信息 | show dfw host hostID filter filterID spoofguard | 检查是否启用了 SpoofGuard 以及当前的 IP/MAC |
查看流量记录详细信息 | show dfw host hostID filter filterID flows | 如果启用了流量监控,主机定期将流量信息发送到 NSX Manager 可以使用该命令查看每个 vNIC 的流量 |
查看 vNIC 的每个规则的统计信息 | show dfw host hostID filter filterID stats | 在查看是否命中规则时,这是非常有用的 |
说明 | 主机上的命令 | 备注 |
---|---|---|
列出在主机上下载的 VIB。 有关在您的安装上检查哪些 VIB 的详细信息,请参见在主机上安装的 VIB 和模块名称表。 |
esxcli software vib list | grep esx-vsip 或 esxcli software vib list | grep esx-nsxv |
检查以确保下载了正确的 VIB 版本 |
有关当前加载的系统模块的详细信息 有关在您的安装上检查哪些模块的详细信息,请参见在主机上安装的 VIB 和模块名称表。 |
esxcli system module get -m vsip 或 esxcli system module get -m nsx-vsip |
检查以确保安装/加载了模块 |
进程列表 | ps | grep vsfwd | 查看是否使用多个线程运行 vsfwd 进程 |
守护程序命令 | /etc/init.d/vShield-Stateful-Firewall {start|stop|status|restart} | 检查守护程序是否正在运行,并根据需要重新启动 |
查看网络连接 | esxcli network ip connection list | grep 5671 | 检查主机是否具有到 NSX Manager 的 TCP 连接 |
说明 | 日志 | 备注 |
---|---|---|
进程日志 | /var/log/vsfwd.log | vsfwd 守护程序日志,对 vsfwd 进程、NSX Manager 连接和 RabbitMQ 故障排除非常有用 |
数据包日志专用文件 | /var/log/dfwpktlogs.log | 数据包日志的专用日志文件 |
dvfilter 中的数据包捕获 | pktcap-uw --dvfilter nic-1413082-eth0-vmware-sfw.2 --outfile test.pcap |
说明 | NSX Manager 上的命令 | 备注 |
---|---|---|
显示所有数据包捕获会话 | show packet capture sessions | 显示所有数据包捕获会话的详细信息。 |
显示数据包捕获文件内容 | debug packet capture display session <capture-id> parameters [optional parameters] | 显示数据包捕获文件内容。 |
捕获 vNIC | debug packet capture host < host-id > vnic <vnic-id> dir <direction> parameters [optional parameters] | 捕获特定虚拟机 vNIC 的数据包。方向具有两个选项:输入和输出。 输入是指流量进入 vNIC,输出是指流量流出 vNIC。 |
捕获 vdrPort | debug packet capture host <host-id> vdrport dir <direction> parameters [optional parameters] | 捕获虚拟分布式路由器 (vDR) 的特定端口的数据包。方向具有两个选项:输入和输出。 输入是指流量进入 vDR,输出是指流量流出 vDR。 |
捕获 VMKNic | debug packet capture host <host-id> vmknic <vmknic-name> dir <direction> parameters [optional parameters] |
捕获特定 VMKNic 的数据包。方向具有两个选项:输入和输出。 输入是指流量进入 VMKNic,输出是指流量流出 VMKNic。 |
删除数据包捕获会话 | debug packet capture clear session <capture-id> | 删除特定的数据包捕获会话。 |