Отличие от предыдущей версии:
- Использую postgresql:alpine
- Использую 4.4:latest zabbix-server и zabbix-web
- Для установки временной зоны использую монтирование в контейнер /etc/localtime и /etc/timezone
- Для размещения пользовательских alert скриптов монтирую в контейнер специальную папку.
Установка Docker
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2 -y
Добавляем Docker PGP key:sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Добавляем стабильный docker репозиторийsudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Ставим Docker CEsudo apt update
sudo apt install docker-ce -y
Пробуем выполнить тестовый контейнер:sudo docker run hello-world
Если все нормально увидим следующий вывод:
Удаляем контейнер, чтоб не болтался:
docker container rm $(docker ps -q -a)
Внимание, осторожно - будут убиты ВСЕ контейнеры(как минимум остановленные)!Создаем ресурсы для проброса в контейнеры
mkdir /var/lib/zabbix/
cd /var/lib/zabbix/
ln -s /usr/share/zoneinfo/Europe/Kiev localtime
echo 'Europe/Kiev' > timezone
Понятное дело необходимо указать свою зону.Создаем Docker сеть
Прочитал в документации docker, что связывание контейнеров через --link является устаревшим, поэтому попробуем связывать используя сеть Docker:docker network create zabbix-net
docker network inspect zabbix-net
Сеть создана |
Запускаем контейнер с Postgresql
docker run -d --name zabbix-postgres --network zabbix-net -v /var/lib/zabbix/timezone:/etc/timezone -v /var/lib/zabbix/localtime:/etc/localtime -e POSTGRES_PASSWORD=zabbix -e POSTGRES_USER=zabbix postgres:alpine
docker ps
Запускаем контейнер с Zabbix server
docker run --name zabbix-server --network zabbix-net -v /var/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts -v /var/lib/zabbix/timezone:/etc/timezone -v /var/lib/zabbix/localtime:/etc/localtime -p 10051:10051 -e DB_SERVER_HOST="zabbix-postgres" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -d zabbix/zabbix-server-pgsql:alpine-latest
docker ps
Запускаем Zabbix web server
docker run --name zabbix-web -p 80:80 -p 443:443 --network zabbix-net -e DB_SERVER_HOST="zabbix-postgres" -v /var/lib/zabbix/timezone:/etc/timezone -v /var/lib/zabbix/localtime:/etc/localtime -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Europe/Kiev" -d zabbix/zabbix-web-nginx-pgsql:alpine-latest
docker ps
Первый вход
Подключаемся броузером к хост машине:Дальнейшая настройка не входит в тему этой заметки интересующимся сюда.
- P.S.
- Настоятельно рекомендую с zabbix сервером использовать соответствующую ему версию клиента
Больше спасибо! все получилось. А как добавить в автозагрузку?
ОтветитьУдалитьНаписать скрипт, проверяющий запущены ли контейнеры, и если нет запускающий их в нужном порядке и добавить его в автозагрузку.
ОтветитьУдалитьТак как порядок запуска имеет значение они сами не стартуют.
Подскажите, пожалуйста, на что реально влияет указание зоны для контейнеров, при передаче параметра PHP_TZ= веб-интерфейс отображает время вроде бы корректно.
ОтветитьУдалитьНа время внутри контейнера, в случае Zabbix - на время событий в журнале, хост машина может быть в одном часовом поясе, а сервис использовать для другого разные варианты.
УдалитьСмотрите, что сделали не так: у меня год как работает скоро
ОтветитьУдалитьПодскажите, пожалуйста, сделал все ровно так же как описано в инструкции, заменив только timezone, все в статусе UP, но веб-интерфейс не запускается. По какому адресу должен быть доступен, по ip полученный zabbix-web в zabbix-net?
ОтветитьУдалитьdocker ps должен показывать 3 работающие контейнера.
УдалитьПодключение происходит по ip хоста на котором запущены контейнеры по http или https протоколам
После нескольких часов перекапывания интернета нашел в чем ошибка, при запуске zabbix web server у Вас указаны порты -p 80:80 -p 443:443, а внутри используются 8080 и 8443, соответственно при правильном пробросе -p 80:8080 -p 443:8443 все заработало
УдалитьЗначит поменялись настройки контейнера - на момент написания все работало так как описано(собственно та установка до сих пор работает)
УдалитьДай Бог тебе (Анонимно 4 июля 2020 г., 23:08) здоровья ) Поменял на -p 80:8080, заработало!
УдалитьЛучший!
Удалитьдень добрый а как при установленном zabbix в docker (я ставил через docker-compose на офиц сайте заббикса) как поменять значения в zabbix_server.conf я его найти вобще не могу
ОтветитьУдалитьНадо смотреть внутри контейнера
Удалить