Поиск по сайту:

Как отслеживать контейнеры Docker с помощью инструмента мониторинга Zabbix


Docker, пожалуй, один из самых популярных инструментов DevOps, упрощающих разработку, развертывание и доставку приложений внутри контейнеров.

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

Благодаря этому приложение может работать практически в любой вычислительной среде; традиционная ИТ-инфраструктура, облако и множество разновидностей Linux/UNIX.

Мониторинг контейнеров помогает оперативным группам выявлять основные проблемы и своевременно их решать. Мониторинг контейнеров включает в себя сбор основных показателей, таких как использование ЦП, использование памяти, размер контейнера и использование полосы пропускания, и это лишь некоторые из них. Кроме того, вы можете собирать журналы в режиме реального времени, которые помогают при отладке и предупреждают ИТ-команду о необходимости масштабирования.

Zabbix — это популярный инструмент мониторинга ИТ-инфраструктуры, который отслеживает практически каждый элемент вашей среды, включая физические устройства, такие как серверы, и сетевые устройства, такие как маршрутизаторы и коммутаторы. Он также может отслеживать приложения, службы и базы данных.

В этом руководстве мы покажем вам, как можно отслеживать контейнеры Docker с помощью инструмента мониторинга Zabbix в Linux.

Требования

Вот что вам нужно, прежде чем начать:

Прежде всего убедитесь, что у вас есть два узла. Первый узел — это сервер Zabbix. Это узел, с которого мы будем отслеживать удаленный сервер Docker. У нас есть статья:

  • Как установить Zabbix на Rocky Linux и AlmaLinux
  • Как установить инструмент мониторинга Zabbix в Debian 11/10
  • Как установить Zabbix на RHEL 8
  • Как установить Zabbix в Ubuntu

Второй узел — это сервер Docker, на котором установлен Docker. Это узел, откуда мы будем запускать контейнеры Docker и отслеживать активность контейнера.

  • Как установить Docker на Rocky Linux и AlmaLinux
  • Как установить и использовать Docker в Ubuntu 20.04
  • Как установить Docker в CentOS и RHEL 8/7

Затем убедитесь, что у вас есть доступ по SSH к вашему узлу сервера Docker с уже настроенным пользователем sudo.

Теперь, когда все готово, вы можете засучить рукава!

Шаг 1. Установите Zabbix-агент в Linux

Чтобы отслеживать контейнеры Docker на удаленном сервере, вам необходимо установить агент Zabbix, который представляет собой агент мониторинга, который развертывается на целевом узле для активного мониторинга системных показателей и других данных. Приложения.

Сначала вам необходимо установить репозиторий Zabbix на узле Docker.

----------- On Ubuntu 20.04 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo apt update
sudo apt install zabbix-agent2

----------- On RHEL-based Distro ----------- 
sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
sudo dnf update
sudo dnf install zabbix-agent

----------- On Debian 11 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian11_all.deb
sudo dpkg -i zabbix-release_5.4-1%2Bdebian11_all.deb
sudo apt update
sudo apt install zabbix-agent2

----------- On Debian 10 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian10_all.deb
sudo dpkg -i zabbix-release_5.4-1%2Bdebian10_all.deb
sudo apt update
sudo apt install zabbix-agent2

Шаг 2. Настройте Zabbix-агент в Linux

По умолчанию агент Zabbix настроен на отправку метрик на сервер Zabbix на том же хосте, на котором он установлен. Поскольку нашей целью является мониторинг контейнеров docker на удаленном сервере, необходимы некоторые дополнительные настройки.

Поэтому получите доступ к файлу конфигурации агента Zabbix.

sudo vim /etc/zabbix/zabbix_agent2.conf

Файл конфигурации содержит настройки, которые определяют адрес, на который отправляются метрики, порт, используемый для соединений, и многое другое. По большей части настройки по умолчанию будут работать нормально.

Чтобы настроить агент Zabbix для отправки метрик на сервер Zabbix, найдите директиву, которая настроена на отправку метрик на адрес обратной связи или, проще говоря, в ту же хост-систему.

Server=127.0.0.1

Установите адрес, отражающий адрес сервера Zabbix.

Server=zabbix-server-IP

Кроме того, перейдите в раздел «Активные проверки» и измените директиву, чтобы она указывала на IP-адрес сервера Zabbix.

ServerActive=zabbix-server-IP

Обязательно также соответствующим образом измените имя хоста сервера Docker. Имя хоста моего сервера Docker — Ubuntu20.

Hostname=Ubuntu20

