• База знань
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

 

Мониторинг Docker контейнеров c помощью Zabbix на Ubuntu 20.04

 

Оглавление

Введение

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

Docker, в свою очередь, это пожалуй самый известный инструмент для работы с контейнерами. Он позволяет упаковать приложение или сервис, со всем его окружением и зависимостями, в контейнер, который может быть развернут на любой системе, на которой запускается Docker. Контейнеры в Docker это альтернатива аппаратной виртуализации, например такой как KVM, если Вы не планируете использовать различные ОС на виртуальных машинах. Docker позволяет запускать приложения в изолированном окружении с экономичным использованием ресурсов.

В данном руководстве мы настроим мониторинг состояния контейнеров через замечательную систему мониторинга Zabbix. Для этого нам потребуется два выделенных сервера с операционной системой Ubuntu 20.04 LTS. Первый сервер будет выступать в роли сервера Zabbix Server, который будет собирать метрики, строить графики и отправлять уведомления при наступлении каких-то внештатных ситуаций на серверах и контейнерах которые он будет отслеживать. Второй сервер у нас будет в роли сервера с установленным Docker и развернутыми контейнерами на нём. На этом сервере будет запущен сервис Zabbix Agent который будет собирать метрики и отправлять их на Zabbix Server, на нём мы тоже будем использовать Ubuntu 20.04 LTS.

Настройка сервера для запуска Zabbix Server с веб-интерфейсом

Откройте терминал и подключитесь к серверу на котором будет установлен Zabbix Server. Для начала обновим список пакетов операционной системы, введя команду:

sudo apt update

обновление списка пакетов Ubuntu

Затем обновим сами пакеты до последних версий, для этого необходимо ввести команду в терминале:

sudo apt upgrade

Обновление пакетов в Ubuntu

Теперь мы имеем обновлённую ОС со всем актуальным ПО и можем смело продолжать дальше.

Для запуска Zabbix Server нам понадобится установить на сервер стек LEMP, в него входят ОС Linux, веб-сервер Nginx, БД MySQL, и скриптовый язык PHP который применяется для разработки веб-приложений.

ОС Linux у нас уже установлена в лице Ubuntu 20.04, поэтому начнём с установки Nginx, для этого требуется ввести команду:

sudo apt install nginx

Установка NGINX

После завершения установки, Nginx автоматически запустится и мы сможем проверить его работу введя в адресной строке браузера http://IP_ВАШЕГО_СЕРВЕРА. Если всё прошло как надо, то вы увидите страницу «Welcome to nginx!».

Проверка работы NGINX

По умолчанию в Ubuntu 20.04 выключен брандмауэр (фаервол), поэтому мы опускаем его настройку в этом руководстве, но если вы активировали брандмауэр то необходимо будет разрешить подключения по протоколу http/https к серверу.

Следующим шагом мы установим систему управления базами данных MySQL. MySQL - это распространенная система управления базами данных, часто используемая с языком PHP. Для её установки введем команду:

sudo apt install mysql-server

Установка MySQL

Для подтверждения нажмем Y и установка начнётся. По завершению установки сервер MySQL будет запущен и нам потребуется запустить специальный скрипт, этот скрипт удалит некоторые небезопасные настройки по умолчанию и заблокирует неавторизованный доступ к вашей системе баз данных. Для этого необходимо ввести в терминале команду:

sudo mysql_secure_installation

Мы получим запрос на включение системы проверки паролей, которая будет проверять каждый пароль каждого пользователя MySQL на безопасность, в данном конкретном случае нам это не требуется и мы откажемся от активации этой системы, для этого необходимо ввести любой символ кроме Y.

Установка настроек безопасности MySQL

Следующим шагом нас просят установить пароль для пользователя root, подразумевается администратор именно MySQL, а не системный суперпользователь root. Введем необходимый пароль два раза. Рекомендуется использовать хороший стойкий пароль, с разными символами, цифрами и спец знаками.

Установка root пароля

Далее скрипт спросит нас, хотим ли мы удалить пользователя anonymous. По умолчанию, в начальной установке MySQL, есть так называемый анонимный пользователь, что позволяет любому пользователю войти в MySQL без наличия учетной записи. Это предназначено только для тестирования и мы должны деактивировать это перед началом использования MySQL. Вводим Y чтобы продолжить.

Удаление пользователя Anonymous

Далее скрипт предлагает выключить возможность доступа пользователя root с удалённого компьютера, соответственно доступ пользователю root будет разрешен только с локального хоста, что положительно скажется на безопасности, поскольку пароль MySQL пользователя root не будет передаваться по сети. Введите Y чтобы продолжить.

Следующим шагом скрипт предлагает удалить тестовую базу данных с именем test, которая создана по умолчанию. Как правило она не используется - поэтому согласимся на её удаление. Введите Y чтобы продолжить.

Удаление тестовой базы данных.

И напоследок, скрипт предлагает сделать так называемый FLUSH, то есть обновить права доступа пользователей на базы данных. Мы согласны, поэтому вводим Y для продолжения.

Обновления прав доступа к БД

Первичная настройка MySQL сервера завершена. Давайте теперь проверим его работу. Попробуем войти в консоль MySQL, для этого необходимо ввести в терминале команду:

sudo mysql

Вход в консоль mysql

Чтобы вывести список существующих баз данных введем show databases; , не забудьте ввести точку с запятой после команды.

mysql> show databases;

Просмотр списка существующих баз данных

Как вы можете видеть, в нашем сервере баз данных MySQL создано 4 базы данных на данный момент. То есть всё работает как надо и мы можем выйти из консоли MySQL. Для выхода введите exit;

mysql> exit;

Выход из консоли mysql

Теперь ваш сервер баз данных MySQL установлен и защищен. Далее мы установим PHP, последний компонент в стеке LEMP.

LEMP подразумевает под собой отсутствие веб-сервера Apache на сервере. В качестве обработчика PHP, который будет генерировать динамическое содержимое страниц, мы будем использовать php-fpm, которому в свою очередь, веб-сервер Nginx будет передавать запросы для обработки файлов интерпретатором PHP.

Установим php-fpm и php-mysql, который обеспечит возможность работы PHP c базами данных MySQL. Для установки введем команду:

sudo apt install php-fpm php-mysql

Установка php-fpm и php-mysql

Как и в предыдущих случаях вводим Y чтобы начать установку.

Установка Nginx, MySQL и PHP завершена. Приступаем к установке Zabbix Server. Zabbix сразу доступен в репозиториях Ubuntu, но в устаревшей версии, поэтому мы будем использовать официальный репозиторий Zabbix для установки последней стабильной версии. Скачайте и установите пакет конфигурации репозитория, введя команду:

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb

Скачивание репозитория Zabbix

Теперь установим данный deb пакет для активации репозитория в нашей операционной системе:

sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Установка скачаного репозитория Zabbix

 После появления нового репозитория в нашей ОС необходимо обновить список пакетов, так же как мы делали это в самом начале. Вводим команду:

sudo apt update

обновление пакетов

Следующим шагом установим Zabbix сервер, веб-интерфейс и агент на этот сервер:

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent

Установка Zabbix-агента, сервера и вэб-интерфейса

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

Войдем в консоль MySQL, введя команду:

sudo mysql

Затем, последовательно введем несколько команд в консоли MySQL, которыми мы создадим базу данных с именем zabbix, создадим пользователя zabbix с паролем password, а так же назначим права этому пользователю на использование данной базы данных. Для наглядности мы используем пароль password, но для безопасности необходимо использовать более стойкий пароль. После чего выйдем из консоли MySQL.

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

Теперь у нас есть база данных для Zabbix Server, но на данный момент она пустая, без начальных таблиц и данных в ней, которые необходимы для начала работы Zabbix. Импортируем начальную схему и данные в неё, для этого необходимо ввести команду

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Импортируем начальную схему в пустую БД Zabbix

Будет необходимо ввести пароль MySQL пользователя zabbix, который мы назначили выше, во время создания базы данных. Импорт может занять определенное время, которое зависит от производительности вашего сервера.

Следующим шагом нам необходимо настроить Zabbix сервер на использование этой базы данных, чтобы он сохранял и читал данные из неё. Для этого откроем конфигурационный файл /etc/zabbix/zabbix_server.conf.

