Перейти к содержимому
Главная страница » Запуск Zabbix в Docker

Запуск Zabbix в Docker

В этой статье я расскажу о простом способе установки и использования 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.

Перевод статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *