Создайте новый сервис используя второй Branch репозитория в том случае если: у вас имеется готовая база данных для Zabbix-сервера. Во втором Branch вырезан импорт схемы БД на Neon, поскольку БД уже готова и её можно спокойно подключать. Данные сохраняются.
Докер контейнер в который входит всё необходимое. Предназначен для разворачивания на Render или ином хостинге. Всё выполнено в едином контейнере для обеспечения возможности бесплатного деплоя на Render. В контейнер входит Zabbix, Tailscale (VPN), Nginx, PHP8.2.
- Зарегистрируйтесь на Neon.
- Создайте базу данных zabbix с пользователем zabbix.
- Скопируйте пароль пользователя zabbix и ссылку на базу данных (ссылка вида: ep-patient-pine-a8i3xzku.eu-central-1.aws.neon.tech, остальные части не копируйте).
- Зарегистрируйтесь на Tailscale.
- Создайте ключ авторизации и скопируйте его (ключ выдаётся на 90 дней, но после подключения узла можно отключить ему автоматический выход по истечении действия ключа).
- Если планируете разворачивать на Render или ином хостинге, то пропускайте этот шаг. Если планируете разворачивать на своем сервере, то:
git clone https://github.com/Elux414/Zabbix-7.0-Nginx-Neon-Docker-container
- Выберите "New", далее "Web Service" (для Render).
- Прокрутите страницу вниз, найдите строку "Environment Variables".
- Указывайте следующие переменные - NEON_URL=<ссылка на БД Neon>, DB_HOST=<ссылка на БД Neon>, DB_PASSWORD=<пароль для пользователя zabbix>, AUTH_KEY=<ключ авторизации Tailscale>, PORT=80.
- Сделайте деплой на Render или ином хостинге, те кто разворачивают на своем сервере:
docker build --build-arg NEON_URL=<ссылка на БД Neon> --build-arg DB_HOST=<ссылка на БД Neon> --build-arg DB_PASSWORD=<пароль для пользователя zabbix> --build-arg AUTH_KEY=<ключ авторизации Tailscale> -t zb-neon .
- Для тех кто на своём сервере:
Если контейнер не подключился к Tailscale, то:
docker run --name=zb-neon -itd zb-neon
docker run -e TAILSCALE_AUTH_KEY=<ключ авторизации Tailscale> --name=zb-neon -itd zb-neon
Всё должно работать по ссылке, которую преоставляет Render или иной хостинг, либо же переходите по IP-адресу своего сервера.
- Подключите своё устройство/устройства к своей сети Tailscale (можно по тому же самому ключу авторизации) или же перейти по ссылке, которая будет выведена после выполнения команды:
tailscale up
- В интерфейсе Tailscale посмотрите IP-адрес Zabbix-сервера, скопируйте его.
- Редактируйте конфиг Zabbix-агента на своём устройстве, необходимо прописать IP-адрес в директиве "Server" и "ServerActive", а также задать имя хоста в директиве "Hostname".
- В интерфейсе Zabbix-сервера добавьте хоста с именем, которое указали в конфиге агента. Интерфейс НЕ ЗАДАЁТЕ. Шаблон проверки выбираете любой нужный, главное чтобы в названии присуствовало "Active".
Готово, Active значит то, что агент будет самостоятельно отправлять данные, поскольку сервер сам не видит других участников VPN (ограничения привилегий мешают), однако если у вас есть белый IP, то можно настроить проброс портов и может тогда вам даже не нужен будет Tailscale. Если у вас несколько хостов, то можно настроить Zabbix-прокси у себя и уже с прокси отправлять данные на сервер.
У вас имеется Zabbix-сервер на хостинге или вашем сервере. База данных также облачная, но с ограничением на память (500 мегабайт максимальный вес), но если настроите период хранения данных в Zabbix-сервере, то место можно будет экономить. VPN посредством Tailscale.