sudo nano /etc/zabbix/zabbix_server.conf

Надо найти строчку начинающеюся с # DBPassword=

Убрать решетку (символ комментария) и ввести пароль для доступа к базе данных:

DBPassword=password

Правка файла конфигурации

Сохраните файл и выйдите из редактора. Если вы использовали nano для редактирования файла, вы можете сделать это, нажав CTRL + X, Y, затем ENTER.

Мы настроили сервер Zabbix для подключения к нашей базе данных MySQL. Теперь необходимо настроить веб-сервер Nginx для обслуживания веб-интерфейса Zabbix. Откроем файл /etc/zabbix/nginx.conf который был создан после установки пакета zabbix-nginx-conf, в нём описывается так называемый виртуал-хост веб-интерфейса Zabbix.

sudo nano /etc/zabbix/nginx.conf

Необходимо убрать символ комментария перед директивой listen и прописать имя сервера в директиву server_name. Остальные директивы в данном файле оставляем как есть, благо создатели Zabbix уже настроили там всё как требуется.

Правка файла конфигурации NGINX

Сохраняем файл /etc/zabbix/nginx.conf. В случае с nano для сохранения и выхода из редактора надо нажать CTRL + X, Y, затем ENTER.

Теперь проверим, нет ли в нашей конфигурации Nginx ошибок, для этого в терминале введём:

sudo nginx -t

Система сообщит что ошибок нет и всё в порядке, после чего мы перезапустим веб-сервер Nginx для применения изменений которые мы внесли. Для этого необходимо ввести команду:

sudo systemctl restart nginx

Проверка на ошибки и перезапуск NGINX

После этого необходимо настроить правильный часовой пояс в конфигурации php-fpm пула для нашего Zabbix сервера. Для этого отредактируем файл /etc/zabbix/php-fpm.conf, требуется раскомментировать строку ; php_value[date.timezone] = Europe/Riga и указать свой часовой пояс. В нашем случае это Europe/Kiev.

sudo nano /etc/zabbix/php-fpm.conf

Настройка часого пояса

Сохраним файл и перезапустим php-fpm для применения изменений.

sudo systemctl restart php7.4-fpm

Следующим шагом нам необходимо добавить все необходимые службы в автозагрузку нашей операционной системы Ubuntu, для этого введём с терминале:

sudo systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm

Добавление служб в автозагрузку Ubuntu

И теперь запустим все службы необходимые для работы Zabbix сервера:

sudo systemctl start zabbix-server zabbix-agent nginx php7.4-fpm

Сервер Zabbix настроен и подключен к базе данных MySQL. Приступаем к настройке веб-интерфейса Zabbix. Введите в стоку адреса вашего браузера http://ИМЯ_ВАШЕГО_СЕРВЕРА (то самое имя которые устанавливали в настройке Nginx в директиве server_name)

Веб-интерфейс Zabbix позволяет просматривать отчеты и добавлять узлы для мониторинга, но для его использования требуется начальная настройка. На первом экране вы увидите приветственное сообщение. Нажмите кнопку «Next step» для продолжения.

Вэб-страничка настройки Zabbix

На следующей странице перечислены все необходимые условия для запуска Zabbix. Убедитесь что в последней колонке OK и можно продолжать нажав Next step.

На следующей странице необходимо ввести информацию для подключения к базе данных. Данные настройки нужны для работы веб-интерфейса Zabbix, поскольку конфигурацию Zabbix сервера мы уже провели ранее, введем пароль для доступа к базе данных MySQL и нажмем Next step.

Настройка подключений к базе данных

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

Указание имени сервера и порта

И на завершающем экране предлагается проверить всё настройки, перед финальным шагом. Проверим и нажмем Next step.

Финальная страниичка проверки настроек Zabbix

Установка веб-интерфейса Zabbix завершена. Нажмите Finish и перейдите к окну входа. Имя пользователя и пароль по умолчанию Admin и zabbix.

Панель управления Zabbix

Установка Docker

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

