Birden fazla axgroup yapılandırıldığında Özel Boyutlar görünmüyor

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Belirti

Etiket kullanılarak oluşturulan özelleştirilebilen değişken İstatistik Toplayıcı politikası, Edge kullanıcı arayüzü.

Hata Mesajı

Edge-postgres-server sistem günlüğünde, yeniden başlatma sonrasında her biri için aşağıdaki hata gösterilir: yolun eksik olduğu kuruluş/ortam kombinasyonu:

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

Olası Nedenler

Neden Açıklama Şunlar için Geçerli Sorun Giderme Talimatları:
Kuruluş ve ortam kombinasyonu için Zookeeper özellikleri yolu eksik. ZooKeeper yolu /organizations//environments//properties olduğunda eksik, özel boyutlar oluşturulamıyor. Edge Private Cloud Kullanıcıları

Neden: Kuruluş ve ortam kombinasyonu için ZooKeeper mülklerinin yolu eksik

Teşhis

Analytics, bir kuruluş-ortam kombinasyonu için etkinleştirilir. /organizations//environments//properties değerini dolduran analytics API'yi etkinleştirin bir bakmışsınız. Bu API başarısız olursa Edge-postgres-server bileşeni yeni ve system.log'da şu hata görünür:

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

Bu durum genellikle bir kurumda birden fazla aynı postgres-server UUID'lerini kullanan analytics grubu vardı. Kaç adet analiz grup varsa aşağıdaki API çağrısını çalıştırın:

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

Bu API birden fazla grup döndürürse sorunun nedeni büyük olasılıkla budur. Aşağıdaki örnekte, yalnızca kısa çizgi ile ayrılmış iki grubun mevcut olduğuna dikkat edin: axgroup-001 ve 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" : {
  }

Özellikle, sorun her biri için yapılandırılan postgres-server UUID'si axgroup değeri aynıdır. Bunu belirlemenin hızlı bir yolu aşağıdakileri çalıştırmaktır:

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

Aşağıdaki örnek çıktı, aşağıdaki örnek çıkışta, aşağıdakileri belirlemek için postgres-server UUID'lerini hızlı bir şekilde karşılaştırır: aynıdır:

{  "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" ],

Çözünürlük

Aynı PostgreSQL sunucu kümesi, iki ax grubuna atanamaz. Çözümün en hızlı yolu postgres sunucusu bilgilerini bir ax grubundan silmektir ve tüm kapsamları (kuruluş, ortam kombinasyonları) diğer gruba atayın. Bunu yapmak için şu adımları uygulayın:

  1. Talimatları uygulayarak postgres sunucusu bileşenlerini iki ax grubundan birinden kaldırın saat: Analiz gruplarına analiz bileşenleri ekleme ve bu bileşenleri silme. Yalnızca üretim dışı kapsamlarla ilgili sorunlar görüyorsanız bu alıştırma için herhangi bir üretim kapsamına sahip DEĞİLDİR. Aksi takdirde kapsam sayısını artırırsınız.
  2. Artık postgres sunucusu olmayan ax grubundan tüm kapsamları kaldırın. ax grubundan özel boyut sorununu gördüğünüzü varsayalım. Varsayım Yukarıdaki örnekte axgroup-001 kullanmak istediğiniz gruptur. Bu durumda myorg kuruluşunun kapsamını kaldırmak için aşağıdakileri kullanmanız gerekir, ve prod ortamı:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Aşağıdakileri kullanarak Analytics'i etkinleştirin: Analytics API'yi etkinleştirin.
  4. Postgres ana düğümünde Edge-postgres-server bileşenini yeniden başlatın ve Aşağıdaki komutları kullanarak, yüklemiş olabileceğiniz Edge-qpid-server bileşenlerini kullanın:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
    .
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Yukarıdaki Hata Mesajı bölümünde verilen hatanın artık Postgres sunucusunun günlük dosyasında oluşmaz /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Özel boyutların, Edge kullanıcı arayüzünde gösterilip gösterilmediğini onaylayın.

Sorun devam ederse Teşhis Bilgilerinin Toplanması Zorunludur bölümüne gidin.

Teşhis Bilgileri Toplanmalıdır

Önceki talimatları uygulamanıza rağmen sorun devam ederse lütfen teşhis bilgilerini ele alalım. Apigee Edge Destek Ekibi ile iletişime geçip paylaşın:

  1. Edge-postgres-sunucusu /opt/apigee/var/log/edge-postgres-server/logs/system.log en son yeniden başlatma zamanından itibaren
  2. Aşağıdaki Management API çağrısının çıkışı:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
    .
  3. Aşağıdaki komut kullanılarak elde edilen ZooKeeper ağacının çıkışı:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
    
    .