Журналы диагностики для Шлюз приложений для контейнеров
Узнайте, как устранять распространенные проблемы в Шлюз приложений для контейнеров.
Вы можете отслеживать Шлюз приложений Azure ресурсов контейнеров следующими способами:
Журналы. Можно сохранять или использовать данные производительности, доступа и другие данные, относящиеся к ресурсу, чтобы отслеживать его состояние.
Метрики: Шлюз приложений для контейнеров имеет несколько метрик, которые помогают проверить, выполняется ли система должным образом.
Журналы диагностики
Вы можете использовать различные типы журналов в Azure для управления и устранения неполадок Шлюз приложений для контейнеров. Доступ к некоторым из этих журналов можно получить через портал. Также можно извлечь все журналы из хранилища BLOB-объектов Azure и просматривать их с помощью таких средств, как журналы Azure Monitor, Excel и Power BI. В списке ниже приведены дополнительные сведения о разных типах журналов:
- Журнал действий. В журналах действий Azure (прежнее название — операционные журналы и журналы аудита) можно просматривать все операции, отправляемые в вашу подписку Azure, и состояние этих операций. Записи этого журнала собираются по умолчанию, и их можно просмотреть на портале Azure.
- Журнал доступа. Этот журнал можно использовать для просмотра Шлюз приложений шаблонов доступа к контейнерам и анализа важных сведений. В журнале указаны IP-адрес вызывающего объекта, запрашиваемый URL-адрес, время задержки ответа, код возврата, входящие и исходящие байты. Журнал доступа собирается каждые 60 секунд. Данные могут храниться в учетной записи хранения, указанной во время включения ведения журнала.
Настройка журнала доступа
Ведение журнала действий автоматически включается для каждого ресурса Resource Manager. Чтобы начать сбор данных, доступных с помощью этих журналов, необходимо включить ведение журнала доступа. Чтобы включить ведение журнала, можно настроить параметры диагностики в Azure Monitor.
Выполните следующие действия, чтобы включить все ведение журнала в учетную запись хранения для Шлюз приложений для контейнеров с помощью портал Azure. У вас должна быть доступная учетная запись хранения в том же регионе, что и Шлюз приложений для контейнеров.
Войдите на портал Azure с помощью своей учетной записи Azure.
В ресурсах поиска, службе и документах введите Шлюз приложений для контейнеров и выберите имя Шлюз приложений для контейнеров.
В разделе Мониторинг выберите Параметры диагностики.
Выберите Добавить параметр диагностики.
Введите имя параметра диагностики (например, agfc-logs), выберите журналы и метрики для сохранения и выбора назначения, например архив в учетную запись хранения. Чтобы сохранить все журналы, выберите allLogs и AllMetrics.
Нажмите кнопку Save (Сохранить), чтобы сохранить настройки. См. следующий пример.
Примечание.
После первоначального включения журналов диагностики может потребоваться до одного часа, прежде чем журналы будут доступны в выбранном месте назначения.
Дополнительные сведения и руководства по развертыванию Azure Monitor см. в разделе "Параметры диагностики" в Azure Monitor.
Формат журнала access
Каждая запись журнала доступа в Шлюз приложений для контейнеров содержит следующие сведения.
значение | Описание |
---|---|
backendHost | Адрес серверного целевого объекта с добавленным портом. Например <, ip>:<port> |
серверная часть | IP-адрес серверного целевого объекта Шлюз приложений для прокси-серверов контейнеров запрашивает запрос. |
серверный порт | Номер порта серверного целевого объекта. |
backendResponseLatency | Время в миллисекундах для получения первого байта от Шлюз приложений для контейнеров к целевому объекту серверной части. |
backendTimeTaken | Время в миллисекундах для передачи ответа из серверного целевого объекта в Шлюз приложений для контейнеров. |
clientIp | IP-адрес клиента, инициирующего запрос к интерфейсу Шлюз приложений для контейнеров |
frontendName | Имя интерфейса Шлюз приложений для контейнеров, который получил запрос от клиента |
frontendPort | Номер порта, в который запрос прослушивался Шлюз приложений для контейнеров |
frontendTLSFailureReason | Содержит сведения о том, почему сбой согласования TLS. Часто используется для понимания неудачных запросов проверки подлинности для взаимной проверки подлинности клиента |
frontendTLSPeerFingerprint | Отпечаток (отпечаток) сертификата, представленного клиентом перед интерфейсом Шлюз приложений для контейнеров |
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": "443",
"frontendTLSFailureReason": "-",
"frontendTLSPeerFingerprint": "2c01bbc93009ad1fc977fe9115fae7ad298b665f",
"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": "TLS_AES_256_GCM_SHA384",
"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"
}