Как и со случаем сервера, где располагается Zabbix сервер, на сервере где у нас будут Docker контейнеры мы тоже для начала обновим список пакетов, а затем и сами пакеты, для этого требуется ввести две уже известные нам команды.

sudo apt update
sudo apt upgrade

Docker есть в стандартных репозиториях Ubuntu 20.04 LTS Focal Fossa, но как и в случае с Zabbix сервером, в стандартных репозиториях не самые свежие версии. Установим Docker из его официальных репозиториев, где всегда доступна актуальная версия.

Для начала нам потребуется установить дополнительные необходимые пакеты, которых возможно нет в системе, для этого в терминал необходимо ввести команду:

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

После чего добавим GPG ключ официального репозитория Docker в нашу систему для этого вводим в терминале команду:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

добавление GPG ключа к скачаному репозиторию

Затем добавим официальный репозиторий Docker в нашу систему. Помимо самого добавления репозитория, эта команда так же обновит список пакетов с учётом добавленного репозитория. Введём в терминале:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Добавление репозитория в систему и обновление пакетов.

Теперь установим сам Docker. Это выполняется простой командой:

sudo apt install docker-ce

Соглашаемся на установку, введя Y на запрос в терминале.

Docker установлен. Для проверки, вводим в терминале команду sudo docker version, которая отобразит установленную версию Docker и другую системную информацию.

sudo docker version

Проверим запущена ли системная служба Docker, для этого введем в окне терминала команду:

sudo systemctl status docker

Проверка статуса hf,jns Docker

Вывод команды говорит нам о том что всё в порядке, сервис запущен и работает.

Установка Zabbix Agent на сервер с Docker

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

Для начала скачаем deb пакет который добавит официальный репозиторий в нашу систему, а затем установим этот пакет.

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Скачивание и установка репозитория Zabbix-агента

После добавления нового репозитория необходимо обновить базу пакетов, для этого введём команду sudo apt update:

sudo apt update

Обновление пакетов

После чего мы можем установить сам Zabbix Agent 2.

sudo apt install zabbix-agent2

Установка Zabbix-агента

После установки агента нам необходимо внести изменения в файл конфигурации, чтобы обеспечить соединение между Zabbix Agent и Zabbix Server. Откроем для редактирования файл конфигурации агента:

sudo nano /etc/zabbix/zabbix_agent2.conf

Файл конфигурации Zabbix-агента

По умолчанию Zabbix Agent настроен на работу с Zabbix Server, которые расположены на одном сервере. Но у нас Zabbix Server находится на отдельном сервере и нам надо изменить настройки Zabbix Agent, чтобы он работал с удалённым сервером Zabbix Server. Для этого в файле /etc/zabbix/zabbix_agent2.conf найдём строчку начинающеюся с Server и изменим значение с 127.0.0.1 на IP адрес или имя нашего Zabbix Server, в нашем примере это zabbix-server.dedicated.freehost.com.ua.

Изменения настроек подключения к Zabbix-серверу

Обычно Zabbix Server сам подключается для сбора данных к Zabbix Agent, но в некоторым случаях и агент может подключаться к серверу, для этого необходимо ввести адрес сервера в директиву ServerActive.
Также необходимо ввести уникальное имя для агента, это имя будет отображаться в веб-интерфейсе. Для этого введите имя в директиву Hostname.

Указание имени Zabbix-агента

На этом редактирование файла конфигурации Zabbix Agent завершено, сохраним и выйдем из редактора.

Далее, для того чтобы Zabbix Agent мог осуществлять мониторинг Docker необходимо добавить системного пользователя zabbix в группу docker. Для этого введём команду:

sudo usermod -aG docker zabbix

Теперь мы можем запустить службу Zabbix Agent и добавить её в автозагрузку нашей ОС, а так же проверим запустилась ли служба Zabbix Agent. Для этого введём команды:

sudo systemctl start zabbix-agent2
sudo systemctl enable zabbix-agent2
sudo systemctl status zabbix-agent2

Проверка работы службы Zabbix Agent

Вывод команды сообщает нам что сервис Zabbix Agent запущен и работает.

