"WARNING: VMware ESX Agent Manager may have failed to start", EAM Service fails to start after vCenter Server reboot
book
Article ID: 315479
calendar_today
Updated On:
Products
VMware vCenter Server
Issue/Introduction
The purpose of this kb is to show how to recover the EAM service on vCenter Server 6.0 by manually replacing the eam.properties file.
Symptoms:
EAM service fails to start after a reboot.
EAM service fails to start after recovering the vCenter from 100% storage utilization issue.
Unable to access the EAM MOB web interface.
Unable to start the service vmware-eam
You see the warning message:
WARNING: VMware ESX Agent Manager may have failed to start
In the /var/log/vmware/eam/wrapper.log (on VCSA)/ %Programdata%/VMware/vCenterServer/eam/wrapper.log (on Windows) you see entries similar to:
INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: Encountered an error running main: INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'esxAgentMgr' defined in class path resource [eam-server-beans.xml]: Could not resolve placeholder 'eam.hostd_restart_timeout' INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties (PropertyPlaceholderConfigurer.java:268) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory (PropertyResourceConfigurer.java:75) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:554) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:528) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:363) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.context.support.ClassPathXmlApplicationContext. (ClassPathXmlApplicationContext.java:139) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.springframework.context.support.ClassPathXmlApplicationContext. (ClassPathXmlApplicationContext.java:83) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at com.vmware.eam.util.Main.main(Main.java:50) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at java.lang.reflect.Method.invoke(Unknown Source) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:290) INFO | jvm 1| [YYYY-MM-DDTHH:MM:SS] | WrapperSimpleApp Error: at java.lang.Thread.run(Unknown Source) STATUS | wrapper | [YYYY-MM-DDTHH:MM:SS] |
Environment
VMware vCenter Server 6.x VMware vCenter Server 6.0.x
Cause
The eam.properties is being removed during start of the vmware-eam service (EAM) in an environment without any disk space. Before EAM starts, eam.properties is getting updated using cis.utils.replace_properties_in_file. This rewrites the whole file which causes a loss of the data inside the file.
Note: Strongly recommended to backup the vCenter Server before following below procedure.
vCenter Server Appliance
Connect to your vCenter appliance using SSH or console, enter bash shell using shell command.
Browse to /etc/vmware-eam/.
Clone the eam.properties file to have a backup from the original file
cp eam.properties eam.properties.old
Determine the host ID,
cat /etc/vmware/install-defaults/sca.hostid:
The output should be a string like : 0a12dfe2-b3b7-4eb6-9737-1ec5a8e770ec
Check the vCenter FQDN: hostname -f
Edit the eam.properties file "vi eam.properties"
Enter insert mode by pressing i, paste the below inside the file considering modifying the highlighted strings to fit the specifications of the environment:
Note: You can also run the attached script "Recreate_eam.propertiers.sh" for quick and accurate process.
vc.proxy.host=localhost vc.proxy.port=80 # Hostname or IP of the EAM server # Fill only if EAM is not running on the same host as VC eam.host= # EAM service port used to configure the HTTP connector of the application server. eam.int.http.port=15005 # Port and scheme configuration which is used by the ESX 6.x hosts to reach EAM Vib # file server. eam.ext.port=443 eam.ext.scheme=https # Port and scheme configuration which is used by the ESX 5.x hosts to reach EAM Vib # file server. eam.ext.port.deprecated=80 eam.ext.scheme.deprecated=http eam.support_linked_clone=true eam.clear_db_on_startup=false eam.debug_ref_count=false eam.recent_event_size=20 # Enable/disable VUM integration vum.integration=true # Value is specified in minutes (set to 24h = 1440m) eam.scan_for_unknown_agent_vms=1440 # The timeout to wait for hostd to restart on a host (set to 5m=300s) eam.hostd_restart_timeout=300 # The following entries will be added verbatim to the advanced options # of hosts on which EAM is enabled. All are optional. Net.DVFilterBindIpAddress=169.254.0.1 Net.TrafficFilterIpAddress= # The IP for the VSWIF NIC on the dvFilter switch (for ESX classic). Net.DVFilterVswifIpAddress=169.254.0.2 # Resource bundle configuration eam.resourcebundle.filename=eam-resourcebundle.jar # VLSI embedded tcServer configuration # tcserver.tmp.dir=/var/tmp/vmware/eam/tomcat eam.web.root=/usr/lib/vmware-eam/web # EAM SSL configuration # eam.keystore.type=VKS eam.key.alias=vpxd-extension eam.keystore.storename=vpxd-extension # CM configuration # cm.url=http://localhost:18090/cm/sdk/?hostid=0a12dfe2-b3b7-4eb6-9737-1ec5a8e770ec #<====== same string from step 4 cm.wait.attempts=360 cm.wait.intervalSeconds=5 # SSO configuration # sso.wait.attempts=360 sso.wait.intervalSeconds=5 # VC SSL configuration # vc.truststore.type=VKS vc.truststore.storename=TRUSTED_ROOTS vc.tunnelSdkUri.template=https://##{VC_HOST_NAME}##:8089/sdk/vimService #<====== Keep this unchanged vc.tunnelSdkUri=https://<vCenter_FQDN>:8089/sdk/vimService #<====== Change this to your vCenter FQDN/IP drs.demandCapacityRatio=100
Save and exit the file by pressing <ESc> and enter :wq
Run this command to change the permission of the file:
chmod 0644 eam.properties
Start the EAM service:
service-control --start vmware-eam
Note: Delete the eam.properties.old or backup file if EAM is working fine.
vCenter Server on Windows
Login to the vCenter Server using Console or RDP.
Browse to %ProgramData%\VMware\vCenterServer\cfg\vmware-eam.
Create a Backup of eam.properties using Windows Explorer Copy function
Determine the host ID and FQDN,
Open %ProgramData%/VMware/vCenterServer/cfg/install-defaults/sca.hostid:
It will contain a string like :0a12dfe2-b3b7-4eb6-9737-1ec5a8e770ec
Check the vCenter FQDN: Control Panel -> System -> Full computer name
Open eam.properties file using Wordpad and add the values mentioned below considering modifying the highlighted strings to fit the specifications of the environment:
vc.proxy.host=localhost vc.proxy.port=80 # Hostname or IP of the EAM server # Fill only if EAM is not running on the same host as VC eam.host= # EAM service port used to configure the HTTP connector of the application server. eam.int.http.port=15005 # Port and scheme configuration which is used by the ESX 6.x hosts to reach EAM Vib # file server. eam.ext.port=443 eam.ext.scheme=https # Port and scheme configuration which is used by the ESX 5.x hosts to reach EAM Vib # file server. eam.ext.port.deprecated=80 eam.ext.scheme.deprecated=http eam.support_linked_clone=true eam.clear_db_on_startup=false eam.debug_ref_count=false eam.recent_event_size=20 # Enable/disable VUM integration vum.integration=true # Value is specified in minutes (set to 24h = 1440m) eam.scan_for_unknown_agent_vms=1440 # The timeout to wait for hostd to restart on a host (set to 5m=300s) eam.hostd_restart_timeout=300 # The following entries will be added verbatim to the advanced options # of hosts on which EAM is enabled. All are optional. Net.DVFilterBindIpAddress=169.254.0.1 Net.TrafficFilterIpAddress= # The IP for the VSWIF NIC on the dvFilter switch (for ESX classic). Net.DVFilterVswifIpAddress=169.254.0.2 # Resource bundle configuration eam.resourcebundle.filename=eam-resourcebundle.jar # VLSI embedded tcServer configuration # tcserver.tmp.dir=C:/ProgramData/VMware/vCenterServer/runtime/tmp/vmware/eam/tomcat eam.web.root=C:/Program Files/VMware/vCenter Server/eam/web # EAM SSL configuration # eam.keystore.type=VKS eam.key.alias=vpxd-extension eam.keystore.storename=vpxd-extension # CM configuration # cm.url=http://localhost:18090/cm/sdk/?hostid=0a12dfe2-b3b7-4eb6-9737-1ec5a8e770ec #<====== same string from step 4 cm.wait.attempts=360 cm.wait.intervalSeconds=5 # SSO configuration # sso.wait.attempts=360 sso.wait.intervalSeconds=5 # VC SSL configuration # vc.truststore.type=VKS vc.truststore.storename=TRUSTED_ROOTS vc.tunnelSdkUri.template=https://##{VC_HOST_NAME}##:8089/sdk/vimService #<====== Keep this unchanged vc.tunnelSdkUri=https://<vCenter_FQDN>:8089/sdk/vimService #<====== Change this to your vCenter FQDN/IP drs.demandCapacityRatio=100
Save the file
Start the EAM service:
service-control --start vmware-eam
Note: Delete the eam.properties.old or backup file if EAM is working fine.