Налаштування Azure Monitor і Log Analytics: повний посібник

Сліпі зони в інфраструктурі — часта причина, чому відмову виявляють користувачі, а не команда. Ми налаштовуємо Azure Monitor і Log Analytics під ключ: збираємо метрики та журнали з усіх джерел в єдину картину. Це скорочує час виявлення відмов у рази й знімає навантаження з чергових.
Часті запитання

Azure Monitor: де ламається спостережуваність на проді

Більшість упроваджень Azure Monitor ламається не через відсутність інструмента, а через те, як він зібраний. Агенти стоять на частині машин, діагностичні налаштування увімкнено вибірково за сервісами, частина метрик іде платформеними лічильниками, частина — власним збирачем.

На запитання «що відбувалося в ніч на середу» єдиної відповіді немає: дані розкладені по кількох робочих областях Log Analytics з різною глибиною зберігання та різними правами доступу.

Друге вузьке місце — час. Віртуальні машини, кластери та бази віддають записи в UTC, застосунок пише в локальній зоні, а частина сервісів — узагалі у своїй.

Під час розбору інциденту збір метрик і збір логів перестають стикуватися: кореляція зсувається на години, і інженер витрачає час на арифметику замість пошуку причини.

Третє — алерти. Поріг ставлять за середнім за довге вікно, правило агрегації з'їдає короткий пік, повідомлення йде в канал, у якому ніхто не чергує. Спрацювання надходить уже після того, як клієнти помітили збій: спостережуваність формально є, а виявлення інцидентів не працює.

Це лікується не новою панеллю, а структурою: єдина робоча область, правила збору даних із явним набором джерел, узгоджені часові пояси, пороги за хвостом розподілу та маршрутизація повідомлень за чергуваннями. Розбираємо, як це закривається.

Що змінюється після налаштування наскрізного збору метрик

Раніше картина складалася з розрізнених сигналів: метрики машин в одному місці, логи застосунку в іншому, помилки на вході — лише в журналі балансувальника. Проблема проявлялася тоді, коли її помічав користувач, а розбір починався із запитання «що взагалі зламалося». Це найдорожчий сценарій: поки збираєш дані по частинах, вікно відмови зростає.

Єдиний контур спостереження прибирає цю розвилку. Метрики, логи й трасування потрапляють у спільне сховище та зв'язуються за одними вимірами — ідентифікатором запиту, іменем сервісу, версією збірки, екземпляром вузла.

Azure Monitor працює тут точкою збірки: джерела підключаються узгоджено, а не набором окремих агентів.

Час виявлення змінюється першим. Пороги ставляться не на завантаження процесора, а на ознаки деградації сервісу — частку помилок, час відповіді на значущих маршрутах, довжину черги.

Сигнал надходить раніше, ніж відмову помічає користувач, і клас «дізналися від користувача» перестає бути основним джерелом заявок.

Розбір інциденту прискорюється з тієї ж причини. Наскрізне трасування показує шлях запиту через сервіси: замість послідовного перегляду п'яти панелей інженер бачить ділянку, де зросли час або помилки.

Кореневі причини підтверджуються даними — порівняння метрик до й після викочування відділяє регрес релізу від мережевого збою або відмови залежності.

Є й накопичувальний ефект: єдина ретенція метрик і логів залишає розбори минулих інцидентів відтворюваними. Повторювані відмови закриваються правилами моніторингу, а не знову знайденими причинами.

Режими збору даних і агенти: порівняння варіантів

Azure Monitor забирає телеметрію кількома незалежними шляхами, і вибраний шлях визначає не лише набір полів, а й схему таблиць у робочій області.

Помилитися тут дорого: частину даних потім не дозібрати заднім числом, а зміна способу збору на працюючому парку машин вимагає перерозгортання на кожному вузлі.

Рішення зводиться до трьох розвилок: чи потрібен доступ зсередини гостьової системи, чи дозволено прямий вихідний трафік у хмару і чи є власні джерела подій. Нижче — варіанти, між якими реально обирають.

Варіант Коли підходить Обмеження
Агент на вузлі Журнали системи та застосунків, лічильники, власні джерела Розширення обслуговується на кожній машині, потрібен вихідний доступ, оновлюється лише через політики
Збір без агента Платформенні журнали ресурсів, метрики сервісів, аудит змін Даних зсередини системи немає, набір полів заданий платформою, власні журнали недоступні
Проміжний шлюз Закриті сегменти без прямого виходу назовні, один потік на багато машин Шлюз — єдина точка відмови, обмежений за пропускною здатністю, частина типів даних через нього не йде
Зовнішній конектор Мережеві пристрої та сторонні системи, що віддають події потоком Потрібна нормалізація формату, затримка вища, усе залежить від стабільності каналу