На этом установка и настройка Zabbix Agent закончена. Мы подготовили наш сервер с Docker к мониторингу через Zabbix Server. Далее нам потребуется подключить этот сервер с Docker к мониторингу, для этого мы войдем в веб-интерфейс нашего Zabbix Server, подключим сервер с Docker и активируем шаблон Docker.

Добавляем новый узел мониторинга в Zabbix Server

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

Вход в интерфейс Zabbix Server

Войдем в веб-интерфейс Zabbix Server, используя адрес или имя, которые мы назначили ему ранее, во время его установки и настройки. В нашем случае, для примера, используется адрес http://zabbix-server.dedicated.freehost.com.ua/. Логин и пароль мы не меняли, поэтому используем установленные по умолчанию, логин Admin, пароль zabbix.

Панель управления Zabbix

Для начала, давайте переключим веб-интерфейс Zabbix на русский язык. Для этого перейдём в раздел Administration - Users

Раздел Users

И нажмём на пользователя Admin:

Пользователь Admin

Но тут нас ожидает проблема, нет возможности выбрать любой язык кроме Английского, и сообщение об ошибке «You are not able to choose some of the languages, because locales for them are not installed on the web server». Давайте исправим это. Установим необходимые локализации на наш сервер Zabbix.

Первой командой мы посмотрим какие локали (языковые настройки) установлены на сервере.

sudo locale -a

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

cat /usr/share/i18n/SUPPORTED | grep ru_
cat /usr/share/i18n/SUPPORTED | grep uk_

Список доступных языковых настроек.

Для установки необходимых локалей введем:

sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo locale-gen uk_UA
sudo locale-gen uk_UA.UTF-8

Установка локалей

После чего вводим команду:

sudo dpkg-reconfigure locales

В открывшемся окне нажмём ОК

Пакет сконфигурированых локалей

Далее, система спросит нас, какую из локалей необходимо установить в качестве системной - выберем en_US.UTF-8 и нажмем ОК.

Выбор системной локали

Переконфигурирование локалей

Будут переконфигурирование локали на сервере, после чего мы сможем выбрать необходимый язык в настройках веб-интерфейса Zabbix. Перезапустим nginx и php-fpm чтобы эти демоны «увидели» новые локали.

sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm

Перезапуск NGINX и php-fpm

После этого появится возможность выбрать необходимый язык в настройках пользователя веб-интерфейса Zabbix.

Появившеися доступные языки в интерфейсе Zabbix

На этом установка языка в веб-интерфейсе Zabbix закончена и мы можем продолжить добавление нового узла в мониторинг.

Страница мониторинга Zabbix

Для добавления нового узла в мониторинг, в уже русифицированном веб-интерфейсе Zabbix, необходимо нажать «Настройка» - «Узлы сети» и выбрать в правом верхнем углу «Создать узел сети».

Создание нового узла сети

Ввести имя узла, добавить его в новую группу Docker Servers, и ввести DNS имя по которому Zabbix Server будет подключаться в агенту.

Указание имени узла и добавление в группу

Далее перейдем на вкладку «Шаблоны» на этой странице, в пункте «Присоединение новых шаблонов» впишем «Template App Docker» и «Template OS Linux by Zabbix agent», таким образом мы применим к данному узлу мониторинга два шаблона, шаблон Docker и общий шаблон ОС Linux, которые будут включать в себя метрики, триггеры и графики необходимые для мониторинга Docker и системы в целом на этом выделенном сервере.Добавление шаблона к узлу

Далее нажмём кнопку «Добавить» для добавления этого узла в наш мониторинг. После добавления нового узла в Zabbix необходимо подождать несколько минут, для того чтобы Zabbix Server подключился к агенту на удалённом сервере и получил все метрики узла.

Затем, в меню слева перейдём в раздел «Мониторинг» - «Узлы сети», где мы увидим наш только что добавленный сервер с зеленой иконкой ZBX, это значит что узел добавлен успешно и Zabbix Server подключился и получает данные от агента на этом узле.

Список добавленных узлов

Замечательно! Теперь Zabbix Server следит за вашим сервером с Docker. На следующем этапе мы запустим тестовый контейнер и посмотрим какие метрики может собирать Zabbix с этого контейнера.

