Перейти до вмісту

Модуль 3.10: Azure Monitor та Log Analytics

Складність: [MEDIUM] | Час на виконання: 2.5 год | Передумови: Модуль 3.3 (ВМ), Модуль 3.1 (Entra ID)

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

У квітні 2023 року логістична компанія помітила, що кількість скарг від водіїв зросла втричі. Додаток працював повільно, іноді видавав помилки. Інженери не розуміли, що відбувається, бо дивилися лише на базові графіки в консолі. Коли вони нарешті налаштували детальний моніторинг, виявилося, що база даних SQL працювала на 98% потужності протягом 11 днів через один невдалий запит у новому релізі. 11 днів поганого сервісу та втрата клієнтів — ціна того, що ніхто не встановив алерти на “завантаження бази > 80%”.

Обсервабельність (observability) — це не розкіш, а спосіб вчасно дізнатися про проблему, поки її не помітили користувачі. Azure Monitor — це єдина платформа для збору метрик та логів з усієї вашої хмари. Log Analytics — це потужний рушій, який дозволяє шукати голку в копиці сіна серед мільйонів логів.

У цьому модулі ви навчитеся збирати метрики, писати запити на мові KQL, створювати автоматичні сповіщення (Alerts) та використовувати Application Insights для відстеження шляху кожного запиту користувача через вашу систему.


Архітектура Azure Monitor

Розділ «Архітектура Azure Monitor»

Azure Monitor збирає дані з двох основних джерел:

  1. Metrics (Метрики): Числові дані у часі (напр. ”% CPU”, “кількість запитів”). Вони легкі, зберігаються 93 дні і ідеальні для графіків та швидких алертив.
  2. Logs (Логи): Текстові дані (повідомлення про помилки, події аудиту). Вони зберігаються в Log Analytics Workspace, де їх можна аналізувати за допомогою запитів KQL.

KQL (Kusto Query Language): Мова запитів

Розділ «KQL (Kusto Query Language): Мова запитів»

KQL — це серце моніторингу в Azure. Вона схожа на SQL, але побудована на “конвеєрах” (pipes).

Приклад запиту: “Покажи мені всі помилки 500 за останні 24 години, згруповані за серверами”:

AppRequests
| where TimeGenerated > ago(24h)
| where ResultCode == "500"
| summarize count() by Computer
| render barchart

Application Insights: Погляд всередину додатка

Розділ «Application Insights: Погляд всередину додатка»

Application Insights — це частина Azure Monitor для розробників.

  • Трасування: Ви можете бачити, як запит прийшов на фронтенд, звернувся до API, а той — до бази даних.
  • Помилки: Система автоматично збирає stack traces ваших виключень (exceptions).
  • Карта додатків: Візуальна схема зв’язків між вашими мікросервісами.

Алерти перетворюють пасивні дані на активні дії.

  • Condition: Що ми шукаємо? (напр. “CPU > 90%”).
  • Action Group: Що робити? (надіслати Email, сповіщення в Slack, або запустити скрипт для перезавантаження сервера).

Це програма, яку ви ставите на свої віртуальні машини. Вона дозволяє збирати не тільки хмарні метрики, а й внутрішні дані ОС: логи Nginx, системні події Syslog або лічильники продуктивності Windows.


ПомилкаЧому це стаєтьсяЯк виправити
Моніторинг тільки CPUCPU не показує, чи задоволений юзерМоніторте “Золоті сигнали”: Latency (затримка), Traffic, Errors, Saturation
Окремі Log Analytics для кожного ресурсуСкладно аналізувати систему в ціломуВикористовуйте один центральний Workspace на середовище (dev/prod)
Занадто чутливі алертиПризводять до “втоми від сповіщень”Налаштуйте вікна оцінки (напр. “CPU > 90% стабільно протягом 10 хвилин”)
Відсутність лімітів на обсяг логівХмара може виставити великий рахунокНалаштуйте Daily Cap (щоденний ліміт) на обсяг логів у Log Analytics

1. У чому різниця між Метриками та Логами в Azure Monitor?

Метрики — це легкі числа (як спідометр в авто), вони показують, ЩО відбувається зараз. Логи — це детальні записи (як бортовий журнал), вони пояснюють, ЧОМУ це сталося.

2. Яку мову запитів використовує Log Analytics?

Вона використовує KQL (Kusto Query Language). Це стандарт для всіх інструментів моніторингу та безпеки в Microsoft Azure.


Практична вправа: Аналіз логів

Розділ «Практична вправа: Аналіз логів»
  1. Зайдіть у свій Log Analytics Workspace.
  2. Напишіть запит, щоб побачити всі події видалення ресурсів за останні 7 днів у таблиці AzureActivity.
  3. Створіть а alert rule, який надсилатиме вам лист, якщо хтось видалить віртуальну машину.
  4. Налаштуйте дашборд, який показує кількість помилок у вашому додатку за годину.

Переходьте до Модуля 3.11: CI/CD з Azure DevOps та GitHub Actions — ви навчитеся створювати автоматизовані конвеєри деплою, які безпечно доставляють ваш код в Azure.