Для чого потрібен моніторинг? Огляд сервісу ХостТрекер

Компанія ХостТрекер є одним з лідерів ринку по наданню послуг моніторингу сайтів і різних веб сервісів. Вона має безліч різноманітних інструментів, які постійно удосконалюються з урахуванням тенденцій часу. Як з'явилася компанія? Чому виникає потреба в моніторингу? Як він може допомогти при розробці та тестуванні сайтів і серверів? Цей огляд розкриє суть питань, а також покаже, як просте бажання оптимізувати свою роботу може трансформуватися в корисний для інших продукт, а також як не втратити дух стартаперства і завжди крокувати в ногу зі своїми клієнтами.



Вступ, або історія стартапу
Кожному, причетному до сфери ІТ, знайоме почуття, коли начебто ідеально налаштований сервер (сайт, база, програма, мережа) раптом перестають працювати так, як треба. Пошук проблеми може зайняти тривалий час, протягом якого, звичайно ж, це неподобство буде тривати. Або регулярно відбуватися. Чи не буде відбуватися – але від цього тільки гірше: бо коли ж це незрозуміле щось вилізе іншого разу? А якщо саме в момент передачі проекту клієнту? Десь з таких роздумів і з'явився ХостТрекер. Його батько-засновник домагався хорошої роботи від об'єктів своєї основної діяльності, і вирішив автоматизувати процес моніторингу. Якби на той момент (суворе початок нульових) були надійно працюють сервіси моніторингу – цілком можливо, ХостТрекер ніколи б не з'явився. А так довелося писати простенький скрипт для перевірок свого зоопарку сайтів. Та ось біда – у простенького скрипта траплялися ті ж проблеми, що були згадані на початку цього абзацу. Він не завжди працював, і не завжди правильно. Довелося скрипт трохи оптимізувати і зробити більш надійним, в тому числі шляхом дублювання і розподілу на декількох машинах. Після низки оптимізацій прийшла думка, що це може бути корисним комусь ще, і ХостТрекер став публічним. А після появи безлічі клієнтів – з'явилася ідея монетизувати витрачені зусилля. Тобто з'явився наш сервіс для вирішення суто особистих завдань, але в процесі розвитку став доступний іншим, щоб допомогти їм вирішити ті проблеми, які свого часу стояли перед нами. Не у всіх же є час написати простенький скрипт. А потім ще трохи дописати. А потім трохи оптимізувати.

Моніторинг: суть
Ця частина огляду повідає про найбільш популярною функції – регулярна перевірка для негайного виявлення виникаючих проблем з сайтом або інший сутністю, доступною з мережі. Ці перевірки можуть працювати за різними протоколами: http(s), icmp (він же пінг), port (перевірка будь-якого порту TCP) і деякі інші. Для початку зазначимо, що є різні підходи до моніторингу. Існує внутрішній моніторинг — коли стан сайту оцінюється за рахунок, розміщеного на цьому ж сервері. Умовно сюди можна віднести також такі інструменти, як Яндекс.Метрика — вбудована в код сторінки скрипт відсилає інформацію про клієнтів, які зайшли на сайт, і може робити непрямі висновки про працездатність сайту. Інший тип моніторингу — зовнішній, або, як виражаються юристи, «моніторинг третьою особою». Він полягає в имитировании заходу на сайт реальними користувачами з реальних адрес, і робить висновки з цим відповідей сервера на посилають запити. Саме про цьому методі далі і піде мова.

Інфраструктура, або як це влаштовано


Найбільш просто її можна розділити на дві складові: «внутрішню» і «зовнішню». Перша розміщена у хмарі і складається з обчислювальних серверів, баз даних, файлових сховищ та інших компонентів. Все це належить і управляється безпосередньо співробітниками компанії ХостТрекер. Друга складова – це ноди, або агенти, які розміщені по всьому світу і виконують роль незалежних ревізорів серверів, на кшталт «таємного покупця» в магазинах. Вони проводять перевірки сайтів та інших об'єктів, що перевіряються шляхом створення стандартних для перевіряється протоколу запитів. Якщо це перевірка веб-сайту, то створюються звичайні http запити, які нічим не відрізняються від реальних запитів відвідувачів сайту. Ці сервера є повністю незалежними один від одного і від внутрішньої складової системи. Все, що вони роблять – це отримують від центрального сервера список сайтів для перевірки, і віддають йому результат перевірок. Частина цих серверів орендується ХостТрекером, але більшість належить партнерам, які надають їх на безоплатній основі або зі значною знижкою, натомість на зворотні посилання або знижки на наші послуги. Або просто по дружбі.

Такий розподіл інфраструктури обумовлено алгоритмом роботи сервісу моніторингу.

Алгоритм роботи сервісу
Регулярні перевірки відбуваються з визначеним клієнтом інтервалом, починаючи від 1 хвилини. Коли підходить час перевірки, сервер посилає завдання на один, випадково певний, агент – частина зовнішньої мережі ХостТрекера. Він виробляє перевірку за вказаним протоколом та надсилає тому відповідь перевіряється сервера. Ці результати обробляються вже на внутрішній стороні. Якщо відповідь позитивна – нічого не відбувається, просто з'являється запис у базі (клієнту вона доступна у вигляді лода перевірок). Якщо ж раптом помічена помилка – тоді негайно створюються завдання з перевірки цього сайту ще кількома, знову ж, випадково вибраними, серверами із загальної мережі. Тоді вже аналізується відповідь всіх цих серверів. Якщо помилка не підтверджена більшістю серверів – то це залишається в балці, але зберігається спокій. Всяко буває: лад мережі, перевантаження запитами, хабраэффект, в кінці кінців. Якщо ж більшість або всі агенти підтверджують помилку – тоді робиться припущення, що біда настала і проблема серйозніша – швидше за все, у цей момент багато людей не можуть потрапити на сайт. А майже для всіх комерційних сайтів це вже пряма втрата грошей.



Обробка помилок і оповіщення клієнтів
В залежності від налаштувань, після виявлення проблеми може відбуватися безліч різних речей. Відразу ж відбувається первинна діагностика проблеми: записується код помилки, якщо є, або відповідь протоколу. За цими даними часто можна будувати припущення про причини помилки: помилка мережі, помилка сервера або що-небудь ще. Але в першу чергу, як правило, клієнт зацікавлений в тому, щоб дізнатися про проблему. Для цього існує можливість зареєструвати свій телефон, електронну пошту або інший канал комунікації для отримання сповіщень від ХостТрекера. Вони можуть бути надіслані різним людям, на різні контакти і в різний час. І тут є багато цікавих особливостей. Звичайно, повідомлення може бути надіслано негайно, що найчастіше і робиться. Але вимогливого клієнта цим важко задовольнити. По-перше, виявляється, є «неважливі» сайти, унаслідок короткочасного простою яких негарно будити шановного адміна. По-друге, є «важливі» люди, яких негарно турбувати з-за кожного чиха. Тому ХостТрекер пропонує функцію ескалації сповіщень – висилати оповіщення на конкретний адресу тільки через деякий час після падіння сайту, якщо він до того часу не самовосстановился. Також, для кожного контакту є можливість створювати «робочий графік» — задавати інтервал часу, протягом якого на нього можна слати оповіщення. В інший час ХостТрекер турбувати цієї людини не буде. Це теж виявилося зручним для деяких клієнтів. Наприклад, дана конфігурація забезпечить оповіщення цієї людини з 8 до 19 години в робочі дні у тих випадках, коли сайт «лежить» годину і більше:


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

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.