Zabbix через docker-compose установка в Debian

Docker Compose — это инструмент, который позволяет определять и настраивать многоконтейнерные приложения Docker. Он использует файл YAML для настройки контейнеров, сетей и томов приложения.

Чтобы установить Docker Compose на Debian 10,

  1. Установить Docker
  2. Загрузите двоичный файл Docker Compose в каталог на системном пути и сделайте его исполняемым.
  3. Скачать и запустить контерйнер Заббикса.

1. установить Docker

 

  1. Установите пакеты, необходимые для добавления нового репозитория через HTTPS:
    sudo apt update 
    sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
  2. Импортируйте ключ GPG репозитория с помощью следующей curl команды :
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

    В случае успеха команда вернется OK .

  3. Добавьте стабильный репозиторий Docker APT в список репозиториев программного обеспечения вашей системы:
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"


    $(lsb_release -cs)
    вернет имя дистрибутива Debian . В данном случае это так buster .

     

  4. Обновите apt список пакетов и установите последнюю версию Docker CE (Community Edition):
    sudo apt update sudo apt install docker-ce
  5. После завершения установки служба Docker запустится автоматически. Чтобы проверить это, введите:
    sudo systemctl status docker
    ● docker.service - Docker Application Container Engine
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Active: active (running) since Tue 2019-07-30 20:52:00 GMT; 1min 11s ago
        Docs: https://docs.docker.com
    ...
  6. На момент написания последней стабильной версии Docker была 19.03.1 :
    docker -v
    Docker version 19.03.1, build 74b1e89

Выполнение команды Docker без Sudo

По умолчанию только root и пользователь с привилегиями sudo могут выполнять команды Docker.

Если вы хотите выполнять команды Docker без предварительной записи, sudo вам необходимо добавить своего пользователя в группу докеров, которая создается во время установки пакета Docker CE. Для этого введите:

sudo usermod -aG docker $USER


$USER
— это переменная среды, в которой хранится ваше имя пользователя.

Выйдите из системы и войдите снова, чтобы обновить членство в группе.

После этого убедитесь, что вы можете запускать docker команды без sudo ввода:

docker container run hello-world

Команда загрузит тестовое изображение, запустит его в контейнере, напечатает сообщение «Hello from Docker» и завершит работу. Результат должен выглядеть следующим образом:

Использование Docker

Теперь, когда вы установили на свой Debian 10, давайте рассмотрим основные концепции и команды докеров.

Образы Docker

Образ Docker состоит из ряда слоев файловой системы, представляющих инструкции в файле Dockerfile образа, которые составляют исполняемое программное приложение. Изображение — это неизменяемый двоичный файл, включающий приложение и все другие зависимости, такие как библиотеки, двоичные файлы и инструкции, необходимые для запуска приложения.

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

Чтобы найти изображение в реестре Docker Hub, используйте docker search команду. Например, чтобы найти образ Debian, вы должны ввести:

docker search debian

Контейнеры Docker

Экземпляр изображения называется контейнером. Контейнер представляет среду выполнения для отдельного приложения, процесса или службы.

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

Для запуска, остановки, удаления и управления контейнером используйте docker container команду. Например, следующая команда запустит контейнер Docker на основе образа Debian. Если у вас нет образа локально, сначала он будет загружен:

docker container run debian

 

Контейнер Debian остановится сразу после загрузки, потому что у него нет длительного процесса, и никакая другая команда не предоставляется. Контейнер загрузился, запустил пустую команду и завершил работу.

 

Переключатель -it позволяет взаимодействовать с контейнером через командную строку. Чтобы запустить интерактивный контейнер, введите:

docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#

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

Чтобы вывести список запущенных контейнеров Docker , используйте следующую команду:

docker container ls

Если у вас нет запущенных контейнеров, вывод будет пустым.

Чтобы просмотреть все контейнеры, передайте ему -a переключатель:

docker container ls -a

Чтобы удалить один или несколько контейнеров, просто скопируйте идентификатор контейнера (или идентификаторы) и вставьте их после container rm команды:

docker container rm c55680af670c

2. Установка Docker Compose

Установочный пакет Docker Compose доступен в официальных репозиториях Debian 10, но он не всегда может быть последней версией. Рекомендуемый подход — установить Docker Compose из репозитория Docker GitHub.

На момент написания этой статьи последней стабильной версией Docker Compose является версия 1.23.1 . Перед загрузкой двоичного файла Compose посетите страницу выпуска репозитория Compose на GitHub и проверьте, доступна ли для загрузки новая версия.

Выполните следующие действия, чтобы установить последнюю версию Docker Compose в Debian 10:

  1. Загрузите двоичный файл Docker Compose в /usr/local/bin каталог с помощью wget или curl :
    curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url  | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -

    Используйте chmod для создания исполняемого двоичного файла Compose:

    chmod +x docker-compose-linux-x86_64

    Перенести в папку приложений:

    mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
  2. Чтобы проверить установку, используйте следующую команду, которая выводит версию Compose:
    docker-compose --version

    Результат будет выглядеть примерно так:

    $ docker-compose version
    Docker Compose version v2.4.1

    Начало работы с Docker Compose