Варіанти не взаємовиключні: на одному контурі зазвичай працюють два-три одразу. Перед розкаткою ми перевіряємо на пілотному вузлі, які поля надходять і з якою затримкою.

Етапи впровадження: від аудиту джерел до передачі

Роботи йдуть суворо за порядком: спочатку описуємо те, що вже є, потім проєктуємо маршрути даних і лише після цього вмикаємо оповіщення. Зворотний порядок дає шум у журналах, хибні спрацювання та панелі, якими ніхто не користується.

  1. Аудит інфраструктури та джерел. Обходимо підписки, віртуальні машини, кластери, бази та прикладні сервіси; позначаємо, хто вже віддає метрики й журнали, хто мовчить, де дані дублюються.
  2. Схема потоків даних. Для кожного джерела визначаємо робочу область, строк зберігання, розподіл за середовищами й командами, оцінюємо добовий обсяг надходження — реєстр не повинен зростати безконтрольно.
  3. Налаштування збору. Підключаємо агенти та діагностичні налаштування, задаємо єдині правила іменування таблиць і тегів, щоб запити однаково працювали в тестовому й робочому контурах.
  4. Правила оповіщень. Пороги рахуємо від фактичної базової лінії, а не на око: налаштовуємо важливість, маршрутизацію черговим і придушення дублів на час планових робіт.
  5. Перевірка на навчальному інциденті. У тестовому контурі навмисно валимо сервіс і дивимося весь шлях: чи спрацювала умова, за скільки хвилин надійшов сигнал, чи потрапив він до потрібного чергового.
  6. Передача в експлуатацію. Панелі, збережені запити, регламент ревізії порогів та інструкція з підключення нових джерел; навчаємо зміну й залишаємося на зв'язку в період супроводу.

Комплект постачання: конфігурації, схеми, регламенти

Комплект постачання — це не папка з файлами, а набір артефактів, за якими контур Azure Monitor можна передати іншій команді або відтворити в новому середовищі. Кожен документ прив'язаний до конкретної дії: розгорнути, перевірити, відкотити, розібрати інцидент.

Нижче — що саме залишається у вас на руках після введення в експлуатацію.

  • Файли конфігурації — декларативні описи робочих просторів, правил збору та строків зберігання телеметрії; повторне розгортання в новому середовищі відбувається без ручного налаштування.
  • Схема потоків телеметрії — які джерела що віддають, якими маршрутами йдуть дані, де фільтруються, де зберігаються і скільки живе кожен клас записів.
  • Політики доступу — кому й на якому рівні видно журнали, хто має право змінювати правила та видаляти дані; закріплено ролями, а не усними домовленостями.
  • Ролі інженерів — матриця «роль / зона відповідальності / необхідні права», за якою нова людина вводиться в контур за день, а не за місяць.
  • Опис правил оповіщення — умови, пороги, адресати й рівні важливості; окремо перелічено, які повідомлення навмисно не надсилаються, щоб чергового не будив шум.
  • Регламент чергування — графік, порядок ескалації, час реакції за рівнями критичності та обов'язкові дії перед передачею зміни.
  • Документація — інструкції з типових операцій: підключити новий сервіс, змінити правило, розібрати інцидент, відкотити конфігурацію до попередньої.

Кейс: як скоротили час виявлення відмов

Клієнт прийшов із розрізненим контуром спостереження: показники віртуальних машин — в одній панелі, журнали застосунків — в окремому сховищі, події черг і балансувальника — у пошті чергового.

Під час відмови інженер вручну звіряв три джерела, і до розуміння, що саме деградувало, минало 40-60 хвилин.

Що змінили

Ми звели все в єдиний контур на Azure Monitor і Log Analytics: один робочий простір для журналів, збір показників з вузлів, застосунків і мережевих сервісів, правила оповіщення, прив'язані до симптомів, а не до окремих лічильників.

Пороги виставили за відхиленням від базової лінії — нічні оповіщення перестали будити команду через штатні піки навантаження.

Додали робочі книги з готовими зрізами за типами відмов і маршрутизацію чергувань: повідомлення надходить тому, хто володіє сервісом, разом із посиланням на потрібний зріз.

Розбір інциденту замість збирання даних з нуля перетворився на перевірку готової хронології — від першого відхилення до відновлення.

