В этой статье я расскажу о простом способе установки и использования Zabbix в среде Docker.
Zabbix — это популярный инструмент для мониторинга ИТ-инфраструктуры, который отслеживает практически все элементы вашей среды, включая физические устройства, такие как серверы, и сетевые устройства, такие как маршрутизаторы и коммутаторы.
Он также может отслеживать приложения, сервисы и базы данных.
Zabbix обеспечивает мониторинг сетей в режиме реального времени, выявляет сбои сразу после их возникновения и отправляет оповещения команде реагирования.
Это помогает обеспечить непрерывность бизнес-процессов.
Ядро Zabbix основано на языке C с интерфейсом на Java и PHP.
Архитектура Zabbix состоит из сервера Zabbix и клиентов. Сервер обычно взаимодействует с собственными клиентами, известными как агенты Zabbix. Агентом может быть система Linux, Windows или NIX. Агент Zabbix — это клиентское программное обеспечение, установленное на клиентском компьютере для сбора журналов мониторинга и отправки их на сервер.
Создание файла Docker-compose для Zabbix
Создадим рабочую директорию:
1 |
sudo mkdir -p /apps/zabbix |
Перейдем в нее:
1 |
cd /apps/zabbix |
Docker compose позволяет разворачивать нескольких приложений с общими параметрами. На данном примере мы запускаем 3 приложения с одной сетью и обращающимися к одной БД. Первая часть конфигурации создает контейнер с БД zabbix, второй разворачивает бэкэнд, третий — фронтэнд, WEB-интерфейс управления Zabbix.
Создаем docker-compose.yml нашего приложения:
1 |
sudo nano docker-compose.yaml |
Со следующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
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.
Запустим контейнеры:
1 |
sudo docker-compose up -d |
Если все сделано правильно, то мы должны получить следующий вывод:
1 2 3 4 |
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://доменное_имя
Войдите в систему, используя учетные данные по умолчанию:
1 2 |
Username: Admin Password: zabbix |
Чтобы изменить пароль администратора перейдем в раздел: Administration > Users > Admin > Password > Change Password.