Мониторинг Docker и его контейнеров с помощью Zabbix

В данной заметке разберем как мониторить Docker и всех его контейнеров с помощью Zabbix Agent 2, я буду использовать Zabbix Server 6.4 и VPS с Debian 12, с парочкой развернутых контейнеров Docker

Настройка мониторинга Docker с помощью Zabbix

1. Начнем с установки и первоначальной настройки Zabbix Agent 2 на целевом хосте где находится Docker , я буду устанавливать на Debian 12:

wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.debdpkg -i zabbix-release_6.4-1+debian12_all.debapt updateapt install zabbix-agent2 zabbix-agent2-plugin-*systemctl restart zabbix-agent2systemctl enable zabbix-agent2

2. Открываем конфигурационный файл zabbix_agent2.conf:

nano /etc/zabbix/zabbix_agent2.conf

Находим, раскомментируем и заполняем пункты ниже:

  • Server=IP вашего Zabbix сервера
  • ServerActive=IP вашего Zabbix сервера для активных проверок
  • Hostname=Указываем наш hostname или другое осознанное название, которое будет использоваться для идентификации нашей машины на Zabbix-сервере.

Сохраняем и перезапускаем службу Zabbix agent 2:

systemctl restart zabbix-agent2

3. С Zabbix сервера делаем проверку zabbix get до нашего хоста с Docker, что бы убедится что у пользователя Zabbix есть права доступа к сокету Docker (иначе все проверки завалятся в ошибки):

zabbix_get -s IP_ZABBIX.AGENT2 -k docker.infoDocker мониторинг с помощью ZabbixПроверка доступа к сокету Docker пользователя Zabbix

Если получаем ошибку такого вида:

Get http://1.28/info: dial unix /var/run/docker.sock: connect: permission denied

То, идем на хост с Docker и добавляем нашего пользователя Zabbix в группу Docker, перезагружаемся и снова пробуем zabbix_get -s IP_ZABBIX.AGENT2 -k docker.info:

usermod -aG docker zabbix


Добавление нового узла сети для нашего хоста и шаблон для мониторинга Docker

1. Скачиваем и импортируем шаблон template_app_docker.yaml (если у вас более менее свежая версия Zabbix сервера, то он уже там присутствует с названием Docker by Zabbix agent 2, данный пункт можно пропустить)

2. Создаем новый Узел сети:

  • Имя узла сети — Указываем имя которое мы казали в Hostname в Zabbix Agent 2 выше
  • Шаблоны — Выбираем Docker by Zabbix agent 2 и Linux by Zabbix agent
  • Группы узлов сети — выбираем любую группу
  • Интерфейсы — добавляем Агент и указываем IP адрес хоста с Zabbix Agent 2

Docker мониторинг с помощью ZabbixДобавление нового Узла сети в Zabbix server для мониторинга Docker

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

Docker мониторинг с помощью ZabbixНемного графиков снятых метрик с Docker контейнеров


Заключение

В данной заметке разобрали как с помощью Zabbix сервера можно мониторить Docker. спасибо за потраченное время на чтение и доброго времени суток!)