Устранение неполадок с возможностью подключения (Сетка событий Azure)

Есть различные причины, по которым клиентские приложения не могут подключаться к разделу или домену Сетки событий. Такие проблемы с возможностью подключения могут быть постоянными или временными. Если проблема возникает постоянно, обычно есть смысл проверить параметры корпоративного брандмауэра, IP-брандмауэра, тегов службы, частных конечных точек и так далее. При временных проблемах может помочь выполнение проверки отброшенных пакетов или получение трассировок сети.

Эта статья содержит советы по устранению неполадок с возможностью подключения в Сетке событий Azure.

Устранение постоянных неполадок с возможностью подключения

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

Проверка наличия сбоев службы

Проверьте, не произошел ли сбой службы Сетки событий Azure, на сайте состояния служб Azure.

Проверка блокировки портов, необходимых для взаимодействия с Сеткой событий, на корпоративном брандмауэре

Убедитесь, что порты для взаимодействия с Сеткой событий Azure, не блокируются на корпоративном брандмауэре. В следующей таблице приведены исходящие порты, которые вам нужно открыть для взаимодействия с Сеткой событий Azure.

Протокол порты;
HTTPS 443

Следующая простая команда проверяет, не заблокирован ли порт 443.

.\psping.exe -n 25 -i 1 -q {sampletopicname}.{region}-{suffix}.eventgrid.azure.net:443 -nobanner

В Linux

telnet {sampletopicname}.{region}-{suffix}.eventgrid.azure.net 443

Проверка разрешений для IP-адресов на корпоративном брандмауэре

При работе с Azure иногда необходимо разрешать определенные диапазоны IP-адресов или URL-адреса на корпоративном брандмауэре или прокси-сервере, чтобы получить доступ ко всем службам Azure, которые вы используете или пытаетесь использовать. Убедитесь, что разрешен трафик на IP-адреса, используемые Сеткой событий. Список IP-адресов, используемых Сеткой событий Azure, можно найти в статьях Диапазоны IP-адресов и теги служб Azure — общедоступное облако и Сетевая безопасность для ресурсов Сетки событий Azure.

Также в документе Диапазоны IP-адресов и теги служб Azure — общедоступное облако есть список IP-адресов, сгруппированный по регионам. Вы можете разрешить на корпоративном брандмауэре или прокси-сервере доступ для диапазона адресов в регионе размещения раздела и в парном регионе. Список парных регионов см. в статье Репликация между регионами в Azure: непрерывность бизнес-процессов и аварийное восстановление.

Примечание

К тегу службы AzureEventGrid могут добавляться новые IP-адреса, хотя это случается редко. Поэтому имеет смысл еженедельно проверять изменения в тегах службы.

Проверка разрешения для тега службы AzureEventGrid в группах безопасности сети

Если приложение работает в подсети и с ним связана группа безопасности сети, проверьте, разрешен ли исходящий доступ к Интернету и разрешено ли использование тега службы AzureEventGrid. Подробные сведения о тегах службы см. здесь.

Проверка раздела и домена в параметрах брандмауэра для IP-адресов

Убедитесь, что общедоступный IP-адрес компьютера, на котором работает приложение, не заблокирован брандмауэром IP-адресов для раздела или домена.

По умолчанию разделы и домены Сетки событий доступны из Интернета при условии, что запрос поступает с правильной аутентификацией и авторизацией. С помощью брандмауэра для IP-адресов такой доступ можно дополнительно ограничить набором или диапазоном IPv4-адресов в нотации CIDR.

Правила брандмауэра для IP-адресов применяются на уровне раздела или домена Сетки событий. Поэтому они действуют для всех клиентских подключений по любым поддерживаемым протоколам. Любая попытка подключения с IP-адреса, который не соответствует правилу разрешения IP-адресов для раздела или домена Сетки событий, запрещается и отклоняется. В ответе клиенту не упоминается правило для IP-адресов.

Дополнительные сведения см. в статье Настройка правил брандмауэра для IP-адресов для разделов и доменов Сетки событий Azure.

Поиск IP-адресов, заблокированных брандмауэром IP-адресов

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

{
  "time": "2019-11-01T00:17:13.4389048Z",
  "resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID/RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-NAME/PROVIDERS/MICROSOFT.EVENTGRID/TOPICS/SAMPLE-TOPIC-NAME",
  "category": "PublishFailures",
  "operationName": "Post",
  "message": "inputEventsCount=null, requestUri=https://SAMPLE-TOPIC-NAME.region-suffix.eventgrid.azure.net/api/events, publisherInfo=PublisherInfo(category=User, inputSchema=EventGridEvent, armResourceId=/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID/RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-NAME/PROVIDERS/MICROSOFT.EVENTGRID/TOPICS/SAMPLE-TOPIC-NAME), httpStatusCode=Forbidden, errorType=ClientIPRejected, errorMessage=Publishing to SAMPLE-TOPIC-NAME.{region}-{suffix}.EVENTGRID.AZURE.NET by client {clientIp} is rejected due to IpAddress filtering rules."
}

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

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

Служба "Приватный канал Azure" предоставляет доступ к Сетке событий Azure через частную конечную точку в виртуальной сети. Частная конечная точка — это сетевой интерфейс, который защищенно и надежно подключается к службе через Приватный канал Azure. Частная конечная точка использует частный IP-адрес из виртуальной сети, по сути перемещая службу в виртуальную сеть. Весь трафик к службе может маршрутизироваться через частную конечную точку, поэтому шлюзы, устройства преобразования сетевых адресов (NAT), подключения ExpressRoute и VPN, а также общедоступные IP-адреса не требуются. Трафик между виртуальной сетью и службой проходит через магистральную сеть Майкрософт, что позволяет избежать рисков общедоступного Интернета. Вы можете подключиться к экземпляру ресурса Azure, обеспечивая наивысшую степень детализации в управлении доступом.

Дополнительные сведения см. в статье о настройке частных конечных точек.

Устранение временных неполадок с возможностью подключения

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

Выполнение команды для проверки на наличие отброшенных пакетов

Если возникают периодические проблемы с подключением, выполните следующую команду, чтобы проверить наличие отброшенных пакетов. Каждую секунду эта команда будет пытаться установить 25 разных TCP-подключений к службе. Вы сможете увидеть, сколько попыток завершились успешно, а сколько — сбоем, а также увидеть задержку TCP-подключения. Средство psping можно скачать здесь.

.\psping.exe -n 25 -i 1 -q {sampletopicname}.{region}-{suffix}.eventgrid.azure.net:443 -nobanner

Также можно использовать аналогичные команды, если вы применяете другие средства, такие как tcppingtcpping.exe.

Если предыдущие шаги не способствовали решению проблемы, получите трассировку сети и проанализируйте ее с помощью таких средств, как Wireshark. При необходимости обратитесь в службу поддержки Майкрософт.

Обновление или перезапуск службы

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

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

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

Дальнейшие действия

Если вам нужна дополнительная помощь, опубликуйте свой вопрос на форуме Stack Overflow или отправьте запрос в службу поддержки.