Статьи

Поддержка мониторинга докеров

Контейнеры и Докер — все в моде в эти дни. Фактически, контейнеры — с Docker в качестве ведущей реализации контейнеров — изменили способ развертывания систем, особенно тех, которые состоят из микросервисов. Несмотря на все это, Docker и другие контейнеры все еще относительно новы и еще не стали массовыми. При этом даже ранним пользователям Docker нужен хороший инструмент мониторинга, поэтому в прошлом месяце мы добавили  мониторинг Docker  в  SPM . Мы создали его поверх  spm-agent  — расширяемой среды для агентов на основе Node.js и в итоге  получили spm-agent-docker .

Мониторинг среды Docker является сложной задачей. Почему? Поскольку каждый контейнер обычно выполняет один процесс, имеет свою собственную среду, использует виртуальные сети или имеет различные методы управления хранилищем. Традиционные решения для мониторинга берут метрики от каждого сервера и приложения, которое они запускают. Эти серверы и приложения, работающие на них, как правило, очень статичны и имеют очень продолжительное время безотказной работы. Развертывания Docker отличаются: набор контейнеров может запускать множество приложений, все из которых совместно используют ресурсы одного хоста. Для серверов Docker нередко выполняются тысячи краткосрочных контейнеров (например, для пакетных заданий), в то время как набор постоянных служб работает параллельно. Традиционные инструменты мониторинга, не используемые в таких динамических средах, не подходят для таких развертываний. СЗМ, с другой стороны, был построен с учетом этого. Кроме того,совместное использование ресурсов контейнера требует более строгого соблюдения лимитов использования ресурсов, что является дополнительным вопросом, который необходимо внимательно отслеживать. Для внесения соответствующих корректировок в квоты ресурсов вам необходимо хорошо видеть любые ограничения, достигнутые контейнерами, или ошибки, которые они вызвали. Мы рекомендуем использовать оповещения в соответствии с установленными пределами; таким образом, вы можете настроить пределы или использование ресурсов еще до того, как начнут появляться ошибки.

Как мы получаем подробные метрики каждого контейнера?

Docker предоставляет удаленный интерфейс для статистики контейнера (по умолчанию предоставляется через сокет домена UNIX). Агент SPM для Docker использует этот интерфейс для сбора метрик Docker.

СЗМ для Докера

Агент SPM Docker, отслеживающий другие контейнеры, сам работает в контейнере Docker

Как развернуть мониторинг для Docker

Есть несколько способов запустить монитор Docker, в том числе:

  1. запустить его непосредственно на хост-компьютере («Сервер» на рисунке выше)
  2. запустить один агент для нескольких серверов
  3. запустить агент в контейнере (вдоль контейнеров, которые он отслеживает) на каждом сервере

SPM использует подход 3), также известный как «Docker Way». Таким образом, SPM для Docker предоставляется как  образ Docker . Это упрощает установку, не требует установки зависимостей на хост-машине по сравнению с подходом 1) и не требует настройки списка серверов для поддержки нескольких серверов Docker.

Как установить SPM для Docker

Это очень просто:  создайте приложение SPM  типа «Docker», чтобы получить токен приложения SPM (для $ TOKEN, см. Ниже), а затем запустите:

docker pull sematext/spm-agent-docker

и

docker run -d  -v /var/run/docker.sock:/var/run/docker.sock -e SPM_TOKEN=$TOKEN -e HOSTNAME:$HOSTNAME sematext/spm-agent-docker

Вы увидите свои показатели Docker в SPM примерно через минуту.

SPM для Docker — Особенности

Если вы уже знаете SPM, значит, вы знаете, что каждая  интеграция SPM  поддерживает все функции SPM. Однако, если вы новичок в SPM, эта сводка поможет:

  1. Готовые панели инструментов и неограниченное количество пользовательских панелей
  2. Многопользовательская поддержка с управлением доступом на основе ролей, совместное использование приложений и учетных записей
  3. Оповещения на основе пороговых значений для всех упомянутых выше показателей, включая  пользовательские показатели
  4. Обнаружение аномалий  на основе машинного обучения  по всем показателям, включая пользовательские показатели
  5. Оповещение по электронной почте, PagerDuty, Nagios и Webhooks (например, Slack, HipChat)
  6. Электронные подписки на запланированные отчеты о производительности
  7. Безопасный обмен графиками и отчетами с вашей командой или с общественностью
  8. Корреляция с бревнами, отправленными в  Логсен
  9. Диаграммы и корреляции с  произвольными событиями

Давайте продолжим с частью Docker:

  1. Простой в установке  агент докера
  2. Мониторинг нескольких Docker Hosts и неограниченного количества Контейнеров в ‘SPM Docker App’
  3. Предопределенные панели мониторинга для всех показателей хоста и контейнера
  • Метрики ОС хоста Docker
  • Подробные метрики контейнера

    • ЦПУ
    • Память
    • сеть
    • Метрики ввода / вывода
  • Пределы использования ресурсов

    • Время работы процессора
    • Ограничения памяти
  • Счетчики ошибок (например, для выделения памяти и сетевых пакетов)
  • Фильтрация и агрегация по хостам, изображениям, идентификаторам контейнеров и тегам

Докер-обзор-2SPM для Docker — предопределенная панель мониторинга «Обзор»

Контейнерные приложения обычно связываются с другими приложениями через открытые сетевые порты; вот почему сетевые метрики определенно входят в список горячих метрик, которые нужно отслеживать для Docker, и есть причина предоставлять такие подробные отчеты в SPM:

Docker-Network-Metrics

Вам понравилась эта небольшая экскурсия по мониторингу Docker? Тогда пришло время  практиковать это !

Мы высоко ценим обратную связь от ранних, поэтому , пожалуйста , не стесняйтесь  , напишите нам , DM нас на Twitter  @sematext  или общаться с нами через веб — чат в СОМ или на нашем сайте — мы здесь , чтобы получить контроль и управления. Если вы начинающий, свяжитесь с нами — мы предлагаем  скидки для стартапов !