Поделиться через


Журналы диагностики для Шлюз приложений для контейнеров

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

Вы можете отслеживать Шлюз приложений Azure ресурсов контейнеров следующими способами:

  • Журналы. Можно сохранять или использовать данные производительности, доступа и другие данные, относящиеся к ресурсу, чтобы отслеживать его состояние.

  • Метрики: Шлюз приложений для контейнеров имеет несколько метрик, которые помогают проверить, выполняется ли система должным образом.

Журналы диагностики

Вы можете использовать различные типы журналов в Azure для управления и устранения неполадок Шлюз приложений для контейнеров. Доступ к некоторым из этих журналов можно получить через портал. Также можно извлечь все журналы из хранилища BLOB-объектов Azure и просматривать их с помощью таких средств, как журналы Azure Monitor, Excel и Power BI. В списке ниже приведены дополнительные сведения о разных типах журналов:

  • Журнал действий. В журналах действий Azure (прежнее название — операционные журналы и журналы аудита) можно просматривать все операции, отправляемые в вашу подписку Azure, и состояние этих операций. Записи этого журнала собираются по умолчанию, и их можно просмотреть на портале Azure.
  • Журнал доступа. Этот журнал можно использовать для просмотра Шлюз приложений шаблонов доступа к контейнерам и анализа важных сведений. В журнале указаны IP-адрес вызывающего объекта, запрашиваемый URL-адрес, время задержки ответа, код возврата, входящие и исходящие байты. Журнал доступа собирается каждые 60 секунд. Данные могут храниться в учетной записи хранения, указанной во время включения ведения журнала.

Настройка журнала доступа

Ведение журнала действий автоматически включается для каждого ресурса Resource Manager. Чтобы начать сбор данных, доступных с помощью этих журналов, необходимо включить ведение журнала доступа. Чтобы включить ведение журнала, можно настроить параметры диагностики в Azure Monitor.

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

  1. Войдите на портал Azure с помощью своей учетной записи Azure.

  2. В ресурсах поиска, службе и документах введите Шлюз приложений для контейнеров и выберите имя Шлюз приложений для контейнеров.

  3. В разделе Мониторинг выберите Параметры диагностики.

  4. Выберите Добавить параметр диагностики.

  5. Введите имя параметра диагностики (например, agfc-logs), выберите журналы и метрики для сохранения и выбора назначения, например архив в учетную запись хранения. Чтобы сохранить все журналы, выберите allLogs и AllMetrics.

  6. Нажмите кнопку Save (Сохранить), чтобы сохранить настройки. См. следующий пример.

    Настройка журналов диагностики

Примечание.

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

Дополнительные сведения и руководства по развертыванию Azure Monitor см. в разделе "Параметры диагностики" в Azure Monitor.

Формат журнала access

Каждая запись журнала доступа в Шлюз приложений для контейнеров содержит следующие сведения.

значение Описание
backendHost Адрес серверного целевого объекта с добавленным портом. Например <, ip>:<port> 
серверная часть IP-адрес серверного целевого объекта Шлюз приложений для прокси-серверов контейнеров запрашивает запрос. 
серверный порт Номер порта серверного целевого объекта. 
backendResponseLatency Время в миллисекундах для получения первого байта от Шлюз приложений для контейнеров к целевому объекту серверной части. 
backendTimeTaken Время в миллисекундах для передачи ответа из серверного целевого объекта в Шлюз приложений для контейнеров. 
clientIp IP-адрес клиента, инициирующего запрос к интерфейсу Шлюз приложений для контейнеров
frontendName Имя интерфейса Шлюз приложений для контейнеров, который получил запрос от клиента
frontendPort Номер порта, в который запрос прослушивался Шлюз приложений для контейнеров
hostName Значение заголовка узла, полученное от клиента Шлюз приложений для контейнеров
httpMethod Метод HTTP запроса, полученный от клиента, Шлюз приложений для контейнеров в зависимости от RFC 7231
httpStatusCode Код состояния HTTP, возвращенный из Шлюз приложений для контейнеров клиенту
httpVersion HTTP-версия запроса, полученного от клиента, Шлюз приложений для контейнеров
Реферер Заголовок ссылки на запрос, полученный от клиента, Шлюз приложений для контейнеров
requestBodyBytes Размер полезных данных тела в байтах запроса, полученного от клиента, Шлюз приложений для контейнеров
requestHeaderBytes Размер в байтах заголовков запроса, полученных от клиента, Шлюз приложений для контейнеров
requestUri URI запроса, полученного от клиента, Шлюз приложений для контейнеров (все после <протокола>://<узла> URL-адреса)
responseBodyBytes Размер полезных данных тела в байтах ответа, возвращенного клиенту, Шлюз приложений для контейнеров
responseHeaderBytes Размер в байтах заголовков ответа, возвращенных клиенту, Шлюз приложений для контейнеров
timeTaken Время в миллисекундах запроса клиента, полученного Шлюз приложений для контейнеров, и последний байт, возвращенный клиенту из Шлюз приложений для контейнеров
tlsCipher Набор шифров TLS, согласованный между клиентом и Шлюз приложений для внешних интерфейсов контейнеров
tlsProtocol Версия TLS, согласованная между клиентом и Шлюз приложений для интерфейсной части контейнеров
trackingId Созданный guid с помощью Шлюз приложений для контейнеров для отслеживания и отладки. Это значение коррелирует с заголовком x-request-id, возвращенным клиенту из Шлюз приложений для контейнеров. 
userAgent Заголовок агента пользователя, полученный от клиента, Шлюз приложений для контейнеров

Примечание.

Значения параметров строки запроса, такие как "secret", "password", "pwd", "passwd", "key", "token", "pat", "accesskey", "accesstoken", "credential", "sas", "personalAccessToken" и "personal.access.token", вошедшие в поле requestUri, будут заменены значением <redacted> , чтобы предотвратить запись конфиденциальной информации. Это не настраивается.

Ниже приведен пример журнала доступа, выдаваемого в формате JSON для учетной записи хранения.

{
    "category": "TrafficControllerAccessLog",
    "operationName": "ReqRespLogs",
    "properties": {
        "backendHost": "10.1.0.15:80",
        "backendIp": "10.1.0.15",
        "backendPort": "80",
        "backendResponseLatency": "2",
        "backendTimeTaken": "-",
        "clientIp": "xxx.xxx.xxx.xxx:52526",
        "frontendName": "frontend-primary",
        "frontendPort": "80",
        "hostName": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.fzXX.alb.azure.com",
        "httpMethod": "GET",
        "httpStatusCode": "200",
        "httpVersion": "HTTP\/1.1",
        "referer": "-",
        "requestBodyBytes": "0",
        "requestHeaderBytes": "223",
        "requestUri": "\/index.php",
        "responseBodyBytes": "91",
        "responseHeaderBytes": "190",
        "timeTaken": "2",
        "tlsCipher": "-",
        "tlsProtocol": "-",
        "trackingId": "0ef125db-7fb7-48a0-b3fe-03fe0ffed873",
        "userAgent": "curl\/7.81.0"
    },
    "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/YYYYYY/PROVIDERS/MICROSOFT.SERVICENETWORKING/TRAFFICCONTROLLERS/ZZZZZZZ",
    "time": "2023-07-22T06:26:58.895Z",
    "location": "northcentralus"
}