Получение метрик и данных из Docker контейнера

 Поскольку мы настраивали всё «с нуля» то у нас нет ещё созданных контейнеров в Docker, и по сути нам нечего отслеживать. Далее мы запустим тестовый контейнер и посмотрим какие метрики будут доступны. В этом руководстве мы запустим тестовый контейнер с Alpine Linux в нём.

В консоли сервера с Docker введите команду:

sudo docker run --name freehost_alpine_container -it alpine ash

Данная команда скачает образ Alpine Linux из Docker Hub и моментально запустит его, присвоив ему имя freehost_alpine_container, после чего запустит нам терминал той системы, которая запущена в контейнере.

Скачивание и установка образа Alpine Linux

Оставим пока этот контейнер работающим и перейдём в веб-интерфейс Zabbix сервера. Буквально через несколько минут после запуска контейнера, Zabbix автоматически найдет новый контейнер на сервере и добавит соответствующие метрики для него.

Кликнем на меню слева и перейдём в раздел «Мониторинг» - «Узлы сети» и выберем Графики в строке с нашим Docker сервером.

Выбор раздела Графики для узла сети

Мы увидим, что Zabbix уже «подхватил» наш контейнер с именем freehost_alpine_container, и собирает данные из него. На скриншоте два графика - использование процессора и памяти в данном контейнере.

Грфик данных из freehost_alpine_container

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

Другие графики из контейнера freehost_alpine_container

Для того, чтобы увидеть список всех метрик получаемых Zabbix из контейнера в Docker снова перейдём в раздел «Мониторинг» - «Узлы сети» и выберем «Последние данные» в строке с нашим Docker сервером.

Выбираем "Последние данные" в узле сети

Перелистнем на страницу 2 данного листинга и увидим 37 метрик которые Zabbix получает о контейнере. Чтобы просмотреть историю изменений для конкретной метрики, нажмите График (для числовых значений) или История (для текстовых значений).

Список метрик получаемых из контейнера

Итак, мы запустили тестовый контейнер в Docker и просмотрели его метрики в веб-интерфейсе Zabbix.

Триггеры и уведомления в Zabbix

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

Для симуляции сбоя контейнера откройте терминал Docker сервера, где запущен наш контейнер freehost_alpine_container и введите в терминале контейнера команду:

exit 1

Эмулируем сбой работы контейнера

С помощью этой команды мы завершим работу контейнера с кодом ошибки 1, который передастся в Docker и запишется в метаданные нашего контейнера.

Чтобы увидеть оповещение, нажмите «Мониторинг», а затем «Проблемы» в левой навигационной панели веб-интерфейса Zabbix. Через несколько секунд отобразится уведомление «Container has been stopped with error code»

Страничка мониторинга проблем Zabbix

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

Теперь вы можете запустить контейнер снова и уведомление в Zabbix исчезнет автоматически. Чтобы запустить контейнер повторно выполните команду на сервере c Docker:

sudo docker start freehost_alpine_container

Запуск контейнера после сбоя

Zabbix определит что контейнер снова в строю, и состояние триггера изменится на «Решено»

Состояние тригера после сбоя и запуска контейнера.

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

Заключение

В данной статье мы с вами настроили два сервера, один с Zabbix Server и веб-интерфейсом, и второй сервер с Docker и Zabbix Agent, для мониторинга состояния контейнеров в системе мониторинга Zabbix. Мониторинг предназначен предупреждать вас о проблемах, и вы сможете анализировать процессы и проблемы происходящие в вашем Docker контейнере. Zabbix это очень мощный инструмент, с помощью которого вы можете контролировать не только контейнеры, но и серверы в целом, базы данных, веб-приложения и многое другое.

Вероятно Вас заинтересует статья “Как мониторить сервер с помощью Zabbix”
Подписывайтесь на наш телеграмм - канал t.me/freehostua, чтобы быть в курсе новых полезных материалов. Смотрите наш Youtube канал на youtube.com/freehostua.

 

Дата: 21.12.2021
Автор: Евгений
Голосування

Авторам статті важлива Ваша думка. Будемо раді його обговорити з Вами:

comments powered by Disqus
navigate
go
exit
Дякуємо, що обираєте FREEhost.UA