Модуль 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 збирає дані з двох основних джерел:
- Metrics (Метрики): Числові дані у часі (напр. ”% CPU”, “кількість запитів”). Вони легкі, зберігаються 93 дні і ідеальні для графіків та швидких алертив.
- 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 barchartApplication Insights: Погляд всередину додатка
Розділ «Application Insights: Погляд всередину додатка»Application Insights — це частина Azure Monitor для розробників.
- Трасування: Ви можете бачити, як запит прийшов на фронтенд, звернувся до API, а той — до бази даних.
- Помилки: Система автоматично збирає stack traces ваших виключень (exceptions).
- Карта додатків: Візуальна схема зв’язків між вашими мікросервісами.
Alerts та Action Groups
Розділ «Alerts та Action Groups»Алерти перетворюють пасивні дані на активні дії.
- Condition: Що ми шукаємо? (напр. “CPU > 90%”).
- Action Group: Що робити? (надіслати Email, сповіщення в Slack, або запустити скрипт для перезавантаження сервера).
Azure Monitor Agent (AMA)
Розділ «Azure Monitor Agent (AMA)»Це програма, яку ви ставите на свої віртуальні машини. Вона дозволяє збирати не тільки хмарні метрики, а й внутрішні дані ОС: логи Nginx, системні події Syslog або лічильники продуктивності Windows.
Типові помилки
Розділ «Типові помилки»| Помилка | Чому це стається | Як виправити |
|---|---|---|
| Моніторинг тільки CPU | CPU не показує, чи задоволений юзер | Моніторте “Золоті сигнали”: 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.
Практична вправа: Аналіз логів
Розділ «Практична вправа: Аналіз логів»- Зайдіть у свій Log Analytics Workspace.
- Напишіть запит, щоб побачити всі події видалення ресурсів за останні 7 днів у таблиці
AzureActivity. - Створіть а alert rule, який надсилатиме вам лист, якщо хтось видалить віртуальну машину.
- Налаштуйте дашборд, який показує кількість помилок у вашому додатку за годину.
Наступний модуль
Розділ «Наступний модуль»Переходьте до Модуля 3.11: CI/CD з Azure DevOps та GitHub Actions — ви навчитеся створювати автоматизовані конвеєри деплою, які безпечно доставляють ваш код в Azure.