<ph type="x-smartling-placeholder"></ph>
  Sie sehen die Dokumentation zu Apigee Edge.
  Gehen Sie zur
     Apigee X-Dokumentation. Weitere Informationen
Symptom
Die ZooKeeper-Verbindungsprobleme können sich an verschiedenen Symptomen äußern, z. B.:
- Fehler bei der API-Proxy-Bereitstellung
- Verwaltungs-API-Aufrufe schlagen mit 5XX-Fehlern fehl
- Router oder Message Processor starten nicht
- Analytics-Komponenten melden ZooKeeper-Verbindungsverlust in system.logs.
Fehlermeldungen
Im Folgenden finden Sie Beispiele für Fehlermeldungen, die auftreten können, wenn Verbindungsverlust zu ZooKeeper-Knoten.
- Der folgende Fehler wird in Verwaltungsserverlogs zurückgegeben, wenn eine API-Proxy-Bereitstellung
    schlägt aufgrund des Verbindungsverlusts von ZooKeeper fehl:
      org: env: main INFO ZOOKEEPER - ZooKeeperServiceImpl.exists() : Retry path existence path: /regions/dc-1/pods/analytics/servers/692afe93-8010-45c6-b37d-e4e05b6b2eb5/reachable, reason: KeeperErrorCode = ConnectionLoss org: env: main ERROR ZOOKEEPER - ZooKeeperServiceImpl.exists() : Could not detect existence of path: /regions/dc-1/pods/analytics/servers/692afe93-8010-45c6-b37d-e4e05b6b2eb5/reachable , reason: KeeperErrorCode = ConnectionLoss org: env: main ERROR KERNEL.DEPLOYMENT - ServiceDeployer.startService() : ServiceDeployer.deploy() : Got a life cycle exception while starting service [ServerRegistrationService, Error while checking path existence for path : /regions/dc-1/pods/analytics/servers/692afe93-8010-45c6-b37d-e4e05b6b2eb5/reachable] : com.apigee.zookeeper.ZooKeeperException{ code = zookeeper.ErrorCheckingPathExis tence, message = Error while checking path existence for path : /regions/dc-1/pods/analytics/servers/692afe93-8010-45c6-b37d-e4e05b6b2eb5/reachable, associated contexts = []} 2015-03-25 10:22:39,811 org: env: main ERROR KERNEL - MicroKernel.deployAll() : MicroKernel.deployAll() : Error in deploying the deployment : EventService com.apigee.zookeeper.ZooKeeperException: Error while checking path existence for path : /regions/dc-1/pods/analytics/servers/692afe93-8010-45c6-b37d-e4e05b6b2eb5/reachable at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:339) ~[zookeeper-1.0.0.jar:na] at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists( ZooKeeperServiceImpl.java:323) ~[zookeeper-1.0.0.jar:na] at ... snipped 
