Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
ZooKeeper bağlantı sorunları, aşağıdakiler gibi farklı belirtiler şeklinde kendini gösterebilir:
- API proxy'si dağıtım hataları
- Management API çağrıları 5XX hatalarıyla başarısız oluyor
- Yönlendiriciler veya Mesaj İşlemcileri başlatılamıyor
- Analytics bileşenleri, system.logs dosyasında ZooKeeper bağlantı kaybını bildiriyor
Hata mesajları
Aşağıda, ZooKeeper düğümleriyle bağlantı kaybı.
- Bir API Proxy dağıtımı yapıldığında Yönetim Sunucusu günlüklerinde aşağıdaki hata döndürülür
ZooKeeper Connection kaybından dolayı başarısız oluyor:
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
- Başlatma sırasında Yönlendiriciler ve Mesaj İşleyiciler ZooKeeper'a bağlanır. Varsa
ZooKeeper'la ilgili bağlantı sorunları olursa bu bileşenler aşağıdaki
hata:
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]
- Edge kullanıcı arayüzünde,
API Proxy'lerinin dağıtım durumu:
Error Fetching Deployments Error while checking path existence for path: path
Olası nedenler
Aşağıdaki tabloda bu sorunun olası nedenleri listelenmiştir:
Neden | Şunun için: |
---|---|
Farklı veri merkezlerinde ağ bağlantısı sorunu | Edge Private Cloud kullanıcıları |
ZooKeeper düğümü istekleri yerine getirmiyor | Edge Private Cloud kullanıcıları |
Bu duruma ilişkin olası çözümleri görmek için tabloda bir bağlantıyı tıklayın.
Farklı veri merkezlerinde ağ bağlantısı sorunu
Teşhis
Bir ZooKeeper kümesinin, aşağıdakiler de dahil olmak üzere birden çok bölgeyi/veri merkezini kapsayan düğümleri olabilir: DC-1 ve DC-2 için geçerlidir. Tipik Apigee Edge 2 DC topolojisinde şunlar bulunur:
- DC-1'de seçmen olarak ZooKeeper sunucuları 1, 2 ve 3'ü seçmelidir
- Seçmen olarak ZooKeeper 4 ve 5, DC-2'de gözlemci olarak ZooKeeper 6.
DC-1 bölgesi kapanırsa veya DC-1 ile DC-2 arasındaki ağ bağlantısı kesilirse ZooKeeper düğümleri, DC-2'de yeni bir lider seçemez ve liderle iletişim kuramaz düğüm. ZooKeeper'ın gözlemcileri yeni bir lider seçemez ve DC-2'de kalan iki seçmen yeni bir lider seçemez yeni bir lideri seçmek için en az 3 seçmen sayısına sahip olması. Böylece, DC-2'deki ZooKeepers'ın isteklerini işleme koyamaz. DC-2'de kalan ZooKeeper düğümleri döngüye girmeye devam eder lideri bulmak için ZooKeeper seçmenleriyle bağlantı kurmayı deniyor.
Çözünürlük
Bu sorunu belirtilen sırayla çözmek için aşağıdaki çözümleri uygulayın.
Bu çözümleri denedikten sonra da sorunu çözemiyorsanız lütfen Apigee Destek Ekibi ile iletişime geçin.
1. Çözüm
- Cihazlar arasındaki ağ bağlantısı sorununu gidermek için ağ yöneticilerinizle veri merkezleridir.
- ZooKeeper topluluğu veri merkezleri arasında iletişim kurabildiğinde ve ZooKeeper lideri, düğümlerin iyi durumda olması ve istekleri işleyebilmesi gerekir.
2. Çözüm
- Ağ bağlantısının onarılması zaman alacaksa, bu sorunu çözmek için
Bulundukları bölgedeki ZooKeeper düğümleri. Örneğin, ZooKeeper'ı yeniden yapılandırma
kümeyi DC-2'ye yerleştirerek bu bölgedeki 3 ZooKeeper düğümünün tamamının seçmen olmasını sağlayın ve
server.#
, ZooKeepers'taki DC-1 bölgesininzoo.cfg
bölümünde.- Aşağıdaki örnekte
zoo.cfg
, DC-1'inus-ea
kullandığı 2 bölge için düğümleri yapılandırır ABD-Doğu bölgesini belirten ana makine adları, DC-2 ise ABD-Batı bölgesini belirtenus-wo
ana makine adlarını kullanır. (NOT: Yalnızca ilgili yapılandırmalar gösterilir):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
Yukarıdaki örnekte,
zoo.cfg
öğesini aşağıdaki gibi yeniden yapılandırın: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
- Kodu yapılandırmayla kullanarak,
şu şekilde bir
/opt/apigee/customer/application/zookeeper.properties
dosyası oluşturun: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\
Yukarıda, ABD-Doğu düğümleri kaldırılır ve ABD-Batı düğümleri
:observer
ek açıklaması kaldırıldığında seçmen sayısı. - Aşağıdaki örnekte
/opt/apigee/apigee-zookeeper/conf/zoo.cfg
ve eskileri yedekle/opt/apigee/customer/application/zookeeper.properties
.Bu dosyalar, ağ bağlantısı tekrar kurulduğunda varsayılan ayarları geri yüklemek için kullanılır veri merkezleri arasında geçiş yapıyor.
Gözlemci düğümü için gözlemci gösterimini devre dışı bırakın. Bunu yapmak için
/opt/apigee/customer/application/zookeeper.properties
üst kısmına şu yapılandırmayı ekleyin:conf_zoo_peertype=
-
/opt/apigee/data/apigee-zookeeper/data/myid
dosyasını şu şekilde düzenleyin:server.1
için,myid
içindeki girişi 4 yerine 1 olarak değiştirin.server.2
içinmyid
değerini 5 yerine 2 olarak değiştirin.server.3
içinmyid
değerini 6 yerine 3 olarak değiştirin.
- ZooKeeper'ı yeniden yapılandırdığınız bölgede ZooKeeper düğümlerini yeniden başlatın kümesidir.
- Yukarıdaki yapılandırma işlemini #1b adımından 5. adıma kadar tekrarlayın ve DC-2'ye gidin.
- Düğümlerin bir liderle çalıştığını doğrulayın:
$ 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
Bu komutun çıkışı, "mode" yazan bir satır içerir ardından "lider" yer alır eğer veya "takipçisi" olan takip ediyorsunuz.
Veri merkezleri arasındaki ağ yeniden kurulduğunda, ZooKeeper yapılandırmaları değişiklikler DC-2'deki ZooKeeper düğümlerinde geri alınabilir.
3. Çözüm
- Kümedeki ZooKeeper düğümleri başlatılmadıysa yeniden başlatın.
- ZooKeeper düğümünün neden bozulduğunu belirlemek için ZooKeeper günlüklerini kontrol edin.
ZooKeeper günlükleri aşağıdaki dizinde bulunur:
$ 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
- Apigee Destek Ekibi ile iletişime geçin ve ZooKeeper'ın, durdurulmuş olabilecek herhangi bir ZooKeeper düğümünün nedenini gidermek için günlük kaydı yapılır.
ZooKeeper düğümü isteklerine hizmet vermiyor
Topluluktaki bir ZooKeeper düğümü sağlıksız hale gelebilir ve istemciye yanıt veremeyebilir kabul edersiniz. Bunun nedeni aşağıdakilerden biri olabilir:
- Düğüm yeniden başlatılmadan durduruldu.
- Düğüm, otomatik başlatma etkinleştirilmeden yeniden başlatıldı.
- Düğümdeki sistem yükü, düğümün çalışmamasına veya kötü durumda kalmasına neden oldu.
Teşhis
- ZooKeeper düğümlerinin her birinde aşağıdaki ZooKeeper durum denetimi komutlarını yürütün ve
çıktıyı kontrol edin:
-
$ echo "ruok" | nc localhost 2181
Örnek çıkış:
$ echo "ruok" | nc localhost 2181 imok
-
echo srvr | nc localhost 2181
ZooKeeper düğümünün lider mi yoksa takipçi mi olduğunu belirlemek için modu kontrol edin.
Hepsi bir arada, tek bir ZooKeeper düğümü için örnek çıkış:
$ 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
Bu komut, bir örneğidir.
Örnek çıkış:
$ 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
Bu komut, performans ve bağlı istemcilerle ilgili istatistikleri listeler.
Örnek çıkış:
$ 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
Bu komut, ZooKeeper bağlantılarıyla ilgili genişletilmiş ayrıntılar sağlar.
Örnek çıkış:
$ 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)
Son 3 durum denetimi komutundan herhangi biri aşağıdaki mesajı gösteriyorsa:
$ echo stat | nc localhost 2181 This ZooKeeper instance is not currently serving requests
Ardından, belirli ZooKeeper düğümlerinin isteklere hizmet vermediğini belirtir.
-
- İlgili düğümdeki ZooKeeper günlüklerini kontrol edin ve
ZooKeeper kullanımdan kaldırılacak. ZooKeeper günlükleri aşağıdaki dizinde bulunur:
$ 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
Çözünürlük
- Kümedeki diğer tüm ZooKeeper düğümlerini tek tek yeniden başlatın.
- Her düğümde ZooKeeper durum denetimi komutlarını tekrar çalıştırın ve beklenen içeriği alıp almadığınızı kontrol edin çıktı.
Apigee Destek Ekibi ile iletişime geçerek sorun devam ederse veya yeniden başlatma işlemi sorunu çözmezse sistem yüklemesini kontrol edin.