Мониторинг Azure Key Vault

При наличии критически важных приложений и бизнес-процессов, использующих ресурсы Azure, необходимо отслеживать эти ресурсы на предмет их доступности, производительности и работы. Для Azure Key Vault важно отслеживать работу службы по мере масштабирования, так как количество запросов, отправляемых в хранилище ключей, будет расти. Это может увеличить задержку запросов и в крайних случаях привести к их регулированию, что повлияет на производительность службы.

В этой статье описываются данные мониторинга, создаваемые службой Key Vault. Key Vault использует Azure Monitor. Если вы плохо знакомы с функциями Azure Monitor, которые используются для всех совместимых служб Azure, прочитайте статью Мониторинг ресурсов Azure с помощью Azure Monitor.

Обзорная страница мониторинга на портале Azure

На странице Обзор портала Azure для каждого хранилища ключей на вкладке "Мониторинг" указаны следующие метрики:

  • Итого запросов
  • Среднее время задержки
  • коэффициент успешного выполнения.

Вы можете выбрать "Дополнительные метрики" (или вкладку "Метрики" на левой боковой панели в разделе "Мониторинг"), чтобы просмотреть также эти метрики:

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

Аналитика для Key Vault

Для некоторых служб в Azure на портале Azure имеется особая предварительно созданная панель мониторинга, которая служит отправной точкой для мониторинга службы. Эти специальные панели мониторинга называются "аналитическими сведениями".

Аналитика Key Vault обеспечивает комплексный мониторинг хранилищ ключей в едином представлении запросов, производительности, сбоев и задержки для Key Vault. Полные сведения см. в статье Мониторинг службы хранилища ключей с помощью аналитики Key Vault.

Данные мониторинга

Key Vault собирает данные мониторинга тех же типов, что и другие ресурсы Azure, описанные в статье Мониторинг данных из ресурсов Azure.

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

Сбор и маршрутизация

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

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

Подробный процесс создания параметров диагностики с помощью портала Azure, интерфейса командной строки или PowerShell см. в статье Создание параметров диагностики для отправки журналов платформы и метрик в разные места назначения. Создавая параметр диагностики, нужно указать, какие категории журналов должны собираться. Категории Key Vault перечислены в справочнике по данным мониторинга Key Vault.

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

Анализ метрик

Метрики Key Vault можно анализировать вместе с метриками других служб Azure с помощью обозревателя метрик. Для этого выберите пункт Метрики в меню Azure Monitor. Дополнительные сведения об использовании этого средства см . в обозревателе метрик Azure Monitor.

Список собираемых для Key Vault метрик платформы приведен в разделе Метрики справочника по мониторингу данных Key Vault.

анализ журналов;

Данные в журналах Azure Monitor хранятся в таблицах, каждая из которых имеет собственный набор уникальных свойств.

Все журналы ресурсов в Azure Monitor имеют те же поля, за которыми следуют поля, характерные для службы. Общая схема показана в разделе Схема журнала ресурсов Azure Monitor.

Журнал действий — это журнал платформы в Azure, который предоставляет когнитивные аналитические сведения о событиях уровня подписки. Вы можете просмотреть их независимо или направить в журналы Azure Monitor, где можно выполнять гораздо более сложные запросы с помощью Log Analytics.

Список собираемых для Key Vault типов журналов ресурсов приведен в разделе Метрики справочника по мониторингу данных Key Vault.

Список таблиц, используемых журналами Azure Monitor и доступных для запросов из Log Analytics, см. в справочнике по данным мониторинга службы Key Vault.

Примеры запросов Kusto

Важно!

