Problem:
For å se eller oppdatere SNMP-innstillinger på en VMware-node som kjører ESXi 5.1 skal kommandolinjeverktøyet ESXCLI benyttes. Dokumentasjonen angir følgende syntaks:
C:\>esxcli -s ESXI_HOST -u root -p ESXI_PASSWORD system snmp get
Kommandoen feiler med følgende feilmelding, uansett hva slags parametre man forsøker å sette:
Community string was not specified in trap target:
Forsøk på å endre verdiene på ulike måter gjennom PowerCLI feiler med helt verdiløse feilmeldinger. Eksempel:
Get-View : 08.03.2013 15:33:23 Get-View A general system error occurred:
At line:1 char:9
+ Get-View <<<< $SNMPsys
+ CategoryInfo : NotSpecified: (:) [Get-View], ViError
+ FullyQualifiedErrorId : Client20_MoServiceImpl_GetNetInteropView_ViError,VMware.VimAutomation.ViCore.
mands.DotNetInterop.GetVIView
Løsning:
Problemet skyldes at konfigurasjonsfilen "/etc/vmware/snmp.xml" inneholder feil. Dette kan skyldes tidligere feil bruk av konfigurasjonsverktøyet ESXCLI, at konfigurasjonsfilen tidligere er oppdatert med verktøyet "vicfg-snmp.pl" eller at VMware-noden opprinnelig er installert med en tidligere versjon av VMware ESXi og deretter oppgradert. Eksempel på en konfigurasjonsfil som ikke fungerer:
~ # cat /etc/vmware/snmp.xml
<?xml version="1.0" ?>
<config>
<snmpSettings>
<enable>
false
</enable>
<port>
161
</port>
<syscontact>
not set
</syscontact>
<syslocation>
not set
</syslocation>
<communities>
</communities>
<targets>
</targets>
</snmpSettings>
</config>
Det finnes ingen annen måte å løse dette problemet enn å manuelt gå inn på VMware-serveren via SSH ("Troubleshooting Options" | "Enable SSH") og enten redigere konfigurasjonsfilen manuelt eller slette den og konfigurere på nytt.
~ # rm /etc/vmware/snmp.xml
Du kan nå kjøre ESXCLI uten feilmeldinger:
C:\>esxcli -s ESXI_HOST -u root -p ESXI_PASSWORD system snmp get
authentication:
communities:
enable: false
engineid:
hwsrc: indications
loglevel: info
notraps:
port: 161
privacy:
remoteusers:
syscontact:
syslocation:
targets:
users:
v3targets:
C:\>esxcli -s ESXI_HOST -u root -p ESXI_PASSWORD system snmp set -c public -t 10.80.2.250@162/public -e yes -a none
C:\>esxcli -s ESXI_HOST -u root -p ESXI_PASSWORD system snmp get
authentication: none
communities: public
enable: true
engineid: 00000063000000a1ac1d148f
hwsrc: indications
loglevel: info
notraps:
port: 161
privacy:
remoteusers:
syscontact:
syslocation:
targets: 10.80.2.250@162 public
users:
v3targets: