Налаштування GCP Cloud Monitoring і Cloud Logging для спостережуваності

Збої в хмарі видно, а причину — ні: метрики розрізнені, журнали не пов’язані з подіями, оповіщення надходять із запізненням. Ми налаштовуємо Cloud Monitoring у GCP під ключ: збираємо метрики й журнали з усіх сервісів, зводимо їх в єдину картину та виводимо чергових на потрібні сигнали. Час виявлення збою скорочується з годин до хвилин.
Часті запитання

Чому Cloud Monitoring у GCP не показує причину збою

Типова картина: графіки в Cloud Monitoring заповнені, оповіщення спрацьовують, але на запитання «чому в частини користувачів падають запити» відповіді немає.

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

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

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

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

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

Розбираємо, як це закривається: єдина схема міток, зв’язка метрик, логів і трасувань за ідентифікатором запиту, оповіщення за симптомами зі зрозумілим власником і панель, яка за хвилину відповідає, що саме зламалося.

Що дає наскрізна спостережуваність: метрики, журнали, оповіщення

У Google Cloud метрики, журнали й оповіщення живуть в одному контурі: у низки метрик, запису журналу й правила оповіщення спільний набір міток — сервіс, середовище, версія. Тому стан окремого сервісу збирається одним фільтром, а не перемиканням між розрізненими панелями.

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

Ключова зв’язка — кореляція журналів із метриками. Графік відповідає на «що зламалося»: зросла затримка, впала частка успішних відповідей.

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

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

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

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

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

Режими збору метрик: агент, вбудовані засоби, власний збирач

Три режими відрізняються не зручністю, а тим, хто відповідає за доставку телеметрії.

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

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

Варіант Коли підходить Обмеження
Вбудовані засоби Керовані сервіси, балансувальники, бази, контейнерні платформи Набір метрик фіксований, частоту знімання не задати, глибини за процесами немає
Агент на вузлах Віртуальні машини, потрібен зріз за диском, пам’яттю, чергами процесів Потребує однакового встановлення й оновлення, свої мітки, затримки під час збою доставки
Власний збирач Нестандартні джерела, кілька середовищ, перетворення метрик на вході Експлуатація й оновлення на вашому боці, вищий поріг входу, потрібен контроль відмов

Що обмежує збір

Головне обмеження у всіх трьох варіантів одне — кардинальність міток. Зайва розмірність на кшталт ідентифікатора запиту перетворює десяток рядів на мільйони й робить вибірки за історією повільними.

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

Порядок впровадження: від аудиту до передавання регламентів

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

  1. Аудит спостережуваності. Збираємо перелік сервісів, середовищ і власників: де метрики ввімкнено за замовчуванням, де логи пишуться в нікуди, які оповіщення дублюються, а які мовчать. Результат — карта прогалин із пріоритетами.
  2. Схема збору даних. Вирішуємо, що знімаємо штатними метриками, що добираємо з логів, а які записи виключаємо, щоб сховище не росло на смітті. Фіксуємо єдиний словник міток і межі доступу за проєктами.
  3. Налаштування збору й панелей. Розгортаємо агенти в Google Cloud, налаштовуємо політики зберігання та вибірки, збираємо дашборди: оглядовий за сервісами й детальний за вузлами.
  4. Пороги оповіщень. Будуємо політики від симптомів до причин: спочатку те, що відчуває користувач, потім ресурси, які до цього призвели. Задаємо рівні важливості, вікна придушення й маршрутизацію за чергуваннями.
  5. Перевірка оповіщень. Проводимо навчальний збій: гасимо вузол або ллємо помилки в лог і дивимося, чи спрацювала політика, чи дійшла до чергового і за який час. Хибні спрацювання правимо до передавання.
  6. Передавання регламентів. Віддаємо документацію: що налаштовано, чому пороги саме такі, як підключити новий сервіс і куди йти при спрацюванні.

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

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

  • Конфігурації моніторингу — правила перевірок доступності, пороги за затримкою та часткою помилок, групування ресурсів і умови агрегації. Зберігаються як код у вашому репозиторії, а не лише у вебконсолі.
  • Схеми потоків даних — звідки надходять метрики й логи, через які ланки проходять, де зберігаються і через скільки витісняються, зі строками зберігання за кожним типом.
  • Політики доступу до метрик — ролі для чергових, розробників і підрядників, розділення прав на читання й на зміну правил, службові облікові записи замість особистих.
  • Регламент чергувань — рівні критичності, кому і в який строк надходить повідомлення, що вважаємо хибним спрацюванням і коли правило переписують.
  • Документація супроводу — як додати нову перевірку, як відкотити правку і що робити, якщо система замовкла й перестала надсилати дані.
  • Інструкції щодо частих інцидентів — покрокові сценарії на 4-6 типових відмов: що дивитися і як підтвердити відновлення.
  • Карта володіння — хто відповідає за кожне правило й канал повідомлень, коли переглядаються пороги і як передаються при зміні відповідального.

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

Кейс: скорочення часу виявлення збою з годин до хвилин

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

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

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

Що змінили

Звели метрики, логи й трасування в єдиний контур спостережуваності на Cloud Monitoring і Cloud Logging, зі спільними мітками сервісу, середовища й версії релізу. Правила переписали на ознаки, які відчуває користувач: частка помилок, час відповіді, доступність критичних сценаріїв.

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

Метрики до і після

Час виявлення інциденту — з 3-4 годин до 5-7 хвилин, частка хибних спрацювань — із 70% до 12-15%. Частка інцидентів, про які команда дізналася раніше за користувачів, зросла з 20% до 85%.

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

Це і є практична цінність кейсу спостережуваності: не панелі заради панелей, а передбачуваний час реакції.

Чим збір метрик агентом відрізняється від вбудованих засобів

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

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

Агент збору метрик потрібен там, де починається застосунок. Це процес на хості або поруч із контейнером: він забирає показники в самого сервісу та його збирачів і надсилає їх у те саме сховище, що й платформні.

Тільки так з’являються довжина черги, час відповіді зовнішньої залежності, частка помилок на конкретному обробнику, мітки з версією збірки та середовищем.

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

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

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

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

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

Обмеження й технічні сумніви перед стартом

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

Інфраструктура неоднорідна — збирач стане на все?

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

Журнали займуть усе сховище?

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

Які права видавати і чи не відкриємо зайвого?

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

Коли зусилля окупляться?

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

Обговоримо задачу: які дані потрібні для плану робіт

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

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

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

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

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

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

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