Привет, Мир! Пора нам закрепить материал по Docker из первой и второй статьи. Теперь мы познакомимся с возможностью установки системы мониторинга Zabbix в Docker. А так же я покажу как настроить уведомления и поставить клиента на свои сервера.
Нам не важно каким из описанных выше способов мы воспользуемся для разворачивания приложения, но в каждом из них нам необходимо создать места хранения наших данных. Я приведу пример классического развертывания через командную строку, Вы же можете воспользоваться Portainer или Dockge из предыдущих статей. Начнем!
Подготовка к установке
Выполним необходимые действия, мы будем хранить данные приложения в каталоге /apps/zabbix
. Создаем его командой:
sudo mkdir -p /apps/zabbix
Перейдем в него:
cd /apps/zabbix
Создаем docker-compose.yml нашего приложения:
sudo nano docker-compose.yaml
И заполним его конфигурацией:
version: "3.9"
services:
zabbix-mariadb:
image: mariadb
container_name: zabbix-mariadb
hostname: zabbix-mariadb
restart: unless-stopped
environment:
TZ: "Europe/Astrakhan"
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: 'Ваш. секретный пароль root'
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: 'Ваш секретный пароль БД'
networks:
- default
volumes:
- /apps/zabbix/mariadb/data:/var/lib/mysql
zabbix-server:
image: zabbix/zabbix-server-mysql
container_name: zabbix-server
hostname: zabbix-server
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
DB_SERVER_HOST: zabbix-mariadb
MYSQL_USER: zabbix
MYSQL_PASSWORD: 'Ваш секретный пароль БД'
networks:
default:
ipv4_address: 172.28.0.254
depends_on:
- zabbix-mariadb
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql
container_name: zabbix-web
hostname: zabbix-web
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
DB_SERVER_HOST: zabbix-mariadb
MYSQL_USER: zabbix
MYSQL_PASSWORD: 'Ваш секретный пароль БД'
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: "Europe/Moscow"
ports:
- 8080:8080
- 8443:8443
networks:
- default
depends_on:
- zabbix-mariadb
- zabbix-server
networks:
default:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
*я выделил жирным пункты, на которые Вам необходим обратить внимание.
Немного подробностей. Ранее я рассказывал в статьях о полезности compose для разворачивания нескольких приложений с общими параметрами. На данном примере мы запускаем 3 приложения с одной сетью и обращающимися к одной БД. Первая часть конфигурации создает контейнер с БД zabbix, второй разворачивает бэкэнд, третий — фронтэнд, WEB-интерфейс управления Zabbix.
Чтобы запустить данную конфигурацию выполним команду:
sudo docker-compose up -d
В моем примере WEB-интерфейс доступен по порту 8080, проверим его доступность по адресу: http://IP-сервера:8080
.
На этом все. Видите, даже такие сравнительно сложные и объёмные инсталляции можно сделать в пару кликов с помощью Docker! Теперь, как и обещал, расскажу как подключить уведомления, для этого я лично использую Pushover.
Настройка уведомлений на Pushover
Я. выбрал этот способ для разграничения сообщений. Многие делают уведомления в Telegram-ботов, мне такой способ чужд. Согласно официальной инструкции это делается довольно просто.
Зарегистрируйте аккаунт в приложении или на веб-сайте Pushover. После входа в него нам необходимо создать приложение при помощи кнопки снизу Create a New Application/API Token
. Заполняется форма как на примере ниже.
В итоге Вы получите выдачу, в которой нам интересен API token/key
:
А так же User Key
с главной страницы Pushover. Введите полученный API token/key
в настройки Pushover по пути Оповещения > Службы оповещения
:
А User Key
в настройках пользователя, вкладка Оповещения
:
Последнее необходимое действие — имеется ли настроенное действие в Zabbix, которое отправляет оповещения, по умолчанию оно выключено. Этот пункт находится по пути Оповещения > Действия > Действия триггеров
, триггер — Report problems to Zabbix administrators
:
На этом действия завершены. Теперь Вы можете настроить под себя необходимую степень значимости уведомлений для этого способа и время, когда они будут Вам приходить. А чтобы было что мониторить, установим клиента на наш сервер. Я предпочитаю zabbix-agent2. Ниже опишу как его установить.
Установка Zabbix-agent2
Для установки zabbix-agent2 необходимо добавить репозиторий в нашу систему. Для этого переходим по ссылке, выбираем последнюю версию, далее в нужную нам ОС из списка:
Далее по пути типа /zabbix/6.5/centos/9/x86_64/
в моём случае и скопируйте ссылку на последнюю версию релиза:
- для ОС Ubuntu ссылку на пакет zabbix-release_x.x.x+ubuntuxx.xx_all.deb,
- для ОС Debian ссылку на пакет zabbix-release_x.x-x+debianx_all.deb,
- для ОС CentOS ссылку на zabbix-release-x.x-x.el*.noarch.rpm,
*где x.x.x -версия релиза, *-версия ОС
Установите репозиторий zabbix командами:
для ОС CentOS 9:
rpm -Uvh https://repo.zabbix.com/zabbix/6.5/centos/9/x86_64/zabbix-release-6.5-2.el9.noarch.rpm
sudo dnf clean all
для ОС Ubuntu 22.04:
wget https://repo.zabbix.com/zabbix/6.5/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.5-1%2Bubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.5-1%2Bubuntu22.04_all.deb
sudo apt update
для ОС Debian 12:
wget https://repo.zabbix.com/zabbix/6.5/debian/pool/main/z/zabbix-release/zabbix-release_6.5-1%2Bdebian12_all.deb
sudo dpkg -i zabbix-release_6.5-1%2Bdebian12_all.deb
sudo apt update
Устанавливаем агент zabbix командами:
для ОС CentOS:
sudo yum install zabbix-agent2 -y
для ОС Debian/Ubuntu:
sudo apt install zabbix-agent2 -y
Далее необходимо настроить zabix-agent. Откройте любым тестовым редактором файл конфигурации
sudo nano /etc/zabbix/zabbix_agent2.conf
Настройте основные параметры:
Server=IP Вашего хоста в zabbix
ServerActive=IP Вашего хоста в zabbix
Hostname=имя Вашего хоста в zabbix
Остальные параметры есть в официальной инструкции, но данного минимума будет нам достаточно для запуска мониторинга. Запустите zabbix-agent:
systemctl start zabbix-agent2
Разрешите автозапуск zabbix-agent:
systemctl enable zabbix-agent2
Так же можно почитать последние записи в логах агента командой:
sudo tail -n 30 /var/log/zabbix/zabbix_agentd.log
Сервера:
sudo tail -n 10 /var/log/zabbix/zabbix_server.log
Но у нас zabbix в контейнере Docker, так что в нашем случае командой:
sudo docker logs zabbix-server
Это будет полезно при добавлении в zabbix данного хоста в случае отсутствия связи.
На этом все, в дальнейшем постараюсь освятить интересные моменты мониторинга систем при помощи Zabbix так как активно его использую и много чего еще.
Так же не забывайте о возможности задать вопросы в комментариях или Telegram канале. До связи!
Ваш комментарий будет первым