一、概要
EAM(ESX Agent Manager):vsphere esxi主机agent管理服务,连接 NSX 和 vCenter,主要负责完成自动部署和管理 NSX 网络和安全服务的过程,同时扩展 ESXi 主机功能以提供 vSphere 解决方案所需的额外服务。NSX Manager 借用在群集整个范围创建代理来请求 EAM 准备将原集群部署为一个特定的 NSX 群集,用于NSX 网络准备。而EAM 会自动完成部署和管理 vSphere ESX 代理的整个过程。
NSX环境中:主机准备阶段,EAM将负责完成整个自动化过程。如下图所示:
另外,想了解EAM状态,即监控 ESX Agent Manager,可登录web client,单击管理 > vCenter Server 扩展 (Administration > vCenter Server Extensions)–>单击 vSphere ESX Agent Manager—>
监控 (Monitor) > 事件 (Events):
ESX Agent Manager 提供的服务包括将代理与 DRS、AddHost、High Availability、DRM 和维护模式等 vSphere 功能即刻集成起来;注意,每个代理机构由多个代理组成,集群中每个 ESXi 主机上一个代理。
二、常见错误
1)使用 VMware ESX Agent Manager (EAM) 部署 vSphere 安装包 (VIB) 失败。
2)EAM 无法从 NSX Manager 访问 VIB。
3)EAM 显示错误“主机上没有为代理安装 VIB 模块 (VIB module for agent is not installed on host)”。
4)EAM 显示状态 Alert。
5)在 Networking & Security下,安装状态在群集和主机上显示为 Not Ready(未就绪),单击 Resolve(解决)无法修复该问题。
6)ESXi 主机 VXLAN VIB 安装失败。
7)ESXi 主机无法从 vCenter Server 访问 VIB。在 VC 系统事件表中,会看到:模块Security Fabric报错
“Security Fabric”(Event Message:‘Installation of deployment unit failed, please check if ovf/vib urls are accessible, in correct format and all the properties in ovf environment have been configured in service attributes. Please check logs for details.’, Module:‘Security Fabric’)
8)在TMP目录下的EAM 文件被删除且NSX manager 无法完成主机准备中的VXLAN部署;
9)在 NSX UI 的“安装”部分的“主机准备”选项卡中,重新启动 NSX Manager 或 EAM 服务后,群集的安装状态会显示为 Not Ready(未就绪)
10)NSX 主机准备部署进度一直旋转,数小时或数天的时间内状态不翻转,安装过程一直处于未完成;
【相关日志文件】:
1)ESX Agent Manager 日志包含在 vCenter Server 日志包中:
Windows vc虚拟机:C:\ProgramData\VMware\vCenterServer\logs\eam\eam.log
VCSA虚拟机: /var/log/vmware/vpx/eam.log
ESXi主机:/var/log/esxupdate.log2)esxi主机相关日志:
/var/log/netcpa.log //日志会报错类似如下:
Netcpa 错误: 错误 netcpa[FFCFFB70]: (Netcpa error: error netcpa[FFCFFB70]:)[FFCFFB70] [Originator@6876 sub=Default] Failed to get host id, returned , len 0
/var/log/vmkernel.log //eam运行异常时,日志上会看到如下类似报错:
An esxupdate error exception was caught: esxupdate: ERROR: MetadataDownloadError
/var/log/esxupdate.log3)VIB 模块安装失败时应查看vc上的 EAM 日志:
/storage/log/vmware/vpx/eam.log (在 Linux vCenter 上)
ProgramData/VMware/VMware VirtualCenter/Logs/(在 Windows vCenter 上)
三、工作原理
NSX Manager 负责 ESXi 主机准备,它在 ESXi 虚拟化管理程序(Hypervisor)上安装各种 vSphere 安装包 (VIB,它 是由数个文件组成的软件包,安装在 ESXi Hypervisor的内核空间中。),以便启用 VXLAN、分布式路由(DLR)、Distributed Firewall (DFW) 以及一个用于在控制层面级别通信的用户环境代理 (UWA)。
1、从 ESXi Hypervisor到 NSX Manager 和Controllers群集节点的控制层面通信的软件组件包括:
1)RabbitMQ Message Bus :提供 RMQ 客户端(ESXi Hypervisor上的 vsfwd 进程)和 NSX Manager 托管的 RMQ Server 进程之间的通信。
2)用户环境代理 (UWA) 进程:(ESXi 虚拟机管理程序上的 netcpa)建立到控制器群集节点的基于 SSL 的 TCP 通信通道。控制器使用此通道填充本地 MAC、ARP 和 VTEP 表,以确定在部署的逻辑网络中工作负载连接到何处。
2、主机准备工作流:
1)将 NSX Manager 连接到 vCenter Sever/VCVA。
2)部署 NSX Controller(使用单播模式、混合模式或 LDR)。主机准备。
3)NSX Manager > EAM > vCenter Server > ESXi 主机,会创建代理机构,EAM 会调用 vCenter Server 以安装 VIB
4)EAM 会在每次创建/更新/删除代理机构(agencies)以及重新启动 ESXi 主机时启动 VIB 扫描。实际扫描由 vSphere Update Manager 完成。EAM 调用 VUM 提供 NSX VIB ,VUM 确定所提供的 VIB 元数据与 ESXi 主机上安装的实际 VIB 之间的增量,EAM 使用该结果从 VUM 请求 VIB 安装。其中,代理机构(agencies)是 ESX 代理的容器。ESX 机构汇总了所管理的代理以及与这些 ESX 代理相关的所有问题的信息。
5)将通过以下 URL 从 NSX Manager 访问 VIB:https://<NSXMGR_IP>/bin/vdn/vibs/5.5/vxlan.zip。
6)成功部署代理和代理机构后,EAM 会报告“绿色”运行状况。
7)为 VMware NSX for vSphere 准备 ESXi 主机时,NSX Manager 会通过 VMware vSphere ESX Agency Manager (EAM) 自动推送 vSphere Installation Bundle (VIB)。 ESXi 主机上会安装以下3个 VIB,其中,esx-dvfilter-switch-security VIB从 VMware NSX for vSphere 6.2.0 开始包含到esx-vxlan VIB 中:
esx-dvfilter-switch-security
esx-vsip
esx-vxlan
【ESX Agent Manager 运行状况】:
运行状况颜色 | 描述 |
红色 | 解决方案必须干预,ESX Agent Manager 才能继续。例如,如果在计算资源中手动关闭虚拟机代理电源,且 ESX Agent Manager 不尝试打开该代理电源,ESX Agent Manager 会将此操作报告给解决方案,然后解决方案将提醒管理员打开代理电源。 |
黄色 | ESX Agent Manager 积极致力于达到目标状况。可以启用、禁用或卸载目标状况。例如,注册解决方案时,其状态为黄色直到 ESX Agent Manager 将解决方案代理部署到所有指定的计算资源。ESX Agent Manager 将其健康状态报告为黄色时,解决方案不需要干预。 |
绿色 | 解决方案及其所有代理已达到目标状态。 |
在选定的集群的三单引号单击解决所有问题。将解决与所选机构相关的所有问题。
3、EAM相关程序位置
VMware vSphere 6.x对应的rpm包为: vmware-eam
Windows中:C:\Program Files\VMware\CIS\eam
VCVA(vCenter Server Virtual Appliance ):/usr/lib/vmware-eam
停止tomcat/tcserver 服务:
Windows:
将 EAM Web 应用程序从 <TOMCAT_DIR>\webapps 移动至 <TOMCAT_DIR>\webapps 以外目录下的 <SOME_BACKUP_DIR>
停止 tcserver 实例: <TOMCAT_DIR>\bin\tcruntime-ctl.bat stop tomcat
启动 tcserver 实例: <TOMCAT_DIR>\bin\tcruntime-ctl.bat start tomcat
VCVA:
将 EAM Web 应用程序从 <TOMCAT_DIR>\webapps 移动至 <TOMCAT_DIR>\webapps 以外目录下的 <SOME_BACKUP_DIR>
停止 tcserver 实例: <TOMCAT_DIR>/bin/tcruntime-ctl.sh stop tomcat
启动 tcserver 实例: <TOMCAT_DIR>\bin\tcruntime-ctl.bat start tomcat
注意: 我们首先移动 EAM Web 应用程序文件夹,因为出于某些原因,在停止 tcserver 实例后,它会自动重新启动。
四、排故思路
1)检查 NSX for vSphere 当前版本的发行说明,了解问题是否已在错误修复中得到解决。在“安装和升级问题”下查看。
https://www.vmware.com/support/pubs/nsx_pubs.html进入查看对应NSX版本的文档,注:NSX for vSphere 现名为 NSX Data Center for vSphere;
查找Known Issues,确认遇到的问题是否在新版本中解决,且新版本是否与当前实际环境匹配,可使用升级方案解决;
2)确保在 ESXi 主机和vsphere环境中正确配置了 DNS。NSX for vSphere 6.x 中的主机准备期间,在 vSphere 主机上安装网络虚拟化组件时,VMware ESX Agent Manager (EAM) 可能会无法部署所有必需的 VIB。
1> vCenter Server, the ESXi hosts and NSX Manager需要正确配置DNS,确保vCenter Server, ESXi hosts, NSX Manager and Update Manager 这些组件虚拟机中的DNS正反向解析正常。
2>检查vsphere环境NTP服务配置是否正确,vspher环境的NTP时间一致性对环境的整体通信非常重要。
3>检查r NSX for vSphere 6.x 的相关端口是否通信正常,参照下表:
注:如vcsa部署过程中,自定义了端口,请确保该端口在和esxi间的防火墙上允许开放。
4>验证是否正确配置了vCenter Server的IP地址;
5>确认VUM(VMware Update Manager)服务是否允许正常;当使用VUM安装EAM / VXLAN代理时,EAM需要依赖vUM来安装和卸载 VIB到集群的ESXi主机,如vum允许异常,则会报错Agent VIB module not installed;这是 NSX for vSphere 6.x的已知问题,在vSphere 6.0 Update 3版本中被解决;或者手动直接在ESXi主机上安装 VXLAN 模块组件:
《1》首先需要将 bypassVumEnabled配置为true,以允许即使VUM已安装或VUM不可用,也可通过EAM直接将vib安装到ESXi主机上。打开https://vCenter_Server_IP/eam/mob/,用Administrator访问到MOB页:
从agency列表里选一个agency,VMware vCenter Server 6.0后,agency显示为GUID,如下:
上图中的4组valve对应下图中的4个集群,单击任一组可以进去:
单击config后,url变为:https://vCenter_Server_IP/eam/mob/?moid=agency-GUID&doPath=config
验证bypassVumEnabled是否值为true,由上图可见,正常部署完成情况下,bypassVumEnabled值为boolean;
如果先高配置为true,修改https://vCenter_Server_IP/eam/mob/?moid=agency-GUID&doPath=config为:https://vCenter_Server_IP/eam/mob/?moid=agency-GUID&method=Update,打开:
完成后,单击【Invoke Method】生效。安装完成如 NSX Manager界面主机准备处显示agency为红色,可单击对应主机的Resolve 。处理后再将bypassVumEnabled值修改回默认。注:如果vcenter是新安装的,可通过 https://vCenter_Server_IP/eam页面采用你浏览器方式部署EAM,部署完成后,会显示:
6>确认vcenter进程vpxd运行正常,正常监听TCP端口8089;NSX Manager仅支持默认端口8089。vcenter部署过程中, vpxd会为ESX Agent Manager选择一个TCP端口(默认为8089),如果8089端口已被使用,将会自动自增,选8090及其后的端口。
7、PhotonOS已经引入了自动清理策略,定期清理/tmp文件夹。上述关于failed VIB payload publish问题,是因为ESX代理管理器(ESX Agent Manager )使用/tmp文件夹来存储发布的VIB有效负载。如果定期清理恰好将EAM用于存储已发布负载的文件夹结构删除,则会导致EAM操作失败,报:EAM fails to complete VIB operation due to failed VIB payload publish;这是vsphere 6.5的已知问题,vSphere 6.5 U1中该问题已得到解决,可升级到该版本;或可临时重启EAM 服务来尝试处理,执行:
service-control --stop eam
service-control --start eam
五、附录:NSX-V 6 通信流程
客户端PC> NSX Manager 443 / TCP(NSX Manager管理界面)
客户端PC> NSX Manager 80 / TCP(NSX Manager VIB访问)
ESXi主机> ESXi主机6999 / UDP(VLAN LIF上的ARP)
ESXi主机> NSX Controller 1234 / TCP(用户全球代理连接)
ESXi主机> NSX Manager 5671 / TCP(AMQP)
ESXi主机> NSX Manager 8301,8302 / UDP(DVS同步)
ESXi主机> vCenter Server 80 / TCP(ESXi主机准备)
NSX控制器> NSX控制器2878 ,2888,3888 / TCP(控制器群集 - 状态同步)
NSX控制器> NSX控制器30865 / TCP(控制器群集 - 状态同步)
NSX控制器> NSX控制器7777 / TCP(控制器间RPC端口)
NSX控制器> NTP时间服务器123 / TCP(NTP客户端连接)
NSX控制器> NTP时间服务器123 / UDP(NTP客户端连接)
NSX Manager> DNS服务器53 / TCP(DNS客户端连接)
NSX Manager> DNS服务器53 / UDP(DNS客户端连接)
NSX Manager> ESXi主机443 / TCP(管理和配置连接)
NSX Manager> ESXi主机8301,8302 / UDP(DVS同步)
NSX Manager> ESXi主机902 / TCP(管理和配置连接)
NSX Manager> NSX Controller 443 / TCP(控制器到管理器通信)
NSX Manager> NTP时间服务器123 / TCP(NTP客户端连接)
NSX Manager> NTP时间服务器123 / UDP(NTP客户端连接)
NSX Manager > Syslog服务器514 / TCP(Syslog连接)
NSX Manager> Syslog服务器514 / UDP(Syslog连接)
NSX Manager> vCenter Server 443 / TCP(vSphere Web Access)
NSX Manager> vCenter Server 902 / TCP(vSphere Web Access)
REST客户端> NSX Manager 443 / TCP(NSX Manager REST API)
vCenter Server> ESXi主机80 / TCP(ESXi主机准备)
vCenter Server> NSX Manager 80 / TCP(主机准备)
VTEP> VTEP 4789 / UDP(VTEP 之间的传输网络封装