Установка docker-контейнеров c Zabbix на Raspberry Pi

в 7:00, , рубрики: ARMv7, devops, docker, raspberrypi, raspbian, zabbix, Настройка Linux, Разработка на Raspberry Pi

Добрый день, коллеги!

Сегодня я хочу поделиться с Вами опытом установки приложений в контейнерах Docker на Raspberry Pi.

Появилась необходимость установить Zabbix для тестирования и экспериментов. Zabbix должен быть всегда включен, поэтому установка на ноутбук или стационарный компьютер не подходит. В моем распоряжении был микрокомпьютер Raspberry Pi. Он хорошо подходит для небольших проектов. Маленький и бесшумный - очень удобно.


В проекте использовались:

  1. Аппаратное обеспечение - микрокомпьютер Raspberry Pi v3 B, архитектура CPU - armv7l

  2. Программное обеспечение - операционная система GNULinux Raspbian 10. (Будем считать, что Вы умеете работать в командной строке и подключаться по SSH.)

Для начала установим Portainer - веб-интерфейс для управления docker-контейнерами. Бесплатно, удобно, подойдет новичкам в docker.

Установка Portainer:

1) docker volume create portainer_data

2) docker run -d -p 9000:9000 
--name portainer 
--restart always 
-v /var/run/docker.sock:/var/run/docker.sock 
-v portainer_data:/data portainer/portainer

После установки веб-интерфейс Portainer будет открыт на http://ip-адрес-хоста:9000

Теперь скачаем и запустим контейнеры с Zabbix-ом.

Могут возникнуть проблемы с установкой контейнера с MySql-сервером из стандартного реестра.

latest: Pulling from library/mysql
no matching manifest for linux/arm/v7 in the manifest list entries

На сайте https://hub.docker.com можно найти контейнеры My Sql для ARM-архитектур. Я воспользовался вот этим контейнером - https://hub.docker.com/r/biarms/mysql.

Стоит обратить внимание на сетевые подключения контейнеров. Шлюз моста займет адрес Х.Х.Х.1, контейнер с Portainer-ом получит адрес Х.Х.Х.2 и так далее. Это будет иметь значение при подключении приложений в контейнерах. Стандартная сеть для docker-контейнеров на bridge - 172.17.0.0/16.

Установка контейнера с My SQL:

1) docker pull biarms/mysql

2) docker run -d -p 3306:3306 --name mysql -t  
-e MYSQL_DATABASE="zabbix" 
-e MYSQL_USER="zabbix" 
-e MYSQL_PASSWORD="zabbix" 
-e MYSQL_ROOT_PASSWORD="root" 
-d biarms/mysql:latest

3) docker logs mysql - посмотреть логи контейнера

Установка контейнера с Zabbix - Server:

172.17.0.3 - это ip-адрес контейнера с MySql-сервером. Посмотреть информацию о сети bridge можно командой - docker network inspect bridge.

1) docker run --name zabbix-server -t -p 10051:10051 
-e DB_SERVER_HOST="172.17.0.3" 
-e MYSQL_DATABASE="zabbix" 
-e MYSQL_USER="zabbix" 
-e MYSQL_PASSWORD="zabbix" 
-e MYSQL_ROOT_PASSWORD="root" 
--link mysql:mysql 
-d zabbix/zabbix-server-mysql:latest

2) docker logs zabbix-server - посмотреть логи контейнера

Проверяем подключение к My Sql со стороны Zabbix Server-а:

1) docker exec -it zabbix-server bash - подключаемся к контейнеру

2) mysql -u zabbix -p zabbix -h 172.17.0.3 - в контейнере подключаемся к My Sql-серверу.
Пароль - zabbix

Установка контейнера с WEB-интерфейсом Zabbix:

1) docker run --name zabbix-web -t -p 8080:8080 
-e DB_SERVER_HOST="172.17.0.3" 
-e MYSQL_USER="zabbix" 
-e MYSQL_PASSWORD="zabbix" 
-e ZBX_SERVER_HOST="172.17.0.4" 
-e ZBX_SERVER_NAME="Zabbix" 
-e PHP_TZ="Europe/Moscow" 
-d zabbix/zabbix-web-apache-mysql:latest

2) docker logs zabbix-web - посмотреть логи контейнера

Выполняем вход в веб-интерфейс сервера Zabbix: http://ip_address:8080. Порт 8080 был задан во время установки контейнера с web-интерфейсом Zabbix-а.

Логин и пароль по умолчанию: admin / zabbix

Счастливого использования!

Автор: xDMITRYx

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js