Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. info
Symptom
Специальная переменная, созданная с помощью правила Statistics Collector, не отображается в разделе "Специальные параметры" в специальных отчетах Аналитики в новом интерфейсе 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/ отсутствует, создать специальные параметры нельзя. |
Пользователи Edge Private Cloud |
Причина: отсутствует путь к свойствам ZooKeeper для комбинации организации и среды.
диагностика;
Аналитика включается для комбинации организации и среды с помощью
API включения аналитики, который заполняет /organizations/ в дереве ZooKeeper. Если этот API не работает, компонент edge-postgres-server не может создавать специальные параметры, и в его системном журнале появляется следующая ошибка:
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
Обычно это происходит, когда организация была подключена в то время, когда существовало более одной аналитической группы, которая использовала те же UUID postgres-сервера. Чтобы узнать, сколько групп аналитики существует, выполните следующий вызов API:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
Если API возвращает несколько групп, то, скорее всего, проблема в этом. В примере ниже показаны две группы, названия которых отличаются только дефисом: 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"
В следующем примере выходных данных быстро сравниваются UUID 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 нельзя назначить двум группам axgroup. Самый быстрый способ решения проблемы – удалить информацию о сервере postgres из одной группы axgroup и назначить все области действия (комбинации организации и среды) другой группе. Для этого выполните следующие действия:
- Удалите компоненты сервера postgres из одной из двух групп axgroup, следуя инструкциям в разделе Добавление и удаление компонентов аналитики в группах аналитики. Если проблемы возникают только с областями действия, не относящимися к производству, выберите группу axgroup, в которой нет производственной области действия. В противном случае выберите группу с наименьшим количеством областей действия.
- Удалите все области действия из группы 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'
- Включите аналитику с помощью API.
- Перезапустите компонент 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
- Убедитесь, что ошибка, указанная в разделе Сообщение об ошибке выше, больше не появляется в файле журнала сервера 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