وقتی چند axgroup پیکربندی شده باشد، «ابعاد سفارشی» نشان داده نمی‌شود

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نشانه

متغیر سفارشی ایجادشده بااستفاده از خط‌مشی جمع‌آوری آمار در بخش «ابعاد سفارشی» در «گزارش‌های سفارشی Analytics» در «میانای کاربری Edge جدید» قابل‌مشاهده نیست.

پیام خطا

پس‌از بازراه‌اندازی، گزارش سیستم edge-postgres-server خطای زیر را برای هر ترکیب سازمان/محیطی که مسیر در آن وجود ندارد خواهد داشت:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

علل احتمالی

علت شرح دستورالعمل‌های عیب‌یابی قابل‌اجرا برای
مسیر ویژگی‌های Zookeeper برای ترکیب سازمان و محیط وجود ندارد. وقتی مسیر ZooKeeper /organizations//environments//properties وجود نداشته باشد، ابعاد سفارشی را نمی‌توان ایجاد کرد. کاربران Edge Private Cloud

دلیل: مسیر دارایی‌های ZooKeeper برای ترکیب سازمان و محیط وجود ندارد

تشخیص

‫Analytics برای ترکیب سازمان-محیط ازطریق میانای برنامه‌سازی کاربردی فعال‌سازی Analytics فعال می‌شود، که /organizations//environments//properties را در درخت ZooKeeper تکمیل می‌کند. وقتی این «میانای برنامه‌سازی کاربردی» ناموفق باشد، عنصر edge-postgres-server نمی‌تواند ابعاد سفارشی ایجاد کند و خطای زیر در system.log آن ظاهر خواهد شد:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

معمولاً این اتفاق زمانی می‌افتد که سازمانی در زمانی به سیستم اضافه شده باشد که بیش‌از یک گروه تجزیه‌وتحلیل وجود داشته است که از شناسه‌های یکسان postgres-server استفاده می‌کرده‌اند. برای بررسی تعداد گروه‌های تحلیلی موجود، فراخوانی API زیر را اجرا کنید:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

اگر این میانای برنامه‌سازی کاربردی چند گروه را برگرداند، احتمالاً علت مشکل همین است. در مثال زیر، توجه کنید که دو گروه وجود دارد که فقط با یک خط تیره از هم متمایز می‌شوند: axgroup-001 و axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

به‌طور خاص، این مشکل زمانی ایجاد می‌شود که UUID سرور postgres که برای هر axgroup پیکربندی شده است یکسان باشد. یک راه سریع برای تعیین این موضوع، اجرای دستور زیر است:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

برونداد نمونه زیر به‌سرعت «شناسه جهانی یکتای» postgres-server را مقایسه می‌کند تا مشخص شود یکسان هستند:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

وضوح

مجموعه یکسانی از سرورهای PostgreSQL نمی‌تواند به دو axgroups اختصاص داده شود. سریع‌ترین راه برای حل مشکل این است که اطلاعات سرور postgres را از یک axgroup حذف کنید و همه دامنه‌ها (ترکیب‌های سازمان، محیط) را به گروه دیگر اختصاص دهید. برای انجام این کار، این مراحل را دنبال کنید:

  1. بااستفاده از دستورالعمل‌های افزودن و حذف کردن عناصر تجزیه‌وتحلیل در گروه‌های تجزیه‌وتحلیل، عناصر سرور postgres را از یکی از دو گروه ax بردارید. If you are seeing problems only with non-production scopes, then choose the axgroup which does NOT have any production scope for this exercise. درغیراین‌صورت، axgroup با کمترین تعداد گستره را انتخاب کنید.
  2. همه محدوده‌ها را از axgroup که دیگر هیچ سرور postgres ندارد، و محدوده‌هایی که مشکل بُعد سفارشی را از axgroup آن‌ها می‌بینید بردارید. با فرض اینکه axgroup-001 از مثال بالا گروهی است که می‌خواهید استفاده کنید، باید از موارد زیر برای برداشتن دامنه سازمان myorg و محیط prod استفاده کنید:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. تجزیه‌وتحلیل‌ها را بااستفاده از فعال کردن میانای برنامه‌سازی کاربردی تجزیه‌وتحلیل‌ها فعال کنید.
  4. بااستفاده از فرمان‌های زیر، مؤلفه edge-postgres-server را در گره اصلی postgres و همه مؤلفه‌های edge-qpid-server را که ممکن است نصب کرده باشید بازراه‌اندازی کنید:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. تأیید کنید که خطای ارائه‌شده در بخش پیام خطا در بالا دیگر در فایل گزارش سرور Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log رخ نمی‌دهد.
  6. تأیید کنید که آیا ابعاد سفارشی در New Edge UI نشان داده می‌شود یا نه.

اگر مشکل برطرف نشد، به اطلاعات تشخیصی که باید جمع‌آوری شود بروید.

باید اطلاعات تشخیص خرابی را جمع‌آوری کند

اگر مشکل حتی پس‌از دنبال کردن دستورالعمل‌های قبلی همچنان ادامه داشت، لطفاً اطلاعات عیب‌یابی زیر را جمع‌آوری کنید. با پشتیبانی Apigee Edge تماس بگیرید و آن‌ها را هم‌رسانی کنید:

  1. ‫edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log از زمان آخرین بازراه‌اندازی.
  2. برونداد فراخوان «میانای برنامه‌سازی کاربردی مدیریت» زیر:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. برونداد درخت ZooKeeper که بااستفاده از فرمان زیر به‌دست آمده است:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt