Устранение неполадок в GCDS

В этой статье приведены советы по устранению неполадок, возникающих при настройке приложения Google Cloud Directory Sync (GCDS). Дополнительные сведения можно найти в статье Известные проблемы с G Suite.

Настройка и конфигурирование   |  Ошибки  |  Пользователи и группы  |  Контакты и календари | Правила

Развернуть все   |   Свернуть все

Настройка и конфигурирование

Как устранить проблему с помощью Диспетчера конфигураций

Если при синхронизации возникают сбои, проверьте правильность настроек конфигурации.

  1. В Диспетчере конфигураций откройте XML-файл, используемый для настройки синхронизации.
  2. Для проверки подключения к серверу LDAP нажмите Test Connections (Протестировать соединения) на странице LDAP Connections (Соединения LDAP).
  3. Чтобы проверить отправку тестовых уведомлений, выберите Test Notification (Протестировать уведомления) на странице Notifications (Уведомления).
  4. Чтобы убедиться, что вы заполнили все необходимые поля, а синхронизация работает корректно, на странице Sync (Синхронизация) нажмите Simulate Sync (Моделировать синхронизацию).
Как устранить проблему с помощью файлов журнала

Чтобы решить проблему, загрузите созданные файлы журналов в Анализатор журналов.

Большинство неполадок будут выявлены уже через несколько минут.

Как GCDS проверяет списки отзыва сертификатов?

При подключении к API Google (через HTTPS) и серверу LDAP по протоколу SSL приложение GCDS проверяет сертификаты SSL, обращаясь к поставщикам списков отзыва сертификатов (CRL) по протоколу HTTP. Иногда это подключение установить не удается, потому что прокси-сервер или брандмауэр блокирует запрос HTTP.

Проверьте, может ли сервер GCDS открыть следующие URL через HTTP (порт 80):

  • http://crl.geotrust.com/crls/gtglobal.crl
  • http://g.symcb.com/crls/gtglobal.crl
  • http://pki.google.com/GIAG2.crl

Если для LDAP через SSL вы используете собственные сертификаты, вам могут потребоваться дополнительные URL.

Если получить доступ к спискам отзыва сертификатов не удается, попробуйте отключить их проверку. Однако это приведет к снижению уровня безопасности, поэтому мы не рекомендуем этого делать. Чтобы отключить проверку списков отзыва сертификатов, отредактируйте файлы sync-cmd.vmoptions и config-manager.vmoptions в папке установки GCDS, добавив в них следующие строки:

  • -Dcom.sun.net.ssl.checkRevocation=false
  • -Dcom.sun.security.enableCRLDP=false
Нужен ли сервер уведомлений, чтобы моделировать синхронизацию?

Вам потребуется сервер, который может отправлять сообщения. При запуске GCDS на почтовом сервере используйте для него IP-адрес 127.0.0.1. В других случаях уточните соответствующие данные у администратора почтового сервиса.

Как включить ведение подробных HTTP-журналов для запросов API?

В редких случаях специалисты службы поддержки Google Cloud могут попросить вас включить полную детализацию HTTP-журналов в дополнение к детализации на уровне Trace (Трассировка) для журналов GCDS. Это поможет узнать, какие именно API-запросы отправило приложение GCDS и какие ответы оно получило от API Google.

Обратите внимание! В подробных HTTP-журналах может содержаться конфиденциальная информация. Прежде чем отправлять их в службу поддержки, удалите эту информацию (например, в текущих полях refresh_token или access_token). 

Чтобы включить ведение подробных HTTP-журналов, выполните следующие действия:

  1. С помощью команды sync-cmd или Диспетчера конфигураций убедитесь, что приложение GCDS не запущено.
  2. Перейдите в папку, где установлено приложение GCDS.
  3. Измените файл jre/lib/logging.properties.
  4. Добавьте в конец файла следующие строки:

    java.util.logging.FileHandler.pattern = %h/gcdshttp%u.%g.log
    java.util.logging.FileHandler.limit = 5000000
    java.util.logging.FileHandler.count = 100
    java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    handlers = java.util.logging.FileHandler
    com.google.api.client.http.level = CONFIG

    com.google.gdata.client.http.HttpGDataRequest.level = ALL
    sun.net.www.protocol.http.HttpURLConnection.level = ALL

  5. Сохраните файл.
  6. Запустите синхронизацию GCDS с уровнем детализации журнала Trace (Трассировка).

    Файлы журнала с именем gcdshttp*.log создаются в каталоге homedir (Linux®) или папке профиля (Microsoft® Windows®). Файлы могут быть достаточно большими, поэтому добавьте их в один архив.

  7. Чтобы предотвратить создание больших файлов журнала в будущем, удалите строки, добавленные в шаге 4.

Затем отправьте в службу поддержки следующие файлы:

  • используемый XML-файл;
  • журналы отслеживания, созданные во время последней синхронизации;
  • файлы gcdshttp*.log, сгенерированные во время синхронизации.

С помощью этих файлов служба поддержки сможет выяснить, какую информацию приложение GCDS получило от Directory API и что оно отправило в ответ.

Примечание. Если вы хотите использовать для отладки GCDS прокси-сервер, например Fiddler™, необходимо экспортировать сертификат Fiddler, добавить его в GCDS и отключить проверку списка отзыва сертификатов. Затем установите Fiddler в качестве прокси-сервера для GCDS (обычно для этого используются IP-адрес 127.0.0.1 и порт 8888), и он будет вести журналы подключения. Узнайте, как добавить корневой сертификат Fiddler в базу доверенных сертификатов Java® в GCDS.

Как открыть XML-файл, сохраненный на другом компьютере или в другом профиле пользователя?

Инструкции приведены в статье Работа с файлами конфигурации.

Ошибки

Ошибки, связанные с сертификатом

В файле журнала GCDS может встретиться ошибка sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Она указывает, что GCDS не удалось проверить предоставленный сервером сертификат, поскольку он не был подписан доверенным центром сертификации (ЦС). GCDS использует доверенные сертификаты Java корневых ЦС. Если сертификат считается доверенным в операционной системе, импортируйте его в GCDS.

Для этого сначала экспортируйте сертификат с контроллера домена, а затем импортируйте его в GCDS.

Как экспортировать сертификат

  1. Войдите в контроллер домена.
  2. Откройте командную строку.
  3. Введите команду certutil -store My DomainController dccert.cer для экспорта сертификата.
  4. Скопируйте файл dccert.cer на сервер, где установлено приложение GCDS.

Как импортировать сертификат

  1. Выполните вход на сервер, где установлено приложение GCDS.
  2. Откройте командную строку.
  3. Чтобы перейти в каталог, где установлена среда JRE (Java Runtime Environment) приложения GCDS, выполните одну из следующих команд:
    • cd "c:\Program Files\Google Cloud Directory Sync\jre" (для Windows)

      Примечание. Если 32-разрядная версия GCDS установлена в 64-разрядной системе, используйте команду cd "c:\Program Files (x86)\Google Cloud Directory Sync\jre".

    • cd ~/GoogleCloudDirSync/jre (для Linux)
  4. Импортируйте сертификат контроллера домена при помощи одной из следующих команд:
    • bin\keytool -keystore lib\security\cacerts -storepass changeit -import -file c:\dccert.cer -alias mydc (для Windows);
    • bin/keytool -keystore lib/security/cacerts -storepass changeit -import -file ~/dccert.cer -alias mydc (для Linux).
  5. Если вы хотите доверять сертификату, введите yes (да).
  6. Закройте Диспетчер конфигураций.
  7. Откройте Диспетчер конфигураций и на странице LDAP Connections (Соединения LDAP) нажмите Test Connections (Протестировать соединения), чтобы проверить подключение к серверу LDAP.

Если ошибки продолжают появляться, вместо сертификата контроллера домена импортируйте тот, что подписан центром сертификации вашей организации. Для этого выполните описанные выше действия с нужным сертификатом.

Примечание. С помощью этих инструкций вы также можете импортировать сертификаты других типов с серверов LDAP или самозаверяющие сертификаты с прокси-серверов HTTP.

