आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
समस्या का ब्यौरा
Statistics Collector policy का इस्तेमाल करके बनाया गया कस्टम वैरिएबल, Edge यूज़र इंटरफ़ेस (यूआई) में Analytics की कस्टम रिपोर्ट में कस्टम डाइमेंशन के तौर पर नहीं दिखता है.
गड़बड़ी का मैसेज
रीस्टार्ट करने के बाद, 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/
मौजूद नहीं होता है, तब कस्टम डाइमेंशन नहीं बनाए जा सकते. |
Edge Private Cloud के उपयोगकर्ताओं के लिए |
वजह: संगठन और एनवायरमेंट के कॉम्बिनेशन के लिए, ZooKeeper प्रॉपर्टी का पाथ मौजूद नहीं है
संक्रमण की जांच
Analytics API चालू करें की मदद से, किसी संगठन और एनवायरमेंट के कॉम्बिनेशन के लिए Analytics चालू किया जाता है. इससे ZooKeeper ट्री में /organizations/ भर जाता है. इस एपीआई के काम न करने पर, 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
आम तौर पर, ऐसा तब होता है, जब किसी संगठन को ऐसे समय में शामिल किया गया हो, जब एक से ज़्यादा ऐसे Analytics ग्रुप मौजूद थे जो एक ही postgres-server UUID का इस्तेमाल करते थे. यह देखने के लिए कि कितने Analytics ग्रुप मौजूद हैं, यह एपीआई कॉल करें:
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" : {
}खास तौर पर, यह समस्या तब होती है, जब हर axgroup के लिए कॉन्फ़िगर किया गया postgres-server UUID एक जैसा होता है. इसकी पुष्टि करने के लिए, यह कमांड चलाएं:
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 को असाइन नहीं किया जा सकता. समस्या को हल करने का सबसे तेज़ तरीका यह है कि किसी एक axgroup से postgres सर्वर की जानकारी मिटा दी जाए. साथ ही, सभी स्कोप (संगठन, एनवायरमेंट के कॉम्बिनेशन) को दूसरे ग्रुप को असाइन कर दिया जाए. इसके लिए, यह तरीका अपनाएं:
- ऐनलिटिक्स ग्रुप में ऐनलिटिक्स कॉम्पोनेंट जोड़ना और मिटाना में दिए गए निर्देशों का इस्तेमाल करके, दो में से किसी एक axgroup से postgres सर्वर कॉम्पोनेंट हटाएं. अगर आपको सिर्फ़ नॉन-प्रोडक्शन स्कोप से जुड़ी समस्याएं दिख रही हैं, तो उस axgroup को चुनें जिसमें इस गतिविधि के लिए कोई प्रोडक्शन स्कोप नहीं है. इसके अलावा, कम से कम स्कोप वाला axgroup चुनें.
- उन सभी स्कोप को axgroup से हटाएं जिनमें अब कोई पोस्टग्रेस सर्वर नहीं है. साथ ही, उन स्कोप को भी हटाएं जिनके 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'
- Enable analytics API का इस्तेमाल करके, Analytics चालू करें.
- postgres मास्टर नोड पर edge-postgres-server कॉम्पोनेंट को फिर से शुरू करें. साथ ही, इंस्टॉल किए गए सभी 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
- पुष्टि करें कि ऊपर दिए गए गड़बड़ी के मैसेज सेक्शन में दी गई गड़बड़ी, अब Postgres सर्वर की लॉग फ़ाइल
/opt/apigee/var/log/edge-postgres-server/logs/system.logमें नहीं दिख रही है. - पुष्टि करें कि कस्टम डाइमेंशन, Edge के यूज़र इंटरफ़ेस में दिख रहे हैं या नहीं.
अगर समस्या बनी रहती है, तो गड़बड़ी की जानकारी इकट्ठा करना पर जाएं.
गड़बड़ी की जानकारी इकट्ठा करना ज़रूरी है
अगर पिछले निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो कृपया डाइग्नोस्टिक्स से जुड़ी यह जानकारी इकट्ठा करें. इनसे संपर्क करें और इन्हें Apigee Edge की सहायता टीम के साथ शेयर करें:
- edge-postgres-server
/opt/apigee/var/log/edge-postgres-server/logs/system.logको आखिरी बार रीस्टार्ट करने का समय. - Management API के इस कॉल का आउटपुट:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- नीचे दिए गए निर्देश का इस्तेमाल करके, ZooKeeper ट्री का आउटपुट पाया गया:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt