Работа с Azure Monitor Activity Logs

6fc114c12c140d10a42dd30c7bfdb0cb.png

2b70d7c0e985f42fef017b355143ecd4.jpgАвтор статьи: Рустем Галиев

IBM Senior DevOps Engineer & Integration Architect. Официальный DevOps ментор и коуч в IBM

Привет Хабр сегодня мы поработаем с Azure Monitor Activity Logs в три простых шага: логгинг, мониторинг и алертинг.

Шаг 1. Список и запрос событий журнала действий. Логгинг

Мы будем запрашивать журналы активности платформы Azure Monitor с помощью Azure CLI.

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

  • Журналы активности платформы: предоставляют сведения о событиях на уровне подписки, например о создании, обновлении или удалении ресурса.

  • Журналы ресурсов: предоставляет информацию о журналах на уровне ресурсов, например, когда трафик блокируется брандмауэром Azure или файл большого двоичного объекта службы хранилища Azure предоставляется клиенту.

Логинимся в CLI

az login -u $username -p $password

Мы будем работать с журналами активности платформы.

Давайте продолжим и запустим наш первый запрос журнала действий Azure Monitor .

Выполним следующую команду CLI, чтобы запросить журналы активности за последние пять часов:

az monitor activity-log list --offset 5h --query "[].{CorrelationId: correlationId, EventName: eventName, Level: level, Operation: operationName}"

Дождитесь выполнения команды. Убедитесь, что вы видите возвращенные журналы действий. Это список действий ресурсов в подписке за последние два часа. Например, такие события, как создание или обновление новой учетной записи хранения, попадут в журналы активности.

Мы смотрели только события за последние два часа. Однако вы можете передать следующие параметры в зависимости от вашего сценария:

  • offset: Временное смещение диапазона запроса в формате ##d##h, например 7d или 1h

  • start-time: время начала запроса. По умолчанию текущее время. Формат: дата yyyy-mm-dd и время hh: mm: ss.ххххх часовой пояс. Например, 2018–07–01

  • end-time: время начала запроса.

  • resource-group: если этот параметр используется, команда будет возвращать журналы активности только для ресурса в группе ресурсов.

  • select: Список возвращаемых свойств, разделенных пробелами. Допустимые значения: authorization, caller, category, claims, correlationId, description, eventDataId, eventName, eventTimestamp, httpRequest, id, level, operationId, operationName, properties, resourceGroupName, resourceId, resourceProviderName, resourceType, status, subStatus, submissionTimestamp, subscriptionId, tenantId.

На следующем шаге мы проверим журналы активности на портале Azure.

Перейдем на портал Azure https://portal.azure.com/

Далее введем наши креды. Узнать их можно из команды:

echo "Username: $username"

echo "Password: $password"

Переходим в Subscriptions.

Далее activity logs в overview

Шаг 2. Список показателей производительности для ресурса Azure. Мониторинг

Мы используем показатели производительности Azure Monitor, чтобы получать информацию о работоспособности и производительности ресурсов. Например, вы можете запросить метрики процента cpu для виртуальной машины Azure, чтобы понять, достаточно ли у виртуальной машины ресурсов для нагрузки.

Согласно Microsoft, Метрики Azure Monitor — это функция Azure Monitor, которая собирает числовые данные из отслеживаемых ресурсов в базу данных временных рядов. Метрики — это числовые значения, которые собираются через равные промежутки времени и описывают некоторые аспекты системы в определенное время.

Мы будем работать с метриками производительности ресурсов.

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

Мы можем запустить следующую команду CLI, чтобы запросить доступные показатели производительности для нашей учетной записи хранения Azure:

az monitor metrics list-definitions --resource $storageAccountName --resource-group $resource --resource-type Microsoft.Storage/storageAccounts --query "[].{Category: category, Name: name}"

Убедитесь, что вы можете видеть названия метрик в списке. Некоторые названия, которые вы должны увидеть, Used capacity, Transactions и Availability

Теперь давайте возьмем значение метрики «Транзакции» за последний час.

az monitor metrics list --resource $storageAccountName --resource-group $resource --resource-type Microsoft.Storage/storageAccounts --offset 1h --metric "Transactions"

Теперь проверим метрики хранилища на портале Azure.

Также логинимся в портал и переходим в Storage accounts.

Далее Monitoring и metrics

Выбираем метрику, например Transactions

Шаг 3. Создание alert rule на основе метрик. Алертинг


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

Давайте продолжим и запустим наш первый запрос журнала действий Azure Monitor на следующем шаге.

Прежде чем создавать оповещение, нужно выяснить, какие метрики доступны для типа ресурса. Вы можете запустить следующую команду CLI, чтобы запросить доступные показатели производительности для нашей виртуальной машины Azure:

az monitor metrics list-definitions --resource $vmName --resource-group $resource --resource-type Microsoft.Compute/virtualMachines --query "[].{Category: category, Name: name.localizedValue}"

Перед созданием оповещения мы используем эту команду для сохранения идентификатора виртуальной машины в переменной:

vmID=$(az vm show --resource-group $resource --name $vmName --query id -o tsv)

Теперь давайте создадим алерт.

az monitor metrics alert create --name highCPU --resource-group $resource --scopes $vmID --condition "avg Network In Total > 90" --description "High VM CPU"

Попробуем также настроить алерты не через CLI, а через WebUI

Теперь на портале Azure переходим в VM:

Далее monitoring → alerts


Enable recommended alert rules

Готово

В завершение хочу порекомендовать вам бесплатный вебинар: «Чему могут научить SRE техники? Сравнение SRE и DevOps».

На вебинаре эксперты OTUS разберут как SRE-техники могут помочь вам в построении и обслуживании систем. Вы увидите сравнение SRE с ITSM, DevOps, Platform Engineering. Также будут рассмотрены принципиально новые идеи в каждом фреймворке, какие части фреймворков прошли проверку временем, а какие не работают как ожидается и как оценивать успешность внедрения.

© Habrahabr.ru