Если выбрать в меню Key Vault пункт Журналы, откроется Log Analytics с оценкой запроса, установленной в текущем центре Интернета вещей. Это означает, что запросы к журналам будут содержать данные только из этого ресурса. Если требуется выполнить запрос, включающий данные из других хранилищ ключей или данные из других служб Azure, выберите в меню Azure Monitor пункт Журналы. Подробные сведения см. в статье Область запросов журнала и временной диапазон в Azure Monitor Log Analytics.

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

  • Существуют ли клиенты, использующие старую версию TLS (<1.2)?

    AzureDiagnostics
    | where TimeGenerated > ago(90d) 
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where isnotempty(tlsVersion_s) and strcmp(tlsVersion_s,"TLS1_2") <0
    | project TimeGenerated,Resource, OperationName, requestUri_s, CallerIPAddress, OperationVersion,clientInfo_s,tlsVersion_s,todouble(tlsVersion_s)
    | sort by TimeGenerated desc
    
  • Есть ли длительно выполняющиеся запросы?

    // List of KeyVault requests that took longer than 1sec. 
    // To create an alert for this query, click '+ New alert rule'
    let threshold=1000; // let operator defines a constant that can be further used in the query
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where DurationMs > threshold
    | summarize count() by OperationName, _ResourceId
    
  • Есть ли сбои?

    // Count of failed KeyVault requests by status code. 
    // To create an alert for this query, click '+ New alert rule'
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where httpStatusCode_d >= 300 and not(OperationName == "Authentication" and httpStatusCode_d == 401)
    | summarize count() by requestUri_s, ResultSignature, _ResourceId
    // ResultSignature contains HTTP status, e.g. "OK" or "Forbidden"
    // httpStatusCode_d contains HTTP status code returned
    
  • Ошибки десериализации входных данных

    // Shows errors caused due to malformed events that could not be deserialized by the job. 
    // To create an alert for this query, click '+ New alert rule'
    
    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.KEYVAULT" and parse_json(properties_s).DataErrorType in ("InputDeserializerError.InvalidData", "InputDeserializerError.TypeConversionError", "InputDeserializerError.MissingColumns", "InputDeserializerError.InvalidHeader", "InputDeserializerError.InvalidCompressionType")
    | project TimeGenerated, Resource, Region_s, OperationName, properties_s, Level, _ResourceId
    
  • Насколько активным было это хранилище ключей?

    // Line chart showing trend of KeyVault requests volume, per operation over time. 
    // KeyVault diagnostic currently stores logs in AzureDiagnostics table which stores logs for multiple services. 
    // Filter on ResourceProvider for logs specific to a service.
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | summarize count() by bin(TimeGenerated, 1h), OperationName // Aggregate by hour
    | render timechart
    
    
  • Кто вызывает это хранилище ключей?

    // List of callers identified by their IP address with their request count.  
    // KeyVault diagnostic currently stores logs in AzureDiagnostics table which stores logs for multiple services. 
    // Filter on ResourceProvider for logs specific to a service.
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT"
    | summarize count() by CallerIPAddress
    
  • Как быстро это хранилище ключей обслуживает запросы?

    // Line chart showing trend of request duration over time using different aggregations. 
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | summarize avg(DurationMs) by requestUri_s, bin(TimeGenerated, 1h) // requestUri_s contains the URI of the request
    | render timechart
    
  • Какие изменения произошли в прошлом месяце?

    // Lists all update and patch requests from the last 30 days. 
    // KeyVault diagnostic currently stores logs in AzureDiagnostics table which stores logs for multiple services. 
    // Filter on ResourceProvider for logs specific to a service.
    
    AzureDiagnostics
    | where TimeGenerated > ago(30d) // Time range specified in the query. Overrides time picker in portal.
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where OperationName == "VaultPut" or OperationName == "VaultPatch"
    | sort by TimeGenerated desc
    

видны узлы

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

Если вы создаете или запускаете приложение, которое использует Azure Key Vault, в Azure Monitor Application Insights могут быть предоставлены дополнительные типы оповещений.

Вот некоторые распространенные и рекомендуемые правила генерации оповещений для Azure Key Vault:

  • Доступность Key Vault падает ниже 100 % (статическое пороговое значение)
  • Задержка Key Vault составляет более 1000 мс (статическое пороговое значение)
  • Общая насыщенность хранилища превышает 75 % (статическое пороговое значение)
  • Общая насыщенность хранилища превышает среднюю (динамическое пороговое значение)
  • Общее количество кодов ошибок больше среднего (динамическое пороговое значение)

Дополнительные сведения см. в статье Оповещения для Azure Key Vault.

Следующие шаги