- Beim Start stellen die Router und Message Processor eine Verbindung zu ZooKeeper her. Wenn es
    Verbindungsprobleme mit ZooKeeper haben, starten diese Komponenten nicht mit
    Fehler:
      2017-08-01 23:20:00,404 CuratorFramework-0 ERROR o.a.c.f.i.CuratorFrameworkImpl - CuratorFrameworkImpl.logError() : Background operation retry gave up org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.curator.framework.imps.CuratorFrameworkImpl.checkBackgroundRetry(CuratorFrameworkImpl.java:710) [curator-framework-2.5.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl.performBackgroundOperation(CuratorFrameworkImpl.java:827) [curator-framework-2.5.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl.backgroundOperationsLoop(CuratorFrameworkImpl.java:793) [curator-framework-2.5.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl.access$400(CuratorFrameworkImpl.java:57) [curator-framework-2.5.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl$4.call(CuratorFrameworkImpl.java:275) [curator-framework-2.5.0.jar:na] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 
- Die Edge-Benutzeroberfläche zeigt möglicherweise den folgenden Fehler an, der darauf hinweist, dass die
    Bereitstellungsstatus der API-Proxys:
      Error Fetching Deployments Error while checking path existence for path: path 
Mögliche Ursachen
In der folgenden Tabelle sind mögliche Ursachen für dieses Problem aufgeführt:
| Ursache | Für | 
|---|---|
| Problem mit der Netzwerkverbindung in verschiedenen Rechenzentren | Edge Private Cloud-Nutzer | 
| ZooKeeper-Knoten stellt keine Anfragen bereit | Edge Private Cloud-Nutzer | 
Klicken Sie auf einen Link in der Tabelle, um mögliche Lösungen zu sehen.
Problem mit der Netzwerkverbindung in verschiedenen Rechenzentren
Diagnose
Ein ZooKeeper-Cluster kann Knoten haben, die sich über mehrere Regionen/Rechenzentren erstrecken, z. B. DC-1 und DC-2. Die typische DC-Topologie von Apigee Edge 2 sieht folgendermaßen aus:
- ZooKeeper-Server 1, 2 und 3 als Wähler in DC-1
- ZooKeeper 4 und 5 als Wähler und ZooKeeper 6 als Beobachter in DC-2.
Wenn die Region DC-1 ausfällt oder die Netzwerkkonnektivität zwischen DC-1 und DC-2 unterbrochen wird, ZooKeeper-Knoten können keinen neuen Leader in DC-2 auswählen und kommunizieren nicht mit dem Leader. Knoten. ZooKeeper-Beobachter können keinen neuen Anführer wählen und die beiden verbliebenen Wähler in Washington D.C. können dies nicht tun. haben ein Quorum von mindestens drei Wählerknoten, um einen neuen Leader zu wählen. Die ZooKeepers in DC-2 keine Anfragen bearbeiten können. Die verbleibenden ZooKeeper-Knoten in DC-2 werden weiter als Schleife wiedergegeben. Es wird versucht, eine Verbindung zu den ZooKeeper-Wählern herzustellen, um den Führenden zu finden.
Auflösung
Wende die folgenden Lösungen in der angegebenen Reihenfolge an, um dieses Problem zu beheben.
Falls Sie das Problem nach Ausprobieren dieser Lösungen nicht lösen können, wenden Sie sich an den Apigee-Support.
Lösung Nr. 1
- Arbeiten Sie mit Ihren Netzwerkadministratoren zusammen, um das Netzwerkverbindungsproblem zwischen den Rechenzentren.
- Wenn das ZooKeeper-Ensemble in der Lage ist, zwischen den Rechenzentren zu kommunizieren und einen ZooKeeper-Leader sind, sollten die Knoten fehlerfrei sein und Anfragen verarbeiten können.
Lösung Nr. 2
- Wenn die Reparatur der Netzwerkverbindung einige Zeit in Anspruch nimmt, können Sie das Problem umgehen, indem Sie die
    ZooKeeper-Knoten in der Region, in der sie inaktiv sind. Sie können z. B. ZooKeeper neu konfigurieren.
    Cluster in DC-2, sodass die 3 ZooKeeper-Knoten in dieser Region alle Voter sind, und entfernen den
    server.#inzoo.cfgder ZooKeepers aus DC-1-Region.- Im folgenden Beispiel konfiguriert zoo.cfgKnoten für 2 Regionen, in denen DC-1us-eaverwendet und DC-2 verwendetus-wo-Hostnamen für die Region US-West. (HINWEIS: Es werden nur relevante Konfigurationen angezeigt):server.1=zk01ea.us-ea.4.apigee.com:2888:3888 server.2=zk02ea.us-ea.4.apigee.com:2888:3888 server.3=zk03ea.us-ea.4.apigee.com:2888:3888 server.4=zk04wo.us-wo.4.apigee.com:2888:3888 server.5=zk05wo.us-wo.4.apigee.com:2888:3888 server.6=zk06wo.us-wo.4.apigee.com:2888:3888:observer Konfigurieren Sie zoo.cfgim obigen Beispiel so neu:server.1=zk04wo.us-wo.4.apigee.com:2888:3888 server.2=zk05wo.us-wo.4.apigee.com:2888:3888 server.3=zk06wo.us-wo.4.apigee.com:2888:3888 
- Wenn Sie Code mit config verwenden,
        Erstellen Sie eine Datei /opt/apigee/customer/application/zookeeper.propertiesmit folgendem Inhalt:conf_zoo_quorum=server.1=zk04wo.us-wo.4.apigee.com:2888:3888\ \nserver.2=zk05wo.us-wo.4.apigee.com:2888:3888\ \nserver.3=zk06wo.us-wo.4.apigee.com:2888:3888\ 
 Im obigen Beispiel werden die Knoten von US-Ost entfernt und die Knoten US-West werden zu Wähler, wenn die Anmerkung :observerentfernt wird.
- Im folgenden Beispiel konfiguriert 
- /opt/apigee/apigee-zookeeper/conf/zoo.cfgund alte Dateien sichern- /opt/apigee/customer/application/zookeeper.properties.- Anhand dieser Dateien werden die Standardeinstellungen wiederhergestellt, sobald die Netzwerkverbindung wiederhergestellt ist. zwischen Rechenzentren. 
- Deaktivieren Sie die Beobachter-Notation für den Beobachterknoten. Gehen Sie dazu wie folgt vor: Fügen Sie oben in - /opt/apigee/customer/application/zookeeper.propertiesdie folgende Konfiguration hinzu:- conf_zoo_peertype= 
-  Bearbeiten Sie die Datei /opt/apigee/data/apigee-zookeeper/data/myidso:- Ändern Sie für server.1den Eintrag inmyidvon 4 in 1.
- Ändere für server.2denmyidvon 5 in 2.
- Ändere für server.3denmyidvon 6 zu 3.
 
- Ändern Sie für 
- Starten Sie die ZooKeeper-Knoten in der Region neu, in der Sie ZooKeeper neu konfiguriert haben. Cluster.
- Wiederholen Sie die obige Konfiguration zwischen Schritt 1b und Schritt 5 auf allen ZooKeeper-Knoten in DC-2.
- Prüfen Sie, ob die Knoten bei einem Leader verfügbar sind:
      $ echo srvr | nc zk04wo.us-wo.4.apigee.com 2181 > echo srvr | nc zk05wo.us-wo.4.apigee.com 2181 > echo srvr | nc zk06wo.us-wo.4.apigee.com 2181 Die Ausgabe dieses Befehls enthält eine Zeile mit dem Text "mode". gefolgt von „leader“ wenn es ist der Leader oder „Follower“ ob sie Follower sind. Wenn das Netzwerk zwischen Rechenzentren wiederhergestellt ist, werden die ZooKeeper-Konfigurationen Änderungen können auf den ZooKeeper-Knoten in DC-2 rückgängig gemacht werden. 
Lösung Nr. 3
- Wenn ZooKeeper-Knoten im Cluster nicht gestartet werden, starten Sie ihn neu.
- Überprüfen Sie ZooKeeper-Protokolle, um festzustellen, warum der ZooKeeper-Knoten ausgefallen ist.
      ZooKeeper-Logs sind im folgenden Verzeichnis verfügbar: $ cd /opt/apigee/var/log/apigee-zookeeper $ ls -l total 188 -rw-r--r--. 1 apigee apigee 2715 Jul 22 19:51 apigee-zookeeper.log -rw-r--r--. 1 apigee apigee 10434 Jul 17 19:51 config.log -rw-r--r--. 1 apigee apigee 169640 Aug 1 19:51 zookeeper.log 
- Wenden Sie sich an den Apigee-Support und geben Sie ZooKeeper-Protokolle zur Behebung der Ursache eines ZooKeeper-Knotens, der möglicherweise gestoppt wurde.
ZooKeeper-Knoten stellt keine Anfragen bereit
Ein ZooKeeper-Knoten im Ensemble kann fehlerhaft werden und nicht in der Lage sein, auf den Client zu antworten. -Anfragen. Mögliche Gründe:
- Der Knoten wurde ohne Neustart beendet.
- Der Knoten wurde neu gestartet, ohne dass Autostart aktiviert war.
- Die Systemlast des Knotens hat dazu geführt, dass dieser ausgefallen oder fehlerhaft ist.
Diagnose
- Führen Sie die folgenden ZooKeeper-Systemdiagnosebefehle auf allen ZooKeeper-Knoten aus und
    überprüfen Sie die Ausgabe:
      <ph type="x-smartling-placeholder">- </ph>
        
- 
          $ echo "ruok" | nc localhost 2181 Beispielausgabe: $ echo "ruok" | nc localhost 2181 imok 
- 
          echo srvr | nc localhost 2181 Überprüfen Sie den Modus, um festzustellen, ob der ZooKeeper-Knoten ein Leader oder Follower ist. Beispielausgabe für einen einzelnen ZooKeeper-Knoten: $ echo srvr | nc localhost 2181 ZooKeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Latency min/avg/max: 0/0/88 Received: 4206601 Sent: 4206624 Connections: 8 Outstanding: 0 Zxid: 0x745 Mode: standalone Node count: 282 
- 
          $ echo mntr | nc localhost 2181 Dieser Befehl listet die ZooKeeper-Variablen auf, mit denen der Status ZooKeeper-Cluster. Beispielausgabe: $ echo mntr | nc localhost 2181 zk_version 3.4.5-1392090, built on 09/30/2012 17:52 GMT zk_avg_latency 0 zk_max_latency 88 zk_min_latency 0 zk_packets_received 4206750 zk_packets_sent 4206773 zk_num_alive_connections 8 zk_outstanding_requests 0 zk_server_state standalone zk_znode_count 282 zk_watch_count 194 zk_ephemerals_count 1 zk_approximate_data_size 22960 zk_open_file_descriptor_count 34 zk_max_file_descriptor_count 4096 
- 
          $ echo stat | nc localhost 2181 Mit diesem Befehl werden Statistiken zur Leistung und zu verbundenen Clients aufgelistet. Beispielausgabe: $ echo stat | nc localhost 2181 ZooKeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /10.128.0.8:54152[1](queued=0,recved=753379,sent=753385) /10.128.0.8:53944[1](queued=0,recved=980269,sent=980278) /10.128.0.8:54388[1](queued=0,recved=457094,sent=457094) /10.128.0.8:54622[1](queued=0,recved=972938,sent=972938) /10.128.0.8:54192[1](queued=0,recved=150843,sent=150843) /10.128.0.8:44564[1](queued=0,recved=267332,sent=267333) /127.0.0.1:40820[0](queued=0,recved=1,sent=0) /10.128.0.8:53960[1](queued=0,recved=150844,sent=150844) Latency min/avg/max: 0/0/88 Received: 4206995 Sent: 4207018 Connections: 8 Outstanding: 0 Zxid: 0x745 Mode: standalone Node count: 282 
- 
          $ echo cons | nc localhost 2181 Dieser Befehl liefert erweiterte Details zu ZooKeeper-Verbindungen. Beispielausgabe: $ echo cons | nc localhost 2181 /127.0.0.1:40864[0](queued=0,recved=1,sent=0) /10.128.0.8:54152[1](queued=0,recved=753400,sent=753406,sid=0x15d521a96d40007, lop=PING,est=1500321588647,to=40000,lcxid=0x972e9,lzxid=0x745,lresp=1502334173174, llat=0,minlat=0,avglat=0,maxlat=26) /10.128.0.8:53944[1](queued=0,recved=980297,sent=980306,sid=0x15d521a96d40005, lop=PING,est=1500321544896,to=40000,lcxid=0xce92a,lzxid=0x745,lresp=1502334176055, llat=0,minlat=0,avglat=0,maxlat=23) /10.128.0.8:54388[1](queued=0,recved=457110,sent=457110,sid=0x15d521a96d4000a, lop=PING,est=1500321673852,to=40000,lcxid=0x4dbe3,lzxid=0x745,lresp=1502334174245, llat=0,minlat=0,avglat=0,maxlat=22) /10.128.0.8:54622[1](queued=0,recved=972967,sent=972967,sid=0x15d521a96d4000b, lop=PING,est=1500321890175,to=40000,lcxid=0xccc9d,lzxid=0x745,lresp=1502334182417, llat=0,minlat=0,avglat=0,maxlat=88) /10.128.0.8:54192[1](queued=0,recved=150848,sent=150848,sid=0x15d521a96d40008, lop=PING,est=1500321591985,to=40000,lcxid=0x8,lzxid=0x745,lresp=1502334184475, llat=3,minlat=0,avglat=0,maxlat=19) /10.128.0.8:44564[1](queued=0,recved=267354,sent=267355,sid=0x15d521a96d4000d, lop=PING,est=1501606633426,to=40000,lcxid=0x356e2,lzxid=0x745,lresp=1502334182315, llat=0,minlat=0,avglat=0,maxlat=35) /10.128.0.8:53960[1](queued=0,recved=150848,sent=150848,sid=0x15d521a96d40006, lop=PING,est=1500321547138,to=40000,lcxid=0x5,lzxid=0x745,lresp=1502334177036, llat=1,minlat=0,avglat=0,maxlat=20) Wenn einer der letzten drei Systemdiagnosebefehle die folgende Meldung anzeigt: $ echo stat | nc localhost 2181 This ZooKeeper instance is not currently serving requests Dann wird angegeben, dass bestimmte ZooKeeper-Knoten keine Anfragen bedienen. 
 
- 
          
- Überprüfen Sie die ZooKeeper-Protokolle auf dem jeweiligen Knoten und versuchen Sie, alle Fehler zu finden, die den
    ZooKeeper ist nicht verfügbar. ZooKeeper-Logs sind im folgenden Verzeichnis verfügbar:
      $ cd /opt/apigee/var/log/apigee-zookeeper $ ls -l total 188 -rw-r--r--. 1 apigee apigee 2715 Jul 22 19:51 apigee-zookeeper.log -rw-r--r--. 1 apigee apigee 10434 Jul 17 19:51 config.log -rw-r--r--. 1 apigee apigee 169640 Aug 1 19:51 zookeeper.log 
Auflösung
- Starten Sie alle anderen ZooKeeper-Knoten im Cluster nacheinander neu.
- Führen Sie die ZooKeeper-Systemdiagnosebefehle auf jedem Knoten noch einmal aus und prüfen Sie, ob Sie den erwarteten Wert erhalten. .
Wenden Sie sich an den Apigee-Support, um die Ursache für dieses Problem zu beheben: Systemlast, wenn sie fortbesteht oder wenn das Problem durch einen Neustart nicht behoben wird.