Работа с Azure Monitor Activity Logs
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 или 1hstart-time
: время начала запроса. По умолчанию текущее время. Формат: дата yyyy-mm-dd и время hh: mm: ss.ххххх часовой пояс. Например, 2018–07–01end-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. Также будут рассмотрены принципиально новые идеи в каждом фреймворке, какие части фреймворков прошли проверку временем, а какие не работают как ожидается и как оценивать успешность внедрения.