Что делать, если при синхронизации возникают конфликты или GCDS выдает сообщения об ошибках EntityDoesNotExist (Объект не существует) и EntityExists (Объект существует)?

В XML-файле конфигурации включите параметр useDynamicMaxCacheLifetime. Он разрешает кеширование данных максимум за восемь дней, благодаря чему кеш очищается чаще и информация удаляется небольшими порциями. Это позволяет избежать хранения устаревших данных и конфликтов с новой информацией. Параметр useDynamicMaxCacheLifetime автоматически включается в конфигурациях, созданных в GCDS 3.2.1 и более поздних версий.

Примечание. Такие ошибки обычно возникают, когда вы вносите изменения напрямую через домен Google. При работе с GCDS этого нужно избегать. Редактируйте данные о пользователях, группах и других объектах в каталоге LDAP, а затем с помощью GCDS синхронизируйте изменения с доменом Google.

Что делать при появлении ошибок, связанных с объемом памяти?

Если возникают ошибки, связанные с объемом памяти, увеличьте размер динамически распределяемой памяти, доступный виртуальной машине Java. Для этого отредактируйте файлы sync-cmd.vmoptions и config-manager.vmoptions в папке, где установлено приложение GCDS. Записи выглядят так:

  • -Xmx1000m (максимальный объем динамически распределяемой памяти);
  • -Xms64m (минимальный объем динамически распределяемой памяти).

Чтобы распространить изменения как на команду sync-cmd, так и на Диспетчер конфигураций, отредактируйте оба файла (sync-cmd.vmoptions и config-manager.vmoptions).

Чтобы увеличить объем памяти, измените число в параметре -Xmx. Буква m после него означает мегабайты. Оптимальное значение этой величины зависит от количества доступной памяти на сервере GCDS и от ее объема, необходимого для синхронизации. Для подбора наилучшего варианта может потребоваться изменить это число несколько раз. Подробнее об оптимальном объеме памяти для работы GCDS

Почему GCDS возвращает ошибку даже после отключения кеширования?

Возможно, проблема заключается в неправильной конфигурации правила исключения. Кеширование GCDS может скрыть ее. 

Данные сервиса Google (например, G Suite или Cloud Identity) хранятся в кеше GCDS не более восьми дней, однако они могут удаляться чаще в зависимости от их объема. Если кеш не очищен, может пройти до восьми дней, прежде чем изменения вступят в силу. 

Можно очистить кеш вручную. Для этого выполните следующие действия:

  • Запустите синхронизацию из Диспетчера конфигураций и выберите очистку кеша.
  • Воспользуйтесь флагом командной строки -f, чтобы принудительно очистить кеш.
  • Отредактируйте файл конфигурации XML, установив для параметра maxCacheLifetime значение "0".

Внимание! Принудительная очистка кеша может значительно увеличить время синхронизации.

Например, вы синхронизируете данные каталога LDAP и создаете новую группу в сервисе Google (например, в G Suite или Cloud Identity). Затем вы задаете правило, чтобы исключить ее из последующих синхронизаций. Оно настроено неправильно и не сработает. Однако при следующей синхронизации будут запрошены данные из кеша, и группа останется в сервисе Google. При новой синхронизации после очистки кеша группа будет удалена из сервиса Google из-за неправильной конфигурации.

Пользователи и группы

Почему при синхронизации некоторые пользователи оказываются не включены в группы?

По умолчанию в GCDS включен параметр INDEPENDENT_GROUP_SYNC. При этом приложение синхронизирует участников группы независимо от правил поиска пользователей. Если для синхронизации групп вы используете атрибуты ссылок на участников, GCDS попытается получить адреса электронной почты каждого из них в каталоге LDAP.

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

Настоятельно рекомендуем оставить параметр INDEPENDENT_GROUP_SYNC включенным. Отключайте его только при устранении ошибок и для обеспечения обратной совместимости.

Почему некоторые аккаунты пользователей и групп создаются заново при каждой синхронизации?

