В этой статье я расскажу о простом способе установки и использования Zabbix в среде Docker.
Zabbix — это популярный инструмент для мониторинга ИТ-инфраструктуры, который отслеживает практически все элементы вашей среды, включая физические устройства, такие как серверы, и сетевые устройства, такие как маршрутизаторы и коммутаторы.
Он также может отслеживать приложения, сервисы и базы данных.
Zabbix обеспечивает мониторинг сетей в режиме реального времени, выявляет сбои сразу после их возникновения и отправляет оповещения команде реагирования.
Это помогает обеспечить непрерывность бизнес-процессов.
Ядро Zabbix основано на языке C с интерфейсом на Java и PHP.
Архитектура Zabbix состоит из сервера Zabbix и клиентов. Сервер обычно взаимодействует с собственными клиентами, известными как агенты Zabbix. Агентом может быть система Linux, Windows или NIX. Агент Zabbix — это клиентское программное обеспечение, установленное на клиентском компьютере для сбора журналов мониторинга и отправки их на сервер.
Создание файла Docker-compose для Zabbix
Создадим рабочую директорию:
sudo mkdir -p /apps/zabbix
Перейдем в нее:
cd /apps/zabbix
Docker compose позволяет разворачивать нескольких приложений с общими параметрами. На данном примере мы запускаем 3 приложения с одной сетью и обращающимися к одной БД. Первая часть конфигурации создает контейнер с БД zabbix, второй разворачивает бэкэнд, третий — фронтэнд, WEB-интерфейс управления Zabbix.
Создаем docker-compose.yml нашего приложения:
sudo nano docker-compose.yaml
Со следующим содержимым:
version: '3.5'
services:
mysql-server:
image: mysql:8.0
networks:
- zbx_net
command:
- mysqld
- --character-set-server=utf8
- --collation-server=utf8_bin
- --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_USER=zabbix
- MYSQL_DATABASE=zabbixdb
- MYSQL_PASSWORD=PasswOrd
- MYSQL_ROOT_PASSWORD=StrongPassword
- ZBX_JAVAGATEWAY=zabbix-java-gateway
volumes:
- /zabbix-mysql:/var/lib/mysql:rw
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql:alpine-latest
networks:
- zbx_net
ports:
- 10051:10051
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /zabbix-data/alertscripts:/usr/lib/zabbix/alertscripts:ro
- /zabbix-data/externalscripts:/usr/lib/zabbix/externalscripts:ro
- /zabbix-data/export:/var/lib/zabbix/export:rw
- /zabbix-data/modules:/var/lib/zabbix/modules:ro
- /zabbix-data/enc:/var/lib/zabbix/enc:ro
- /zabbix-data/ssh_keys:/var/lib/zabbix/ssh_keys:ro
- /zabbix-data/mibs:/var/lib/zabbix/mibs:ro
- /zabbix-data/snmptraps:/var/lib/zabbix/snmptraps:rw
environment:
- DB_SERVER_HOST=mysql-server
- MYSQL_DATABASE=zabbixdb
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=PasswOrd
- MYSQL_ROOT_PASSWORD=StrongPassword
- ZBX_JAVAGATEWAY=zabbix-java-gateway
depends_on:
- mysql-server
zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest
networks:
- zbx_net
ports:
- 80:8080
- 443:8443
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /zabbix-nginx/nginx:/etc/ssl/nginx:ro
- /zabbix-nginx/modules/:/usr/share/zabbix/modules/:ro
environment:
- ZBX_SERVER_HOST=zabbix-server-mysql
- DB_SERVER_HOST=mysql-server
- MYSQL_DATABASE=zabbixdb
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=PasswOrd
- MYSQL_ROOT_PASSWORD=StrongPassword
depends_on:
- mysql-server
- zabbix-server-mysql
zabbix-java-gateway:
image: zabbix/zabbix-java-gateway:alpine-6.0-latest
networks:
- zbx_net
ports:
- 10052:10052
networks:
zbx_net:
driver: bridge
Не забываем придумать свои пароли в переменных MYSQL_PASSWORD и MYSQL_ROOT_PASSWORD. Сохраним файл Ctrl + O и выйдем из редактора Ctrl + X.
Запустим контейнеры:
sudo docker-compose up -d
Если все сделано правильно, то мы должны получить следующий вывод:
Creating zabbix_mysql-server ... done
Creating zabbix_zabbix-java-gateway ... done
Creating zabbix_zabbix-server-mysql ... done
Creating zabbix_zabbix-web-nginx-mysql ... done
Веб-интерфейс Zabbix теперь доступен по порту 80 и может быть открыт по URL-адресу http://IP-адрес или http://доменное_имя
Войдите в систему, используя учетные данные по умолчанию:
Username: Admin
Password: zabbix
Чтобы изменить пароль администратора перейдем в раздел: Administration > Users > Admin > Password > Change Password.