আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন-এ যান। info
সমস্যার উপসর্গ
ZooKeeper কানেক্টিভিটি সংক্রান্ত সমস্যা বিভিন্ন লক্ষণ হিসেবে দেখা দিতে পারে, যেমন:
- API প্রক্সি ডেপ্লয়মেন্ট সংক্রান্ত সমস্যা
- ম্যানেজমেন্ট API কল 5XX সমস্যার কারণে ব্যর্থ হয়
- রাউটার বা মেসেজ প্রসেসর চালু করা যায়নি
- Analytics কম্পোনেন্ট, system.logs-এ ZooKeeper কানেকশন হারানোর রিপোর্ট করে
সমস্যার মেসেজ
ZooKeeper নোডের সাথে কানেকশন বিচ্ছিন্ন হয়ে গেলে যেসব সমস্যার মেসেজ দেখা যেতে পারে, তার উদাহরণ নিচে দেওয়া হল।
- ZooKeeper কানেকশন বিচ্ছিন্ন হয়ে যাওয়ার কারণে API Proxy ডিপ্লয়মেন্ট
ব্যর্থ হলে ম্যানেজমেন্ট সার্ভার লগে নিম্নলিখিত সমস্যাটি দেখানো হয়:
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
- স্টার্টআপের সময়, রাউটার ও মেসেজ প্রসেসর ZooKeeper-এর সাথে কানেক্ট করে। ZooKeeper-এর সাথে কানেক্টিভিটি সংক্রান্ত সমস্যা থাকলে, এইসব কম্পোনেন্ট নিম্নলিখিত
সমস্যা সহ চালু হতে পারবে না:
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 UI-তে নিম্নলিখিত সমস্যা দেখা যেতে পারে, যার অর্থ হল
এটি API প্রক্সির ডিপ্লয়মেন্ট স্ট্যাটাস চেক করতে পারেনি:
Error Fetching Deployments Error while checking path existence for path: path
সম্ভাব্য কারণ
এই সমস্যার সম্ভাব্য কারণগুলি নিম্নলিখিত সারণীতে তালিকাভুক্ত করা হয়েছে:
| কারণ | এর জন্য |
|---|---|
| বিভিন্ন ডেটা সেন্টার জুড়ে নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা | Edge Private Cloud ব্যবহারকারী |
| ZooKeeper নোড অনুরোধ প্রসেস করছে না | Edge Private Cloud ব্যবহারকারী |
সম্ভাব্য সমাধান দেখতে, টেবিলের কোনও লিঙ্কে ক্লিক করুন।
বিভিন্ন ডেটা সেন্টার জুড়ে নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যা
ডায়াগনসিস
একটি ZooKeeper ক্লাস্টারে এমন নোড থাকতে পারে যা একাধিক অঞ্চল/ডেটা সেন্টার জুড়ে বিস্তৃত, যেমন DC-1 এবং DC-2. সাধারণ Apigee Edge 2 DC টপোলজিতে এগুলি থাকবে:
- DC-1-এ ভোটার হিসেবে ZooKeeper সার্ভার ১, ২ ও ৩
- DC-2-তে ZooKeeper 4 ও 5 হল ভোটার এবং ZooKeeper 6 হল পর্যবেক্ষক।
DC-1 অঞ্চল ডাউন হয়ে গেলে বা DC-1 ও DC-2-এর মধ্যে নেটওয়ার্ক কানেক্টিভিটি ভেঙে গেলে, ZooKeeper নোড DC-2-তে নতুন লিডার বেছে নিতে পারে না এবং লিডার নোডের সাথে যোগাযোগ করতে পারে না। ZooKeeper অবজারভার নতুন লিডার বেছে নিতে পারে না এবং DC-2-তে বাকি থাকা দুই ভোটার নতুন লিডার বেছে নেওয়ার জন্য অন্তত ৩টি ভোটার নোডের কোরাম নেই। তাই, DC-2-এর ZooKeepers কোনও অনুরোধ প্রসেস করতে পারবে না। DC-2-তে বাকি ZooKeeper নোডগুলি লুপ করা চালিয়ে যাবে এবং লিডারকে খুঁজে পেতে ZooKeeper ভোটারদের সাথে আবার কানেক্ট করার চেষ্টা করবে।
রেজোলিউশন
এই সমস্যার সমাধান করতে, নির্দিষ্ট ক্রমে নিম্নলিখিত সমাধানগুলি প্রয়োগ করুন।
এইসব সমাধান চেষ্টা করার পরেও সমস্যার সমাধান করতে না পারলে, Apigee সহায়তা টিমের সাথে যোগাযোগ করুন।
সমাধান #১
- ডেটা সেন্টারের মধ্যে নেটওয়ার্ক কানেক্টিভিটি সংক্রান্ত সমস্যার সমাধান করতে আপনার নেটওয়ার্ক অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।
- ZooKeeper এনসেম্বল যখন ডেটা সেন্টার জুড়ে যোগাযোগ করতে এবং একজন ZooKeeper লিডার বেছে নিতে পারে, তখন নোডগুলি সুস্থ হয়ে যায় এবং অনুরোধ প্রসেস করতে পারে।
সমাধান #২
- নেটওয়ার্ক কানেক্টিভিটি ঠিক করতে সময় লাগলে, সাময়িক সমাধান হল, যেসব অঞ্চলে ZooKeeper নোড ডাউন হয়ে গেছে সেখানে সেগুলি আবার কনফিগার
করা। যেমন, DC-2-এ ZooKeeper
ক্লাস্টার আবার কনফিগার করুন যাতে এই অঞ্চলের ৩টি ZooKeeper নোডই ভোটার হয় এবং DC-1 অঞ্চলের ZooKeepers-এর
zoo.cfg-এ থাকাserver.#সরিয়ে দিন।- নিচের উদাহরণে,
zoo.cfg২টি অঞ্চলের জন্য নোড কনফিগার করা হয়েছে যেখানে DC-1,us-eaহোস্টনেম ব্যবহার করে যা মার্কিন যুক্তরাষ্ট্রের পূর্ব অঞ্চলকে বোঝায় এবং DC-2,us-woহোস্টনেম ব্যবহার করে যা মার্কিন যুক্তরাষ্ট্রের পশ্চিম অঞ্চলকে বোঝায়। (মনে রাখবেন: শুধুমাত্র প্রাসঙ্গিক কনফিগারেশন দেখানো হয়েছে):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
উপরের উদাহরণে,
zoo.cfg-কে এইভাবে আবার কনফিগার করুন: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
- কনফিগারেশন সহ কোড ব্যবহার করে,
নিম্নলিখিত তথ্য সহ
/opt/apigee/customer/application/zookeeper.propertiesফাইল তৈরি করুন: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\
উপরের উদাহরণে, US-East-এর নোডগুলি সরানো হয়েছে এবং
:observerঅ্যানোটেশন সরানো হলে US-West নোডগুলি ভোটার হিসেবে প্রোমোট করা হয়। - নিচের উদাহরণে,
/opt/apigee/apigee-zookeeper/conf/zoo.cfgএবং পুরনো/opt/apigee/customer/application/zookeeper.propertiesব্যাক-আপ নিন।ডেটা সেন্টারগুলির মধ্যে নেটওয়ার্ক কানেক্টিভিটি আবার চালু হলে, ডিফল্ট সেটিংস রিস্টোর করার জন্য এইসব ফাইল ব্যবহার করা হবে ।
অবজার্ভার নোডের জন্য অবজার্ভার নোটেশন বন্ধ করুন। এটি করতে,
/opt/apigee/customer/application/zookeeper.properties-এর উপরে নিম্নলিখিত কনফিগারেশন যোগ করুন:conf_zoo_peertype=
-
/opt/apigee/data/apigee-zookeeper/data/myidফাইলটি এইভাবে এডিট করুন:server.1-এর জন্য,myid-এর মধ্যে এন্ট্রি ৪ থেকে ১-এ পরিবর্তন করুন।server.2-এর জন্য,myid৫ থেকে ২-এ পরিবর্তন করুন।server.3-এর জন্যmyid-কে ৬ থেকে ৩-এ পরিবর্তন করুন।
- আপনি যে অঞ্চলে ZooKeeper ক্লাস্টার রিকনফিগার করেছেন সেখানে ZooKeeper নোডগুলি রিস্টার্ট করুন।
- DC-2-এর সব ZooKeeper নোডে #1b থেকে# 5 পর্যন্ত ধাপগুলি আবার করুন।
- লিডার সহ নোড চালু আছে কিনা তা যাচাই করুন:
$ 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
এই কমান্ডের আউটপুটে একটি লাইন থাকবে যেখানে "mode" লেখা থাকবে এবং তারপরে "leader" লেখা থাকবে যদি এটি লিডার হয়, অথবা "follower" লেখা থাকবে যদি এটি ফলোয়ার হয়।
ডেটা সেন্টারের মধ্যে নেটওয়ার্ক আবার চালু হলে, ZooKeeper কনফিগারেশন পরিবর্তন DC-2-এর ZooKeeper নোডে ফিরিয়ে আনা যেতে পারে।
সমাধান #৩
- ক্লাস্টারে ZooKeeper নোড চালু না থাকলে, এটি রিস্টার্ট করুন।
- ZooKeeper নোড কেন বন্ধ হয়ে গেছে তা নির্ধারণ করতে ZooKeeper লগ চেক করুন।
ZooKeeper লগ নিম্নলিখিত ডিরেক্টরিতে উপলভ্য:
$ 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 সহায়তা টিমের সাথে যোগাযোগ করুন এবং ZooKeeper লগ প্রদান করুন যাতে বন্ধ হয়ে যাওয়া ZooKeeper নোডের কারণের সমস্যার সমাধান করা যায়।
ZooKeeper নোড অনুরোধের উত্তর দিচ্ছে না
এনসেম্বলের কোনও ZooKeeper নোড অসুস্থ হয়ে পড়তে পারে এবং ক্লায়েন্টের অনুরোধের উত্তর দিতে নাও পারে। এইসব কারণে এটি হতে পারে:
- রিস্টার্ট না করেই নোড বন্ধ করা হয়েছে।
- অটো-স্টার্ট চালু না করেই নোড রিবুট করা হয়েছে।
- নোডের উপর সিস্টেম লোড হওয়ার কারণে এটি বন্ধ হয়ে গেছে বা ঠিকমতো কাজ করছে না।
ডায়াগনসিস
- প্রতিটি ZooKeeper নোডে নিম্নলিখিত ZooKeeper হেলথ চেক কমান্ড এক্সিকিউট করুন এবং
আউটপুট চেক করুন:
-
$ echo "ruok" | nc localhost 2181
আউটপুটের উদাহরণ:
$ echo "ruok" | nc localhost 2181 imok
-
echo srvr | nc localhost 2181
ZooKeeper নোড লিডার বা ফলোয়ার কিনা তা নির্ধারণ করতে মোড চেক করুন।
একটি ZooKeeper নোডের জন্য আউটপুটের উদাহরণ:
$ 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
এই কমান্ড ZooKeeper ভেরিয়েবল তালিকাভুক্ত করে যা ZooKeeper ক্লাস্টারের স্বাস্থ্য চেক করার জন্য ব্যবহার করা যেতে পারে।
আউটপুটের উদাহরণ:
$ 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
এই কমান্ড পারফর্ম্যান্স ও কানেক্ট করা ক্লায়েন্ট সম্পর্কে পরিসংখ্যানের তালিকা দেখায়।
আউটপুটের উদাহরণ:
$ 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
এই কমান্ড ZooKeeper কানেকশন সম্পর্কে বিস্তারিত তথ্য দেয়।
আউটপুটের উদাহরণ:
$ 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)
শেষ ৩টি হেলথ চেক কমান্ডের মধ্যে কোনও একটিতে নিম্নলিখিত মেসেজটি দেখানো হলে:
$ echo stat | nc localhost 2181 This ZooKeeper instance is not currently serving requests
তাহলে এটি ইঙ্গিত করে যে নির্দিষ্ট ZooKeeper নোড অনুরোধ পরিবেশন করছে না।
-
- নির্দিষ্ট নোডে ZooKeeper লগ চেক করুন এবং ZooKeeper বন্ধ হয়ে যাওয়ার কারণ হিসেবে কোনও সমস্যা
খুঁজে পাওয়ার চেষ্টা করুন। ZooKeeper লগ নিম্নলিখিত ডিরেক্টরিতে উপলভ্য:
$ 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
রেজোলিউশন
- ক্লাস্টারে থাকা অন্য সব ZooKeeper নোড এক এক করে রিস্টার্ট করুন।
- প্রতিটি নোডে ZooKeeper হেলথ চেক কমান্ড আবার রান করুন এবং আপনি প্রত্যাশিত আউটপুট পাচ্ছেন কিনা তা দেখুন।
সিস্টেম লোডের কারণের সমাধান করতে Apigee সহায়তা টিমের সাথে যোগাযোগ করুন, যদি এটি চলতে থাকে বা রিস্টার্ট করার পরেও সমস্যার সমাধান না হয়।