Моніторинг серверів і сервісів з TICK Stack

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

Огляд буде корисна системним адміністраторам, фахівцям DevOps, клієнтам, які співпрацюють з ІТ-сервісами та розробникам.

TICK Stack — безкоштовний комплекс програм, простий у використанні і гнучкий у налаштуванні, з механізмом агрегації і зручними кастомизируемыми функціями вибору.

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

Структура TICK Stack

Це ядро з відкритим вихідним кодом або стек TICK, що складається з чотирьох модулів: Telegraf, InfluxDB, Chronograf і Kapacitor.

Розглянемо кожен компонент окремо.

Telegraf

Telegraf — керований плагіном сервер для збору показників та звітності. Telegraf інтегрується з різними метриками, подіями і логами, звертаючись безпосередньо до контейнерів і систем, у яких він працює, дістає метрики з сторонніх API або навіть прослуховує показники через сервіси ConsumerD і Kafka. Він також має вихідні плагіни для відправки показників в безліч інших сховищ даних, служб та query-повідомлень, включаючи InfluxDB, Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ.

InfluxDB

InfluxDBTime Series Database , побудована з нуля, для обробки високих навантажень на запис і запит. InfluxDB — це спеціалізоване високопродуктивне сховище даних, написаний спеціально для тимчасових даних (моніторинг DevOps, метрики додатків, дані датчика IoT та аналітика в реальному часі). Воно дозволяє зберегти простір на своєму комп'ютері, налаштовуючи InfluxDB для зберігання даних протягом певного періоду часу і по його закінченню — автоматичного видалення будь-яких небажаних даних з системи. InfluxDB використовують мову запитів, подібний SQL, для взаємодії з ними.

Chronograf

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

Kapacitor

Kapacitor — власний механізм обробки даних. Він може обробляти як поточні, так і пакетні дані від InfluxDB. Kapacitor дозволяє підключати власну власну логіку або користувальницькі функції для обробки сигналів з динамічними порогами, зіставлення показників для шаблонів, обчислення статистичних аномалій і виконання певних дій на основі цих попереджень, таких як динамічна перебалансування навантаження. Kapacitor інтегрується з HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack і т. д.

Як це працює

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

За допомогою інструменту ми можемо перевірити: CPU, RAM місце на жорсткому диску, інтенсивність мережевого трафіку, кількість сполук з веб-сервером, запити на сайти, MS SQL запити, кількість операцій запису і читання, RabbitMQ.

Якщо вам потрібна додаткова функціональність, можна обновити інструмент плагінами з list of opportunities .

Системні характеристики сервера

Цей борд показує використання CPU, використання диска, Lead, Memory Gigabytes Used, Network Mb і т. д.

Борд моніторингу Linux, що показує стан з'єднання, вільний простір в оперативній пам'яті трьох серверів і кількість активних підключень до веб-сервера. Останнє не є стандартною налаштуванням, але ми хочемо відстежувати, скільки запитів приходить на сайт. І можемо перевірити це таким способом.

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

Вище наведені діаграми двох серверів Windows: процесор і оперативна пам'ять. Це три графіка з трьома параметрами для двох серверів (шість параметрів), які одночасно демонструються на екрані.

Залежно та прогнозування

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

Наприклад, можна створити графік подій за певний період, щоб проаналізувати, що відбулося протягом дня, тижня, місяця.

Проста і настроюється система оповіщень

TICK дозволяє налаштувати повідомлення через зручні канали, які будуть відповідати задачам конкретної системи моніторингу та підтримки. Оповіщення можуть бути спрямовані в Slack, Page Duty, Telegram і так далі.

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

Можна автоматизувати усунення деяких збоїв (наприклад, переповнення буфера оперативної пам'яті, очищення кеша веб-сервера і т. д.) через скрипти сповіщень.

Так виглядає класифікація алертів для сповіщень з регульованою системою пріоритетів (низький та високий пріоритет алерта).

Як працює пріоритетність алертів

Попередження з'являється в спеціальному каналі в Slack. Це дуже зручно. Не потрібно відкривати додатковий додаток або браузер. Slack широко використовується.

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

Пріоритизація алертів дозволяє фільтрувати нетермінові оповіщення для неробочих годин. Але понад важливі алерти, несвоєчасна реакція на які піддає ризику інфраструктуру або репутацію компанії, система (за бажанням користувача) може відправляти в неробочий час. Таким чином, ви швидко реагуйте на загрозу навіть в 2 години ночі, якщо Галактика в небезпеці.

Хто може використовувати TICK

TICK - корисний технічний стек для таких фахівців:

Розробники

Велика кількість плагінів, таких як: MySQL,MS SQL. Elastic Search, RabbitMQ і інші — можуть допомогти розробникам відстежувати вузькі галузі використання програмного забезпечення і підвищувати ефективність роботи.

Адміністратори

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

Клієнти

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

Висновок

Система дозволяє контролювати великий парк серверів. Метод розгортання досить простий і може бути автоматизований за допомогою Ansible або іншого агрегатора. Функція вибору показників дозволяє створювати інформативні графіки, швидко аналізувати і прогнозувати ризики.

Опубліковано: 16/11/18 @ 11:50
Розділ Сервіси Хостинг

Рекомендуємо:

Вибір професії бізнес-аналітика: плюси, мінуси і що вас чекає
Senior у пошуках роботи. Як я пройшов 20 співбесід з HR і що про це думаю
Просадка Google на мед сайтах. Куди копати?
Огляд Karate – фреймворку для автоматизації тестування API
Від збору паперу до сонячної електростанції на терасі. Екоініціативи українських ІТ-компаній