Ведение журнала Аналитики Службы хранилища Azure
В аналитике хранилища регистрируется подробная информация об успешных и неудачных запросах к службе хранилища. Эта информация может использоваться для мониторинга отдельных запросов и диагностики неполадок в службе хранилища. Запросы вносятся в журнал наилучшим возможным образом. Это означает, что большинство запросов приведет к записи журнала, но полнота и сроки действия журналов Аналитики Службы хранилища не гарантированы.
Примечание
Рекомендуется использовать журналы Службы хранилища Azure в Azure Monitor вместо метрик Аналитики Службы хранилища. Дополнительные сведения см. в следующих статьях:
Ведение журнала "Аналитики Службы хранилища" по умолчанию для учетной записи хранения не предусмотрено. Его можно включить на портале Azure или с помощью PowerShell или Azure CLI. Пошаговые инструкции см. в статье Включение журналов Аналитики Службы хранилища Azure и управление ими (классическая модель).
Журналы Аналитики Службы хранилища также можно включить программно через REST API или клиентскую библиотеку. Чтобы включить Аналитику Службы хранилища для каждой службы, можно использовать операции Получить свойства службы BLOB-объектов, Получить свойства службы очередейПолучить свойства службы таблиц. Пример включения журналов Аналитики Службы хранилища с помощью .NET см. в разделе Включение журналов.
Записи журнала создаются только при получении запроса к конечной точке службы. Например, если обнаруживается действие учетной записи хранения в конечной точке службы BLOB-объектов, но не в ее конечных точках служб таблиц или очередей, то будут созданы журналы, которые относятся только к службе BLOB-объектов.
Примечание
Ведение журнала Аналитики Службы хранилища доступно только для служб BLOB-объектов, очередей и таблиц. Ведение журнала Аналитики Службы хранилища также доступно для высокопроизводительных учетных записей BlockBlobStorage. Однако оно недоступно для высокопроизводительных учетных записей общего назначения версии 2.
Регистрация запросов
Ведение журналов запросов, прошедших аутентификацию
Регистрируются запросы, прошедшие аутентификацию, следующих типов:
Успешные запросы.
Неудачные запросы, в том числе из-за ошибок, связанных с временем ожидания, регулированием, сетью, авторизацией и др.
Запросы, в которых используется подписанный URL-адрес (SAS) или OAuth, в том числе неудачные и успешные запросы.
Запросы к данным аналитики.
Запросы, выполненные в самой аналитике хранилища, такие как запросы на создание или удаление журнала, не регистрируются. Полный список регистрируемых данных приведен в разделах Операции с протоколированием и сообщения о состоянии аналитики хранилища и Формат журналов аналитики хранилища.
Ведение журналов анонимных запросов
Регистрируются анонимные запросы следующих типов:
Успешные запросы.
ошибки сервера;
Ошибки времени ожидания для клиента и сервера.
Неудачные запросы GET с кодом ошибки 304 (не изменено).
Остальные неудачные анонимные запросы не регистрируются. Полный список регистрируемых данных приведен в разделах Операции с протоколированием и сообщения о состоянии аналитики хранилища и Формат журналов аналитики хранилища.
Примечание
Аналитика службы хранилища регистрирует все внутренние вызовы к плоскости данных. Также регистрируются вызовы от поставщика ресурсов службы хранилища Microsoft Azure. Чтобы определить эти запросы, найдите строку запроса <sk=system-1>
в URL-адресе запроса.
Хранение журналов
Все журналы хранятся в блочных BLOB-объектах в контейнере с именем $logs
, который автоматически создается при включении Аналитики Службы хранилища для учетной записи хранилища. Контейнер $logs
находится в пространстве имен BLOB-объекта учетной записи хранения, например: http://<accountname>.blob.core.windows.net/$logs
. После включения аналитики хранилища этот контейнер нельзя удалить, но вы можете удалить его содержимое. Если вы используете средство просмотра хранилища для непосредственного перехода к контейнеру, вы увидите все BLOB-объекты, содержащие данные журнала.
Примечание
Контейнер $logs
не отображается при выполнении операции перечисления контейнеров, например с использованием операции перечисления контейнеров. Доступ к нему можно получить только непосредственно. Например, для доступа к BLOB-объектам в контейнере $logs
можно использовать операцию перечисления BLOB-объектов.
По мере регистрации запросов в аналитике хранилища промежуточные результаты передаются в качестве блоков. Периодически эти блоки фиксируются в аналитике хранилища и к ним предоставляется доступ как к большим двоичным объектам. Появление данных журнала в BLOB-объектах в контейнере $logs может занимать до одного часа, что определяется периодичностью очистки задач записи в журнал Службой хранилища. В журналах, созданных в один и тот же час, могут присутствовать повторяющиеся записи. Вы можете определить, является ли запись двойной, проверив идентификатор запроса RequestId и номер операции.
Если каждый час появляется большой объем данных журнала в нескольких файлах, то для определения того, какие данные должны содержаться в журнале, следует руководствоваться метаданными BLOB-объектов в полях метаданных. Этот прием также полезен по той причине, что иногда при записи данных в файл журнала имеет место задержка. Метаданные содержат более точные сведения о содержимом BLOB-объекта, чем имя BLOB-объекта.
Большая часть средств обзора позволяет просматривать метаданные BLOB-объектов; кроме того, эти сведения также можно считывать с использованием PowerShell или программным способом. Следующий фрагмент команды PowerShell является примером фильтрации списка BLOB-объектов журнала по имени для указания времени, а также по метаданным с целью определения только тех журналов, которые содержат операции записи.
Get-AzStorageBlob -Container '$logs' |
Where-Object {
$_.Name -match 'blob/2014/05/21/05' -and
$_.ICloudBlob.Metadata.LogType -match 'write'
} |
ForEach-Object {
"{0} {1} {2} {3}" -f $_.Name,
$_.ICloudBlob.Metadata.StartTime,
$_.ICloudBlob.Metadata.EndTime,
$_.ICloudBlob.Metadata.LogType
}
Сведения о программном методе отображения BLOB-объектов см. в статьях Перечисление ресурсов хранилища BLOB-объектов и Настройка и получение свойств и метаданных для ресурсов службы BLOB-объектов.
Соглашения об именовании журналов
Каждый журнал записывается в следующем формате.
<service-name>/YYYY/MM/DD/hhmm/<counter>.log
В следующей таблице описан каждый атрибут имени журнала.
attribute | Описание |
---|---|
<service-name> |
имя службы хранилища. Например, blob , table или queue . |
YYYY |
Четырехзначное обозначение года создания журнала. Например: 2011 |
MM |
Двузначное обозначение месяца создания журнала. Например: 07 |
DD |
Двузначное обозначение дня создания журнала. Например: 31 |
hh |
Двузначное обозначение часа, которое указывает час начала ведения журналов, в 24-часовом формате UTC. Например: 18 |
mm |
Двузначное обозначение минуты, которое указывает минуту начала ведения журналов.
Примечание. Это значение не поддерживается в текущей версии Аналитики Службы хранилища, а его значение всегда равно 00 . |
<counter> |
Шестизначный счетчик с отсчетом от нуля, который показывает количество больших двоичных объектов журнала, созданных для службы хранилища в течение часа. Отсчет этого счетчика начинается с 000000 . Например: 000001 |
Ниже приведено полное имя журнала, в котором представлены вместе все упомянутые примеры.
blob/2011/07/31/1800/000001.log
Ниже приведен пример URI, который может использоваться для получения доступа к указанному журналу.
https://<accountname>.blob.core.windows.net/$logs/blob/2011/07/31/1800/000001.log
При регистрации запроса хранилища имя результирующего журнала сопоставляется с часом завершения запрошенной операции. Например, если запрос GetBlob был завершен в 18:30 31.07.2011 г., то журнал должен быть записан со следующим префиксом: blob/2011/07/31/1800/
.
Метаданные журнала
Все большие двоичные объекты журнала хранятся с метаданными, с помощью которых можно определить, какие данные журнала содержит большой двоичный объект. В следующей таблице описан каждый атрибут метаданных.
attribute | Описание |
---|---|
LogType |
Описывает, содержит ли журнал информацию, относящуюся к операциям чтения, записи или удаления. Это значение может содержать данные одного типа или сочетание всех трех типов данных, разделенных запятыми. Пример 1: write Пример 2: read,write Пример 3: read,write,delete |
StartTime |
Время первой записи в журнале в форме YYYY-MM-DDThh:mm:ssZ . Например: 2011-07-31T18:21:46Z |
EndTime |
Время самой последней записи в журнале в форме YYYY-MM-DDThh:mm:ssZ . Например: 2011-07-31T18:22:09Z |
LogVersion |
Версия формата журнала. |
В следующем списке отображается полный образец метаданных, в котором используются приведенные выше примеры.
LogType=write
StartTime=2011-07-31T18:21:46Z
EndTime=2011-07-31T18:22:09Z
LogVersion=1.0
Записи журнала
В следующих разделах приводится пример записи журнала для каждой поддерживаемой службы хранилища Azure.
Пример записи журнала для Хранилища BLOB-объектов
2.0;2022-01-03T20:34:54.4617505Z;PutBlob;SASSuccess;201;7;7;sas;;logsamples;blob;https://logsamples.blob.core.windows.net/container1/1.txt?se=2022-02-02T20:34:54Z&sig=XXXXX&sp=rwl&sr=c&sv=2020-04-08&timeout=901;"/logsamples/container1/1.txt";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53371;2019-12-12;654;13;337;0;13;"xxxxxxxxxxxxxxxxxxxxx==";"xxxxxxxxxxxxxxxxxxxxx==";""0x8D9CEF88004E296"";Monday, 03-Jan-22 20:34:54 GMT;;"Microsoft Azure Storage Explorer, 1.20.1, win32, azcopy-node, 2.0.0, win32, AzCopy/10.11.0 Azure-Storage/0.13 (go1.15; Windows_NT)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Пример записи журнала для Хранилища BLOB-объектов (с поддержкой Data Lake Storage 2-го поколения)
2.0;2022-01-04T22:50:56.0000775Z;RenamePathFile;Success;201;49;49;authenticated;logsamples;logsamples;blob;"https://logsamples.dfs.core.windows.net/my-container/myfileorig.png?mode=legacy";"/logsamples/my-container/myfilerenamed.png";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;73.157.16.8;2020-04-08;591;0;224;0;0;;;;Friday, 11-Jun-21 17:58:15 GMT;;"Microsoft Azure Storage Explorer, 1.19.1, win32 azsdk-js-storagedatalake/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Пример записи журнала для Хранилища очередей
2.0;2022-01-03T20:35:04.6097590Z;PeekMessages;Success;200;5;5;authenticated;logsamples;logsamples;queue;https://logsamples.queue.core.windows.net/queue1/messages?numofmessages=32&peekonly=true&timeout=30;"/logsamples/queue1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53385;2020-04-08;536;0;232;62;0;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32 azsdk-js-storagequeue/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Пример записи журнала для Хранилища таблиц
1.0;2022-01-03T20:35:13.0719766Z;CreateTable;Success;204;30;30;authenticated;logsamples;logsamples;table;https://logsamples.table.core.windows.net/Tables;"/logsamples/Table1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53389;2018-03-28;601;22;339;0;22;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32, Azure-Storage/2.10.3 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"