Результат: середній час виявлення скоротився з 45 хвилин до 5-7, ручний розбір займає близько 20 хвилин замість двох годин, частка повторних збоїв упала приблизно втричі — кожен розбір закінчувався правилом, яке ловить той самий клас відмови заздалегідь.

Чим відрізняється Azure Monitor від Log Analytics?

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

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

Метрики — числові ряди з фіксованим кроком: завантаження вузла, кількість з'єднань, глибина черги. Їх пише сама платформа, віддаються вони за секунди й слугують основою для правил оповіщення та графіків.

Журнали подій — записи про те, що сталося, з довільною схемою; їх потрібно явно спрямовувати в робочу область через категорії діагностики.

Шар За що відповідає Коли використовувати
Метрики Числові ряди за ресурсами, швидкі сигнали Реакція на поріг: відмова вузла, зростання затримки
Журнали подій Довільні записи в робочій області Розбір інциденту, аудит, кореляція сервісів
Запити за логами Вибірка та зведення подій Зведення, пошук причини, тривале зберігання

Часта помилка — вивантажувати метрики в робочу область «на всякий випадок» і паралельно писати в журнали те, що там уже є. Обсяг прийому зростає вдвічі, а оповіщення за метриками все одно залишаються швидшими й надійнішими. Правило просте: лічильники — в метрики, контекст і текст — у журнали.

Зони відповідальності на стику діляться так: за метрику відповідає сам ресурс, за її збір — налаштування діагностики, за журнали — робоча область з її строком зберігання, доступами та складом категорій. Коли цей поділ зафіксовано в документації, черговий знає, де дивитися цифру, а де — причину.

Технічні сумніви та обмеження

Заперечення щодо впровадження моніторингу в Azure зазвичай одні й ті самі: чи доведеться перезбирати вже працюючі сховища логів, як стримати зростання обсягу і чи вистачить прав у команди. Нижче — прямі відповіді, з яких починаємо розбір задачі.

Ми вже збираємо логи іншим способом — доведеться все переписувати?

Збір налаштовується поруч із поточним джерелом: дані йдуть у робочу область, а старі колектори продовжують працювати, поки нові панелі не почнуть давати ту саму картину. Переводимо частинами — спочатку один контур, потім решту.

Як обмежити обсяг зберігання логів?

Строк зберігання задається для кожної таблиці окремо: діагностичні журнали тримаємо недовго, журнали безпеки — довше. Правила вибірки на боці джерела відсікають шум до запису, тому зростає не обсяг, а частка корисних подій.

Чи потрібно змінювати код застосунку?

Для базових метрик — ні, вони знімаються з платформи. Свої лічильники додаються штатною бібліотекою, без переписування логіки та зупинки сервісів — викочуємо разом із найближчим релізом.

Як розмежувати доступ за ролями?

Права видаємо на рівні підписки, групи ресурсів і конкретної робочої області: розробник бачить журнали свого сервісу, черговий — лише оповіщення, аудит не читає дані застосунків. Облікові записи заводимо через наявний каталог.

Обговоримо задачу та повернемося з планом

Розмова про моніторинг іде предметно, коли перед нею видно поточний стан інфраструктури. Готувати звіт не потрібно — достатньо того, що вже є під рукою: схеми, списки, історія збоїв.

Зберіть це до обговорення задачі, і ми повернемося не з уточнювальними питаннями, а з планом робіт та оцінкою строків.

  • Перелік сервісів: що працює, хто власник кожного ресурсу, які компоненти вже віддають метрики в Azure Monitor, а які залишаються «чорною скринькою».
  • Критичні сценарії: які ланцюжки (база, застосунок, зовнішній інтерфейс) ламаються першими, що вважається недопустимим простоєм, а що може зачекати до ранку.
  • Поточні способи оповіщення: куди надходять повідомлення, хто їх читає, за якими порогами вони спрацьовують і як часто виявляються хибними.
  • Карта залежностей між сервісами та відомі точки відмови — підійде навіть список зв'язків, намальований від руки.
  • Історія минулих збоїв: як помітили проблему, скільки зайняло відновлення, чого не вистачило для швидкої діагностики.
  • Обмеження: вимоги до зберігання даних, ролі доступу, що не можна змінювати без погодження і в які вікна допустимі роботи.

З цим набором ми визначимо, які метрики й журнали збирати, як розвести пороги за критичністю, куди маршрутизувати повідомлення і скільки зберігати історію. Опишіть задачу — повернемося з планом робіт, оцінкою строків і зрозумілою зоною відповідальності на кожному етапі.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142