В этом разделе мы покажем, как настроить локальную среду разработки WordPress с помощью Docker Compose.

Создайте каталог для проекта и перейдите в него :

mkdir wordpress_app && cd wordpress_app

Откройте текстовый редактор и создайте файл с именем docker-compose.yml :

nano docker-compose.yml

Вставьте следующий контент:

docker-compose.yml

version: '3.7'

services:
  db:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress

  wordpress:
    image: wordpress
    restart: always
    volumes:
      - ./wp_data:/var/www/html
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: password
    depends_on:
       - db

volumes:
    db_data:
    wp_data:

Давайте объясним код построчно

В первой строке указывается версия файла Compose . Существует несколько различных версий формата файла Compose с поддержкой определенных выпусков Docker.

Далее мы определяем две службы db и wordpress . Каждая служба создает отдельный контейнер при запуске Docker Compose.
db:

  • Изображение настроено на mysql:8.0 изображение. Если изображение отсутствует, Compose извлечет его из общедоступного репозитория Docker Hub. Строка, начинающаяся с, command отменяет команду по умолчанию.
  • restart: always Политика инструктирует Compose перезапустить контейнер , если он идет вниз.
  • Контейнер будет использовать именованный том db_data для сохранения базы данных.
  • Определяет переменные среды для mysql:8.0 изображения.

wordpress:

  • Использует wordpress изображение.
  • Монтирует wp_data каталог на хосте /var/lib/mysql внутри контейнера.
  • Перенаправляет открытый порт 80 на контейнере на порт 8080 на хост-машине.
  • Определяет переменные среды для wordpress изображения.
  • depends_on Инструкция определяет зависимость между двумя службами. В этом примере db будет запущен раньше wordpress .

Из каталога проекта запустите стек WordPress, выполнив следующую команду:

docker-compose up

Результат должен выглядеть примерно так:

...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...

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

Войдите http://0.0.0.0:8080/ в свой браузер, и вы увидите стандартный экран установки WordPress.

На данный момент приложение WordPress запущено и работает, и вы можете начать работать над ним.

Чтобы остановить создание, нажмите CTRL+C .

Вы также можете запустить Compose в автономном режиме, используя -d опцию:

docker-compose up -d

Чтобы просмотреть запущенные контейнеры докеров, используйте следующую команду:

docker-compose ps

 

                 Name                               Command               State          Ports        
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_99946702ac7e          docker-entrypoint.sh --def ...   Up      3306/tcp, 33060/tcp 
wordpress_app_wordpress_1_a428d8408817   docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp 

 

Чтобы остановить службы, когда Compose работает в автономном режиме, используйте:

docker-compose stop

Если вы хотите полностью удалить контейнеры, используйте down опцию:

docker-compose down

При --volumes передаче переключателя также удаляем объемы данных:

docker-compose down --volumes

 

Удаление Docker Compose

Если вам нужно удалить Docker Compose, вы можете просто удалить двоичный файл, набрав:

sudo rm /usr/local/bin/docker-compose

3.

Установка

Склонируйте репозиторий github.com/zabbix/zabbix-docker в директорию opt:

cd /opt/
git clone https://github.com/zabbix/zabbix-docker

Далее выберите подходящий вам docker-файл (я выбрал docker-compose_v3_alpine_mysql_latest) и запустите его; при желании можно сделать его копию, указав другое имя, чтобы не путаться среди такого большого количества docker-файлов, а так же указать пути до разделов (по умолчанию данные zabbix будут хорониться в директории ./zbx_env/*)

docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d

Далее выждав какое-то время вы можете войти в web-интерфейс и приступить к настройке zabbix server.

Настройка systemd сервиса

Казалось бы все, но в случае перезапуска сервера контейнеры не будут запускаться автоматически. Обойти это можно создав systemd — unit который будет запускать docker-compose файл при загрузке системы.

Создаем файл /etc/systemd/system/zabbix-compose.service и вставляем в него следующее содержимое:

[Unit]
Description=Zabbix services with docker-compose
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/opt/zabbix-docker/
User=root
Group=docker
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml down -v
# Compose up
ExecStart=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
# Compose down, remove containers
ExecStop=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml down
[Install]
WantedBy=multi-user.target

Теперь выполним следующие команды:

systemctl enable zabbix-compose.service
systemctl daemon-reload
systemctl start zabbix-compose.service

Как редактировать параметры zabbix?

Если вам необходимо установить какие-то нестандартные значения параметров, то сделать это можно в env файлах, которые находятся в директории ./env_vars/. К примеру, если мне надо увеличить CacheSize то сделать я это могу в файле env_vars/.env_srv отредактировав значение переменной ZBX_CACHESIZE.

Все. Теперь можно приступить к настройке сервера.

Источники:

https://baks.dev/article/debian/how-to-install-and-use-docker-compose-on-debian-10-linux

https://maxidrom.net/archives/1819

Установка и настройка Zabbix 5.0

Довольны?
[Оценок: 0 средняя: 0]

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

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