Это происходит, если в атрибуте LDAP, который назначен атрибутом названия группы, не указан полный адрес электронной почты. Чтобы решить эту проблему, проверьте правила поиска групп и убедитесь, что GCDS использует в качестве названий групп полные адреса. Для этого выполните одно из следующих действий:

  • Назначьте в качестве атрибута названия группы другой атрибут LDAP, в котором указывается полный адрес электронной почты (например, mail).
  • В разделе Google Domain Settings (Настройки домена Google) включите параметр Replace domain names in LDAP email addresses (Заменять доменные имена в адресах электронной почты LDAP). В этом случае атрибут названия группы будет соответствовать данным в сервисах Google.
  • Добавьте к названию группы доменное имя. Для этого укажите суффикс названия группы в правиле поиска группы.
Группы на сервере Active Directory, в которых больше 1500 участников, синхронизируются некорректно

Откройте раздел LDAP Configuration (Конфигурация LDAP) и убедитесь, что в поле для типа сервера указано значение MS Active Directory.

Как использовать параметр "Заменять имена доменов в адресах электронной почты LDAP"?

Этот параметр, задаваемый в XML-файле в виде строки SUPPRESS_DOMAIN, используется, если адреса электронной почты в каталоге LDAP находятся не в вашем домене Google. Если этот параметр включен, GCDS отсекает у адресов доменную часть.

Если вы задаете правило исключения на основе адресов электронной почты, их доменная часть не будет учитываться при обработке данных.

Предположим, параметр Заменять имена доменов в адресах электронной почты LDAP отключен. Если вы создаете правило исключения с точным соответствием, потребуется указать полный адрес ivanpetrov@kompaniya.ru. Если же параметр включен, указывается только имя пользователя: ivanpetrov. При сравнении с образцом ivanpetrov@kompaniya.ru соответствие не будет установлено, поскольку вторая часть адреса (@kompaniya.ru) была удалена до сравнения.

Можно ли вкладывать статические и динамические группы друг в друга?

При синхронизации групп с помощью GCDS нельзя вкладывать динамические группы в статические (или наоборот). В GCDS запросы для статических и динамических групп должны быть раздельными, в то время как все вложенные группы должны включаться в один запрос.

Попытайтесь реализовать динамические группы в виде статических. Для этого можно создать автоматизированную задачу, которая будет периодически запрашивать данные из каждой динамической группы каталога и подставлять их в статические. В результате GCDS сможет использовать для синхронизации статические группы (созданные на основе динамических) и не синхронизировать динамические.

Контакты и календари

Почему после синхронизации с использованием GCDS в каталоге домена появились повторяющиеся контакты?

Обычно это происходит, если при синхронизации общих контактов правила поиска заданы некорректно.

С помощью GCDS можно синхронизировать объекты двух типов:

  • Профили пользователей. В профиле содержатся дополнительные данные, такие как номера телефонов и адреса, и его можно синхронизировать, только если пользователь зарегистрирован в вашем домене.
  • Общие контакты. Это пользователи за пределами домена, с которыми общаются ваши сотрудники.

Чтобы устранить проблему, измените правила поиска общих контактов и исключите из них пользователей в вашем домене. При следующей синхронизации GCDS попытается удалить лишние записи. Возможно, перед этим потребуется изменить ограничения на удаление общих контактов.

Почему некоторые пользователи не видят адрес своего основного места работы в Google Календаре?

В некоторых случаях при планировании мероприятий в Google Календаре адрес основного места работы пользователя не показывается.

Чтобы этого не происходило, установите для атрибутов типа местоположения и области значение desk.

Правила

Почему правило поиска не выдает результатов?

Проверьте область действия правила. Может потребоваться установить для области действия значение SUBTREE.

Почему при создании правила исключения отсутствует кнопка "ОК"?

Возможно, вы используете слишком крупный шрифт. В диалоговом окне большие или очень большие шрифты отображаются некорректно. Измените размер шрифта или отредактируйте XML-файл напрямую.

Эта информация оказалась полезной?
Как можно улучшить эту статью?