Почему важен мониторинг? Команды разработчиков кодят быстрее, продукт нужно тестировать оперативнее, делать релизы скорее и не проседать в уровне качества. Но частые изменения кода влекут лавинообразный рост ошибок. Для получения полной картины необходимо иметь проактивный мониторинг ПО .
Инструменты для мониторинга
Хорошая мониторинговая платформа позволит отследить производительность всей системы и приложений локально, в облаке или в контейнерных средах. Эффективный набор инструментов повысит производительность и поможет сократить или даже устранить время простоя. Вы сможете планировать обновления и новые проекты, лучше распределять время и другие ресурсы, а самое важное – обнаруживать и решать проблемы до того, как их увидит пользователь.
Инструменты:
- Sensu – гибкое и масштабируемое решение для проверки работоспособности телеметрии и служб. Используется для мониторинга серверов, контейнеров, приложений, функций и подключенных устройств.
- Prometheus – инструмент со встроенной базой данных, использующий pull-метод для сбора информации.
- Nagios – старый надёжный инструмент для мониторинга компьютерных систем и сетей с открытым исходным кодом, задавший моду на мониторинг у целого поколения инженеров.
Ресурсы:
- Про сервисы Nagios (и то, как их использовать в Sensu).
- Плюсы и минусы Prometheus для мониторинга Kubernetes.
- Автоматизируем рабочий процесс мониторинга.
Управление конфигурациями
Средства управления
конфигами позволяют автоматизировать подготовку и развертывание систем,
принудительно применять требуемые конфигурации и устранять баги. Моделируя инфраструктуру кода, вы можете применять контроль версий, автоматизированное
тестирование и непрерывную доставку в приложения. Автоматизация рутинной, подверженной ошибкам работы приводит к повышению скорости, предсказуемости и масштабируемости. Также обеспечиваются стандартизированные конфигураций в test
, dev
и prod
средах.
Инструменты:
- Ansible – инструмент на Python. Применяется без агента и использует императивный подход.
- Chef – инструмент на Ruby, императивный подход управления конфигурациями.
- Puppet – декларативный подход, использует специфичный «доменный» язык и архитектуру агент/мастер.
Ресурсы:
- Введение в использование Chef для автоматизации управления инфраструктурой.
- Применение принципов инфраструктуры к тестированию и мониторингу.
Инструменты оповещения
Система оповещения должна быть достаточно чувствительной, чтобы реагировать на перебои, но не настолько чувствительной, чтобы спамить вас сообщениями о мелких падениях, которые не заметят пользователи. Инструменты оповещения помогают заложить основу для политик безопасности, а также настроить: кого уведомлять, как мониторить и как устанавливать приоритеты восстановления.
Инструменты:
- PagerDuty – ситуационная платформа управления с дополнениями для аналитики, анализа событий и автоматического реагирования на инциденты.
- ServiceNow – использует автоматизированные рабочие процессы для ITSM (IT Service Management), обслуживания клиентов и бизнес-процессов.
- Slack – можно повесить оповещения на ту же платформу, которую вы используете для групповых чатов и совместной работы.
Ресурсы:
- Как отправлять оповещения в Slack через Sensu
- Как использовать фильтры Sensu, чтобы уменьшить чувствительность срабатывания
- Руководство для смягчения чувствительности предупреждений
Метрики
Как только вы автоматизируете управление конфигурацией, настроите оповещение и мониторинг, в вашем распоряжении будут данные, которые можно анализировать. Встает вопрос: «как надежно хранить и анализировать информацию?». Нужна система хранения, которая позволит объединять и изучать показатели системы, поведение пользователей, уровень обслуживания и риски.
Информация, получаемая из метрик, помогает принимать решения на всех уровнях бизнес-процесса, улучшая вашу способность соответствовать SLA (Service Level Agreement), удовлетворять ожидания клиентов и обосновывать потребность в инвестициях.
Инструменты:
- InfluxDB – база данных для работы с временными рядами, подходящая для долгосрочного хранения данных.
- Splunk – использует модель базы данных, как в поисковых системах.
Ресурсы:
- Создаем пайплайн на Sensu и InfluxDB
- Извлечение метрик с помощью InfluxDB и Grafana
Визуализация
Инструменты визуализации могут рассматриваться в качестве основы для набора инструментов, используемых при мониторинге. Вы можете объединять данные, сортировать и визуализировать их в различных панельках. Тонкая настройка позволит команде создавать и совместно использовать собственные наработки в области мониторинга.
Инструменты:
- Grafana – может использоваться поверх различных хранилищ данных, включая Graphite, InfluxDB и Elasticsearch.
Ресурсы:
- Пример совместного использования Sensu, InfluxDB и Grafana
- Как визуализировать метрики с помощью Grafana
Следующие шаги: оценка текущих инструментов
Независимо от того, где вы находитесь в своем DevOps-путешествии, разумно пересмотреть текущую ситуацию и определить места, в которых можно что-то изменить. Подборка инструментов DevOps и метод их использования определяет ваши привычки, культуру командной работы, качество вашего продукта и ценность, которую вы приносите своим пользователям.
Мы будем рады, если вы расскажите в комментариях, какие инструменты для DevOps используете вы сами.
Комментарии