Специальные параметры не отображаются, если настроено несколько групп доступа

Вы просматриваете документацию по 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//environments//properties отсутствует, создать специальные параметры нельзя. Пользователи Edge Private Cloud

Причина: отсутствует путь к свойствам ZooKeeper для комбинации организации и среды.

диагностика;

Аналитика включается для комбинации организации и среды с помощью API включения аналитики, который заполняет /organizations//environments//properties в дереве 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 и назначить все области действия (комбинации организации и среды) другой группе. Для этого выполните следующие действия:

  1. Удалите компоненты сервера postgres из одной из двух групп axgroup, следуя инструкциям в разделе Добавление и удаление компонентов аналитики в группах аналитики. Если проблемы возникают только с областями действия, не относящимися к производству, выберите группу 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. Включите аналитику с помощью API.
  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. Проверьте, отображаются ли специальные параметры в новом интерфейсе Edge.

Если проблема не исчезнет, перейдите к разделу Сбор диагностической информации.

Необходимо собрать диагностическую информацию

Если проблема не исчезнет даже после выполнения предыдущих инструкций, соберите следующую диагностическую информацию. Обратитесь в службу поддержки Apigee Edge и предоставьте следующую информацию:

  1. edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log с момента последнего перезапуска.
  2. Выходные данные следующего вызова Management API:
    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