Bei NSX Data Center for vSphere dient die Kontrollebene (netcpa) als lokaler Agentendaemon, der mit NSX Manager und dem Controller-Cluster kommuniziert. Die Funktion Kommunikationskanalstatus (Communication Channel Health) ist eine Überprüfung des Systemzustands, die in regelmäßigen Abständen den Zustand der zentralen bis zur lokalen Kontrollebene an NSX Manager meldet und die in der Benutzeroberfläche von NSX Manager angezeigt wird. Dieser Bericht dient auch als Taktsignal, um den Betriebszustand des NSX Manager zum ESXi-Host-netcpa-Kanal zu erkennen. Er bietet Fehlerdetails bei Kommunikationsfehlern, generiert ein Ereignis, wenn ein Kanal in den falschen Status verfällt, und erstellt außerdem Taktsignalnachrichten vom NSX Manager zu Hosts.
Problem
Konnektivitätsprobleme zwischen Steuerungsebenen-Agent und Controller.
Ursache
Wenn eine Verbindung ausfällt, funktioniert der Steuerungsebenen-Agent möglicherweise nicht ordnungsgemäß.
Lösung
- Wenn der Kanal in einen fehlerhaften Status wechselt, überprüfen Sie den Verbindungsstatus mit folgender API-Anforderung:
GET https://<NSX_Manager_IP>/api/2.0/vdn/inventory/host/{hostId}/connection/status
Weitere Informationen zur Verwendung dieser API finden Sie im NSX-API-Handbuch.
Sie können „hostId“ entweder mithilfe der
NSX Manager-CLI oder des vCenter Managed Object Browsers (MOB) finden.
- Um den vCenter MOB zu verwenden, öffnen Sie einen Webbrowser und geben Sie unter http://vCenter-IP-Address/mob die URL des vCenter MOB ein. Weitere Informationen finden Sie in der Anleitung zum Suchen von Cluster- oder Host-MOID im NSX-API-Handbuch.
- Um die NSX Manager-CLI zu verwenden, melden Sie sich als Admin-Benutzer an und führen Sie den Befehl show cluster all oder show cluster clusterID aus. Weitere Informationen zu diesen Befehlen finden Sie im Referenzschnellhandbuch für die NSX-Befehlszeilenschnittstelle.
Nachfolgend ein Beispiel für die API-Antwort:
<?xml version="1.0" encoding="UTF-8"?>
<hostConnStatus>
<hostName>10.161.246.20</hostName>
<hostId>host-21</hostId>
<nsxMgrToFirewallAgentConn>UP</nsxMgrToFirewallAgentConn>
<nsxMgrToControlPlaneAgentConn>UP</nsxMgrToControlPlaneAgentConn>
<hostToControllerConn>DOWN</hostToControllerConn>
<fullSyncCount>-1</fullSyncCount>
<hostToControllerConnectionErrors>
<hostToControllerConnectionError>
<controllerIp>10.160.203.236</controllerIp>
<errorCode>1255604</errorCode>
<errorMessage>Connection Refused</errorMessage>
</hostToControllerConnectionError>
<hostToControllerConnectionError>
<controllerIp>10.160.203.237</controllerIp>
<errorCode>1255603</errorCode>
<errorMessage>SSL Handshake Failure</errorMessage>
</hostToControllerConnectionError>
</hostToControllerConnectionErrors>
</hostConnStatus>
Die folgenden Fehlercodes werden unterstützt:
1255602: Unvollständiges Controller-Zertifikat 1255603: SSL-Handshake-Fehler 1255604: Verbindung abgelehnt. 1255605: Keep-alive-Zeitüberschreitung 1255606: SSL-Ausnahme 1255607: Ungültige Meldung 1255620: Unbekannter Fehler
- Ermitteln Sie den Grund für den Ausfall des Steuerungsebenen-Agenten wie folgt:
- Überprüfen Sie durch Ausführung des Befehls /etc/init.d/netcpad status auf den ESXi-Hosts den Status des Steuerungsebenen-Agenten auf den Hosts.
[root@esx-01a:~] /etc/init.d/netcpad status
netCP agent service is running
- Überprüfen Sie die Konfigurationen des Steuerungsebenen-Agenten mithilfe des Befehls more /etc/vmware/netcpa/config-by-vsm.xml. Es müssen die IP-Adressen der NSX Controller aufgeführt sein.
[root@esx-01a:~] more /etc/vmware/netcpa/config-by-vsm.xml
<config>
<connectionList>
<connection id="0000">
<port>1234</port>
<server>192.168.110.31</server>
<sslEnabled>true</sslEnabled>
<thumbprint>A5:C6:A2:B2:57:97:36:F0:7C:13:DB:64:9B:86:E6:EF:1A:7E:5C:36</thumbprint>
</connection>
<connection id="0001">
<port>1234</port>
<server>192.168.110.32</server>
<sslEnabled>true</sslEnabled>
<thumbprint>12:E0:25:B2:E0:35:D7:84:90:71:CF:C7:53:97:FD:96:EE:ED:7C:DD</thumbprint>
</connection>
<connection id="0002">
<port>1234</port>
<server>192.168.110.33</server>
<sslEnabled>true</sslEnabled>
<thumbprint>BD:DB:BA:B0:DC:61:AD:94:C6:0F:7E:F5:80:19:44:51:BA:90:2C:8D</thumbprint>
</connection>
</connectionList>
...
- Überprüfen Sie mit folgendem Befehl die Verbindungen zwischen den Controllern und dem Steuerungsebenen-Agenten. Die Ausgabe ist eine Verbindung für jeden Controller.
>[root@esx-01a:~] esxcli network ip connection list | grep 1234
tcp 0 0 192.168.110.51:16594 192.168.110.31:1234 ESTABLISHED 36754 newreno netcpa-worker
tcp 0 0 192.168.110.51:46917 192.168.110.33:1234 ESTABLISHED 36754 newreno netcpa-worker
tcp 0 0 192.168.110.51:47891 192.168.110.32:1234 ESTABLISHED 36752 newreno netcpa-worker
- Überprüfen Sie mit folgendem Befehl, ob die Verbindungen zwischen den Controllern und dem Steuerungsebenen-Agenten den Status CLOSED oder CLOSE_WAIT aufweisen:
esxcli network ip
connection list |grep "1234.*netcpa*" | egrep "CLOSED|CLOSE_WAIT"
- Falls der Steuerungsebenen-Agent bereits länger ausgefallen war, sind die Verbindungen möglicherweise gar nicht vorhanden. Um den Status der Verbindung zu validieren, führen Sie den folgenden Befehl aus. Die Ausgabe ist eine Verbindung für jeden Controller.
esxcli network ip
connection list |grep "1234.*netcpa*" |grep ESTABLISHED
- Mechanismus zur automatischen Wiederherstellung des Steuerungsebenen-Agenten (netcpa): Der Prozess zur automatischen Überwachung des Steuerebenen-Agenten erkennt, dass der Steuerungsebenen-Agent einen fehlerhaften Status aufweist. Wenn der Steuerungsebenen-Agent einen fehlerhaften Status aufweist, reagiert er nicht mehr und versucht dann automatisch, eine Wiederherstellung durchzuführen.
- Wenn der Steuerungsebenen-Agent nicht mehr reagiert, wird eine Live-Core-Datei generiert. Sie finden die Core-Datei wie folgt:
ls /var/core
netcpa-worker-zdump.000
- Syslog-Fehler werden in der Datei vmkwarning.log gemeldet.
cat /var/run/log/vmkwarning.log | grep NETCPA
2017-08-11T06:32:17.994Z cpu1:1000044539)ALERT: Critical - NETCPA is hanged
Taking live-dump & restarting netcpa process!
Hinweis:
Wenn bei der Überwachung des Steuerungsebenen-Agenten aufgrund einer verspäteten Antwort auf die Statusüberprüfung ein temporärer Fehler auftritt, wird in den VMKernel-Protokollen möglicherweise eine Warnmeldung angezeigt, die der folgenden ähnelt.
Warning - NETCPA getting netcpa status failed!
Sie können diese Warnung ignorieren.
- Wenn keine automatische Wiederherstellung erfolgt, starten Sie den Steuerungsebenen-Agenten wie folgt neu:
- Melden Sie sich über SSH oder die Konsole als Root beim ESXi-Host an.
- Führen Sie den Befehl /etc/init.d/netcpad restart aus, um den Steuerungsebenen-Agenten auf dem ESXi-Host neu zu starten.