Затем сохраните изменения и выйдите из файла конфигурации Zabbix.

Чтобы агент Zabbix мог следить за контейнерами Docker, вам необходимо добавить пользователя Zabbix, который установлен по умолчанию, в группу docker.

sudo usermod -aG docker zabbix

Чтобы применить изменения, внесенные в файл конфигурации, перезапустите службу Zabbix-агента и включите ее запуск при старте системы.

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

Подтвердите рабочий статус агента Zabbix следующим образом.

sudo systemctl status zabbix-agent2

Агент Zabbix прослушивает порт 10050. Если у вас работает брандмауэр UFW или firewalld, рассмотрите возможность открытия порта следующим образом.

----------- On UFW Firewall ----------- 
sudo ufw allow 10050/tcp
sudo ufw reload

----------- On Firewalld ----------- 
sudo firewall-cmd --add-port=10050/tcp --permanent
sudo firewall-cmd --reload

Большой! Сейчас мы находимся на полпути. Агент Zabbix теперь может отправлять метрики контейнера Docker на сервер Zabbix.

На следующем шаге мы добавим сервер Docker в веб-интерфейс Zabbix и будем отслеживать контейнеры Docker.

Шаг 3. Добавьте Docker на Zabbix сервер для мониторинга.

Для мониторинга удаленного хоста вам необходимо добавить его в панель управления сервера Zabbix через браузер. Zabbix предоставляет множество шаблонов для различных сервисов и приложений. Мы свяжем соответствующий шаблон с хостом Docker для мониторинга контейнеров. Но сначала зайдите на страницу входа на сервер Zabbix.

http://zabbix-server-ip/zabbix

После входа в систему перейдите на правую боковую панель и нажмите «Конфигурация», затем «Хосты».

В правом верхнем углу нажмите «Создать хост».

Введите данные о сервере Docker, например имя хоста и видимое имя. Для групп введите «Docker Groups» (каждый хост должен быть связан с группой).

Под меткой «Интерфейсы» нажмите «Добавить» и в появившемся меню выберите «Агент».

Затем укажите частный IP-адрес сервера Docker и убедитесь, что для порта установлено значение 10050.

Затем перейдите на вкладку Шаблоны и в разделе «Связывание новых шаблонов» укажите «Docker от Zabbix Agent 2». Затем нажмите кнопку «Добавить».

Когда вы нажмете кнопку «Добавить», удаленный хост Docker будет автоматически добавлен, как указано.

На этом этапе сервер Zabbix теперь контролирует ваш сервер Docker. На следующем этапе мы развернем контейнер и проверим, какие метрики можно отслеживать.

Шаг 4. Мониторинг метрик Docker в мониторинге Zabbix

Чтобы начать мониторинг метрик Docker, мы запустим тестовый контейнер. Итак, вернитесь на свой сервер Docker и запустите контейнер.

В этом примере мы возьмем образ контейнера Ubuntu и создадим контейнер с именем docker_test_container. Затем мы получим доступ к оболочке, используя опцию -it. Вся команда для операций выглядит следующим образом.

sudo docker run --name docker_test_container -it ubuntu bash

Вы можете попробовать что-то амбициозное, например установить пакеты программного обеспечения, такие как Apache или MariaDB, чтобы получить некоторые показатели, такие как загрузка ЦП и сетевой трафик.

Теперь вернитесь к панели управления сервером Zabbix. Нажмите «Мониторинг», затем «Хосты». Нажмите на имя вашего сервера Docker и в появившемся меню выберите «Последние данные».

Через несколько минут после развертывания контейнера сервер Zabbix обнаружит контейнер и начнет заполнять некоторую статистику.

Вы также можете просмотреть графики различных показателей контейнера, щелкнув параметры «графики» сервера Docker на странице «Хосты». Ниже вы можете увидеть показатели использования ЦП и памяти.

Чтобы смоделировать сбой контейнера, мы неожиданно выйдем из контейнера, выполнив приведенную ниже команду в оболочке контейнера.

exit 2

Это означает, что мы завершили работу контейнера с кодом ошибки 2. Это записывается в метаданных контейнера. Чтобы просмотреть оповещение, перейдите на левую боковую панель и нажмите «Мониторинг», затем «Панель управления».

Предупреждение отображается ниже.

Чтобы исправить ошибку, просто запустите контейнер заново.

sudo docker start docker_test_container 

И это подводит нас к концу этого руководства. Мы представили вам пошаговую процедуру мониторинга контейнеров Docker с помощью инструмента мониторинга Zabbix.