Dozzle на VPS — це ефективний спосіб централізованого перегляду логів Docker-контейнерів у реальному часі через зручний веб-інтерфейс, який дозволяє швидко діагностувати проблеми та моніторити роботу ваших сервісів на віртуальному сервері.
У сучасному світі, де мікросервіси та контейнеризація стали стандартом, керування логами безлічі Docker-контейнерів може стати справжнім викликом. Традиційний перегляд логів через командний рядок (docker logs) не завжди зручний, особливо коли йдеться про десятки або сотні контейнерів, що працюють на кількох серверах. Тут на допомогу приходить Dozzle — легковажний, але потужний інструмент для моніторингу логів у реальному часі прямо з вашого браузера. Valebyte.com, як провайдер високопродуктивних VPS та виділених серверів, розуміє важливість ефективних інструментів для розробників та системних адміністраторів. У цій статті ми детально розглянемо, як виконати встановлення Dozzle на ваш VPS, налаштувати його для безпечної роботи та забезпечити подальше обслуговування.
Що таке Dozzle і чому він незамінний для моніторингу логів на VPS?
Dozzle — це простий, але функціональний веб-інтерфейс, призначений для перегляду логів Docker-контейнерів. Він надає інтуїтивно зрозумілий дашборд, який дозволяє в реальному часі відстежувати вихідні дані всіх ваших контейнерів, запущених на одному або кількох хостах Docker. Основна ідея Dozzle полягає в наданні централізованого, зручного та швидкого доступу до логів без необхідності входу на кожен сервер по SSH та виконання команд docker logs.
Що таке Dozzle? Основні можливості та переваги.
Dozzle виділяється серед аналогічних інструментів завдяки своїй легкості та простоті розгортання. Він сам запускається в Docker-контейнері та взаємодіє з Docker Engine через сокет. Ось ключові особливості та переваги, які роблять Dozzle на VPS незамінним інструментом:
- Моніторинг логів у реальному часі: Dozzle автоматично оновлює логи в міру їх появи, надаючи актуальну інформацію про роботу ваших додатків.
- Зручний веб-інтерфейс: Доступ до логів через будь-який сучасний браузер, без необхідності встановлення додаткового ПЗ на локальну машину.
- Пошук та фільтрація: Потужні функції пошуку дозволяють швидко знайти потрібну інформацію за ключовими словами, регулярними виразами або за конкретними контейнерами. Ви можете фільтрувати логи за іменем контейнера, статусом, часовим діапазоном.
- Підтримка кількох хостів: Dozzle може підключатися до кількох Docker-хостів, дозволяючи централізовано керувати логами з різних VPS або серверів.
- Легкість: Dozzle споживає мінімум ресурсів, що робить його ідеальним для розгортання на VPS з обмеженими ресурсами.
- Простота встановлення: Розгортання Dozzle займає лічені хвилини завдяки його контейнерній природі (dozzle docker).
- Автоматичне визначення контейнерів: Dozzle автоматично виявляє всі запущені контейнери та відображає їх у списку.
- Dark Mode: Для тих, хто віддає перевагу темним темам, Dozzle пропонує зручний "нічний" режим.
Навіщо використовувати Dozzle на VPS для Docker-контейнерів?
Використання Dozzle на віртуальному сервері від Valebyte.com дає низку переваг, особливо для розробників та системних адміністраторів, які керують контейнеризованими додатками:
- Централізоване керування логами: Замість того, щоб підключатися до кожного VPS по SSH та вручну перевіряти логи, ви отримуєте єдину точку доступу для всіх ваших контейнерів. Це особливо актуально, якщо ви використовуєте кілька VPS для різних сервісів, наприклад, для Coder на VPS або Woodpecker CI на VPS.
- Швидка діагностика проблем: Миттєвий доступ до логів дозволяє оперативно виявляти помилки, відстежувати збої та розуміти поведінку додатків у реальному часі, що скорочує час простою.
- Покращена спостережуваність: Dozzle підвищує прозорість роботи ваших сервісів, дозволяючи легко відстежувати події, попередження та інформаційні повідомлення.
- Економія часу: Автоматизація та централізація перегляду логів значно скорочують час, що витрачається на ручні операції.
- Доступність: Веб-інтерфейс доступний з будь-якого пристрою, що має доступ до інтернету, що дозволяє моніторити сервери з будь-якої точки світу.
- Безпека: При правильному налаштуванні (з HTTPS та автентифікацією, про що ми розповімо далі) доступ до логів може бути захищений, запобігаючи несанкціонованому перегляду.
У підсумку, Dozzle self-hosted на вашому VPS від Valebyte.com стає потужним інструментом для ефективного керування та моніторингу вашої інфраструктури Docker.
Системні вимоги Dozzle та який VPS обрати?
Перш ніж приступити до встановлення Dozzle, важливо переконатися, що ваш VPS відповідає мінімальним системним вимогам. Dozzle розроблений бути максимально легковажним, тому він не вимагає значних ресурсів, що робить його ідеальним кандидатом для розгортання на стандартних VPS-планах.
Мінімальні вимоги для встановлення Dozzle.
Для базової роботи Dozzle з невеликою кількістю контейнерів (до 10-20) та помірним обсягом логів потрібні такі ресурси:
- Операційна система: Будь-який дистрибутив Linux, що підтримує Docker (наприклад, Ubuntu 20.04+, Debian 10+, CentOS 7+). Рекомендується використовувати свіжі версії Ubuntu або Debian для кращої сумісності та доступності пакетів.
- Docker Engine: Версія 1.12.0 або вище.
- Docker Compose: Версія 1.20.0 або вище (або Docker Compose V2, який тепер інтегрований у Docker CLI).
- Оперативна пам'ять (RAM): Мінімум 512 МБ. Dozzle сам по собі споживає близько 20-50 МБ RAM. Основне споживання залежатиме від кількості та активності ваших контейнерів Docker.
- Процесор (CPU): 1 vCPU (віртуальне ядро). Dozzle не є ресурсоємним додатком.
- Дисковий простір: Мінімум 10 ГБ NVMe SSD. Для самого Dozzle потрібно лише кілька десятків мегабайт, але Docker-образи та логи інших контейнерів можуть швидко заповнювати диск. NVMe SSD значно прискорить операції Docker.
- Мережеве підключення: Стабільне інтернет-з'єднання для завантаження образів Docker та доступу до веб-інтерфейсу.
Важливо пам'ятати, що ці вимоги стосуються самого Dozzle. Якщо на вашому VPS вже запущені інші ресурсоємні додатки (наприклад, веб-сервери, бази даних, CI/CD системи на кшталт code-server на VPS або Meilisearch на VPS), то загальний обсяг необхідних ресурсів буде значно вищим.
Рекомендовані конфігурації VPS для різного навантаження з Dozzle.
Вибір оптимальної конфігурації VPS для Dozzle на сервері залежить від кількості контейнерів, інтенсивності генерації логів та загальної кількості додатків, що працюють на вашому сервері. Valebyte.com пропонує різні тарифні плани, які підійдуть для будь-яких завдань.
| Сценарій використання | vCPU | RAM | Диск (NVMe SSD) | Орієнтовна вартість/міс. (Valebyte.com) | Коментар |
|---|---|---|---|---|---|
| Мінімальний (тестування, 1-5 контейнерів) | 1 ядро | 1 ГБ | 20 ГБ | від $5 | Для легких проєктів, персонального використання. Dozzle та кілька простих контейнерів. |
| Малий (до 20 контейнерів, помірні логи) | 2 ядра | 2 ГБ | 40 ГБ | від $10 | Стандартний варіант для більшості невеликих та середніх проєктів, де вже є веб-сервер, база даних. |
| Середній (до 50 контейнерів, активні логи) | 4 ядра | 4 ГБ | 80 ГБ | від $20 | Для продакшн-серверів з кількома десятками контейнерів, що потребують регулярного моніторингу. |
| Великий (50+ контейнерів, високонавантажені сервіси) | 6+ ядер | 8+ ГБ | 160+ ГБ | від $40 | Для складних мікросервісних архітектур, де Dozzle моніторитиме безліч активних сервісів. |
Важливе примітка: Якщо ви плануєте використовувати Dozzle для моніторингу логів великої кількості контейнерів, що генерують дуже багато вихідних даних (наприклад, CI/CD пайплайни або високонавантажені API), переконайтеся, що ваш VPS має достатній обсяг оперативної пам'яті та швидкий NVMe SSD для обробки та зберігання цих даних. Швидкий диск критичний для продуктивності Docker загалом. Valebyte.com пропонує VPS з NVMe SSD за замовчуванням, що є великою перевагою.
Шукаєте надійний сервер для ваших проєктів?
VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.
Дивитися пропозиції →Покрокове встановлення Dozzle на VPS з Docker та Docker Compose
Процес встановлення Dozzle максимально спрощений завдяки використанню Docker. Ми розглянемо кроки з підготовки вашого VPS, встановлення необхідних компонентів та розгортання Dozzle.
Підготовка VPS до встановлення Dozzle: оновлення системи та встановлення Docker.
Перш ніж встановлювати Dozzle, необхідно підготувати ваш VPS. Передбачається, що у вас є свіжий VPS з Ubuntu 20.04/22.04 або Debian 11/12. Підключіться до вашого сервера по SSH:
ssh user@your_vps_ip
1. Оновлення системи:
Завжди починайте з оновлення пакетної бази та встановлених пакетів, щоб забезпечити стабільність та безпеку системи.
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
2. Встановлення Docker Engine:
Dozzle працює як Docker-контейнер, тому вам знадобиться встановлений Docker Engine. Дотримуйтесь офіційних інструкцій для встановлення Docker. Для Ubuntu/Debian це виглядає так:
Встановіть необхідні пакети для встановлення Docker через HTTPS:
sudo apt install -y ca-certificates curl gnupg lsb-release
Додайте офіційний GPG ключ Docker:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Додайте репозиторій Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Оновіть пакетну базу ще раз та встановіть Docker Engine, Docker CLI та containerd:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Перевірте, що Docker запущений:
sudo systemctl status docker
Додайте вашого користувача до групи docker, щоб не використовувати sudo при кожній команді Docker:
sudo usermod -aG docker $USER
newgrp docker
Тепер ви можете перевірити версію Docker без sudo:
docker --version
docker compose version
Якщо docker compose version не працює, можливо, у вас стара версія Docker Compose (v1). У цьому випадку встановіть її окремо:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Для Docker Compose v1
# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose
Або, якщо у вас вже є Docker Compose V2 (docker-compose-plugin), команда docker compose (без дефіса) працюватиме.
Розгортання Dozzle за допомогою Docker Compose.
Тепер, коли Docker встановлений, ми можемо розгорнути Dozzle за допомогою Docker Compose. Це рекомендований спосіб для dozzle docker, оскільки він спрощує керування контейнерами.
1. Створіть директорію для Dozzle:
Створіть нову директорію, в якій зберігатимуться файли конфігурації Dozzle.
mkdir -p ~/dozzle
cd ~/dozzle
2. Створіть файл docker-compose.yml:
Створіть файл з ім'ям docker-compose.yml та додайте до нього таку конфігурацію. Цей файл описує, як Dozzle має бути запущений.
nano docker-compose.yml
Вставте наступний вміст:
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "8080:8080"
environment:
# DOZZLE_USERNAME: "your_username" # Опціонально: для базової автентифікації
# DOZZLE_PASSWORD: "your_password" # Опціонально: для базової автентифікації
DOZZLE_NO_ANALYTICS: "true" # Вимкнути надсилання анонімної статистики
DOZZLE_GLOBAL_FILTERS: "dozzle" # Виключити сам dozzle зі списку, якщо потрібно
DOZZLE_FILTER: "name!=dozzle" # Альтернативний спосіб виключити dozzle
restart: unless-stopped
labels:
- "dozzle.exclude=true" # Dozzle сам себе не відображатиме у списку логів
Пояснення до конфігурації:
image: amir20/dozzle:latest: Вказує на використання останньої стабільної версії образу Dozzle.container_name: dozzle: Присвоює контейнеру зручне ім'я.volumes: - /var/run/docker.sock:/var/run/docker.sock:ro: Це критично важливий рядок. Він монтує сокет Docker Engine з хоста в контейнер Dozzle в режимі лише для читання (ro). Це дозволяє Dozzle взаємодіяти з Docker Engine та отримувати інформацію про контейнери та їхні логи.ports: - "8080:8080": Прокидає порт 8080 контейнера Dozzle на порт 8080 вашого VPS. Ви зможете отримати доступ до Dozzle за адресоюhttp://your_vps_ip:8080.environment:: Секція для змінних оточення.DOZZLE_USERNAME/DOZZLE_PASSWORD: Опціонально. Якщо ви хочете додати базову HTTP-автентифікацію для доступу до Dozzle. Рекомендується, якщо ви не використовуєте зворотний проксі з власною автентифікацією.DOZZLE_NO_ANALYTICS: "true": Вимикає надсилання анонімної статистики використання розробникам Dozzle.DOZZLE_FILTER: "name!=dozzle": Відфільтровує сам контейнер Dozzle зі списку логів, щоб він не моніторив свої власні логи.
restart: unless-stopped: Контейнер Dozzle автоматично перезапускатиметься при збоях або перезавантаженні VPS, якщо він не був зупинений вручну.labels: - "dozzle.exclude=true": Це мітка, яку сам Dozzle використовує для фільтрації, щоб не показувати свої логи.
3. Запустіть Dozzle:
Збережіть файл docker-compose.yml та запустіть Dozzle:
docker compose up -d
Якщо ви використовуєте стару версію Docker Compose (v1), команда буде docker-compose up -d.
4. Перевірте статус контейнера:
Переконайтеся, що контейнер Dozzle запущений та працює:
docker ps -a
Ви повинні побачити контейнер з ім'ям dozzle та статусом Up.
5. Доступ до Dozzle:
Тепер ви можете отримати доступ до веб-інтерфейсу Dozzle, відкривши в браузері адресу http://your_vps_ip:8080. Замініть your_vps_ip на фактичну IP-адресу вашого VPS. Ви побачите список усіх ваших Docker-контейнерів та зможете переглядати їхні логи в реальному часі.
На цьому етапі встановлення Dozzle на VPS завершено, і ви маєте базовий доступ. Однак для продакшн-середовища настійно рекомендується налаштувати безпечний доступ через доменне ім'я, HTTPS та зворотний проксі, про що ми розповімо в наступному розділі.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Налаштування безпечного доступу до Dozzle: Reverse Proxy (Nginx/Caddy) та HTTPS
Прямий доступ до Dozzle за IP-адресою та портом 8080 не є безпечним та професійним рішенням. Для продакшн-середовища необхідно налаштувати зворотний проксі (Reverse Proxy) та забезпечити шифрування трафіку за допомогою HTTPS. Це дозволить вам отримати доступ до Dozzle за доменним ім'ям (наприклад, logs.yourdomain.com) та захистити з'єднання SSL-сертифікатом від Let's Encrypt. Ми розглянемо два популярні зворотні проксі: Nginx та Caddy.
Перед початком переконайтеся, що у вас є доменне ім'я, яке вказує на IP-адресу вашого VPS (запис A в DNS).
Конфігурація Nginx як Reverse Proxy для Dozzle.
Nginx — це потужний та широко використовуваний веб-сервер і зворотний проксі. Якщо у вас вже встановлений Nginx на вашому VPS (наприклад, для інших веб-додатків, таких як Typesense на VPS), це відмінний вибір.
1. Встановлення Nginx (якщо не встановлений):
sudo apt install -y nginx
2. Створення конфігураційного файлу Nginx для Dozzle:
Створіть новий файл конфігурації для вашого домену (наприклад, logs.yourdomain.com.conf) у директорії /etc/nginx/sites-available/.
sudo nano /etc/nginx/sites-available/logs.yourdomain.com.conf
Вставте наступну конфігурацію, замінивши logs.yourdomain.com на ваш реальний домен:
server {
listen 80;
server_name logs.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080; # Або http://localhost:8080
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
3. Активація конфігурації:
Створіть символічне посилання на файл конфігурації в sites-enabled та перевірте синтаксис Nginx:
sudo ln -s /etc/nginx/sites-available/logs.yourdomain.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
Якщо синтаксис у порядку, перезавантажте Nginx:
sudo systemctl restart nginx
Тепер ви можете отримати доступ до Dozzle за http://logs.yourdomain.com. Але нам потрібен HTTPS.
Налаштування Caddy як Reverse Proxy для Dozzle.
Caddy — це сучасний веб-сервер, який спрощує налаштування HTTPS, автоматично отримуючи та оновлюючи SSL-сертифікати від Let's Encrypt. Якщо ви віддаєте перевагу простоті, Caddy — відмінний вибір.
1. Встановлення Caddy (якщо не встановлений):
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
2. Створення файлу Caddyfile для Dozzle:
Відкрийте або створіть файл /etc/caddy/Caddyfile:
sudo nano /etc/caddy/Caddyfile
Вставте наступну конфігурацію, замінивши logs.yourdomain.com на ваш домен:
logs.yourdomain.com {
reverse_proxy 127.0.0.1:8080
}
Це все! Caddy автоматично отримає SSL-сертифікат та налаштує HTTPS.
3. Застосування конфігурації Caddy:
sudo systemctl reload caddy
Тепер Dozzle доступний за https://logs.yourdomain.com.
Отримання та автоматичне оновлення SSL-сертифікатів з Let's Encrypt.
Якщо ви використовували Caddy, він автоматично подбає про SSL. Якщо ви обрали Nginx, вам знадобиться Certbot для отримання та автоматичного оновлення сертифікатів Let's Encrypt.
1. Встановлення Certbot (для Nginx):
sudo apt install -y certbot python3-certbot-nginx
2. Отримання SSL-сертифіката:
Виконайте команду Certbot, вказавши ваш домен:
sudo certbot --nginx -d logs.yourdomain.com
Certbot поставить кілька запитань (email, згода з умовами) та автоматично змінить конфігурацію Nginx для використання HTTPS.
3. Перевірка автоматичного оновлення:
Certbot автоматично створює cron-завдання або systemd-таймер для регулярної перевірки та оновлення сертифікатів. Ви можете перевірити, чи працює механізм оновлення:
sudo certbot renew --dry-run
Якщо команда виконується без помилок, ваші сертифікати автоматично оновлюватимуться.
Тепер ваш Dozzle self-hosted доступний за захищеним HTTPS-з'єднанням через ваше доменне ім'я, що є критично важливим кроком для будь-якого продакшн-додатку.
Обслуговування Dozzle на сервері: резервне копіювання, оновлення та моніторинг
Після успішного встановлення Dozzle важливо забезпечити його стабільну роботу в довгостроковій перспективі. Це включає регулярні оновлення, створення резервних копій та моніторинг ресурсів. Правильне обслуговування гарантує, що ваш інструмент для моніторингу логів завжди буде актуальним та надійним.
Як оновлювати Dozzle до останньої версії.
Оновлення Dozzle дуже просте завдяки використанню Docker Compose. Розробники Dozzle регулярно випускають нові версії з виправленнями помилок, покращеннями продуктивності та новими функціями. Рекомендується оновлюватися до останніх версій, щоб використовувати всі переваги.
1. Перейдіть до директорії Dozzle:
cd ~/dozzle
2. Зупиніть та видаліть поточний контейнер Dozzle:
Це дозволить видалити стару версію контейнера, але збереже його дані (якщо вони були змонтовані в постійні томи, що у випадку з Dozzle не так критично, оскільки він не зберігає багато даних).
docker compose down
3. Завантажте останню версію образу Dozzle:
Ця команда завантажить новий образ amir20/dozzle:latest з Docker Hub.
docker compose pull dozzle
4. Запустіть Dozzle з новою версією образу:
Ця команда створить та запустить новий контейнер Dozzle з використанням щойно завантаженого образу.
docker compose up -d
Після цих кроків ваш Dozzle буде оновлено до останньої версії. Перевірте веб-інтерфейс, щоб переконатися в його працездатності.
Стратегії резервного копіювання конфігурації Dozzle.
Dozzle сам по собі не зберігає критично важливих даних, які вимагають складного резервного копіювання. Вся його конфігурація міститься у файлі docker-compose.yml. Тим не менш, рекомендується робити резервні копії цього файлу, а також конфігурацій зворотного проксі (Nginx/Caddy).
Що резервувати:
docker-compose.yml: Файл, який ви створили в директорії~/dozzle.- Конфігурація Nginx: Файл
/etc/nginx/sites-available/logs.yourdomain.com.conf. - Конфігурація Caddy: Файл
/etc/caddy/Caddyfile. - SSL-сертифікати Let's Encrypt: Директорія
/etc/letsencrypt/. Хоча Certbot може їх відновити, наявність резервної копії може прискорити процес.
Методи резервного копіювання:
- Ручне копіювання: Найпростіший спосіб — вручну скопіювати ці файли на локальну машину або в хмарне сховище.
- Використання Git: Зберігайте конфігураційні файли в приватному Git-репозиторії. Це дозволяє відстежувати зміни та легко відновлювати попередні версії.
- Автоматизовані скрипти: Створіть простий bash-скрипт, який архівуватиме потрібні файли та відправлятиме їх у хмарне сховище (наприклад, S3, Google Drive) або на віддалений сервер по SCP/SFTP.
Приклад простого скрипта для резервного копіювання (backup_dozzle.sh):
#!/bin/bash
BACKUP_DIR="/var/backups/dozzle_config"
TIMESTAMP=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="$BACKUP_DIR/dozzle_config_$TIMESTAMP.tar.gz"
mkdir -p $BACKUP_DIR
# Архівуємо docker-compose.yml
tar -czvf $BACKUP_FILE -C ~/dozzle docker-compose.yml
# Додаємо конфігурацію Nginx
if [ -f "/etc/nginx/sites-available/logs.yourdomain.com.conf" ]; then
tar -rvf $BACKUP_FILE -C /etc/nginx/sites-available logs.yourdomain.com.conf
fi
# Додаємо конфігурацію Caddy
if [ -f "/etc/caddy/Caddyfile" ]; then
tar -rvf $BACKUP_FILE -C /etc/caddy Caddyfile
fi
# Додаємо сертифікати Let's Encrypt (опціонально, можна не резервувати, Certbot відновить)
# tar -rvf $BACKUP_FILE -C /etc letsencrypt
echo "Backup created: $BACKUP_FILE"
# Видалення старих резервних копій (наприклад, старше 7 днів)
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -delete
echo "Old backups cleaned."
Зробіть скрипт виконуваним (chmod +x backup_dozzle.sh) та додайте його в cron для регулярного виконання.
Моніторинг ресурсів VPS та логів Dozzle.
Хоча Dozzle сам по собі є інструментом моніторингу логів, важливо також стежити за його власним станом та ресурсами VPS, щоб забезпечити безперебійну роботу. Dozzle, як і будь-який інший додаток, може зіткнутися з проблемами або почати споживати більше ресурсів, ніж очікувалося.
1. Моніторинг ресурсів VPS:
htopабоtop: Ці утиліти командного рядка дозволяють у реальному часі відстежувати споживання CPU, RAM та активність процесів.docker stats: Показує споживання ресурсів (CPU, RAM, мережа, I/O) усіма запущеними Docker-контейнерами, включаючи Dozzle.df -h: Перевіряйте вільний дисковий простір. Логи можуть швидко заповнювати диск, навіть якщо Dozzle їх не зберігає, інші контейнери можуть.- Системні метрики: Використовуйте системи моніторингу, такі як Prometheus + Grafana, Netdata або Zabbix, для довгострокового збору та аналізу метрик вашого VPS.
2. Моніторинг логів самого Dozzle:
Якщо у вас виникли проблеми з Dozzle, ви можете переглянути його власні логи через Docker:
docker logs dozzle
Це допоможе виявити помилки або попередження, пов'язані з роботою Dozzle. У більшості випадків Dozzle працює стабільно, але якщо, наприклад, у нього виникають проблеми з доступом до /var/run/docker.sock, це буде відображено в його логах.
Регулярне виконання цих процедур дозволить вам підтримувати Dozzle на сервері в оптимальному стані та швидко реагувати на будь-які потенційні проблеми.
Оптимізація та безпека Dozzle self-hosted
Розгортання Dozzle self-hosted на вашому VPS дає вам повний контроль, але також накладає відповідальність за його оптимізацію та безпеку. Ці аспекти критично важливі для стабільної та захищеної роботи в виробничому середовищі.
Найкращі практики безпеки для Dozzle.
Оскільки Dozzle надає доступ до чутливих даних (логів ваших додатків), його безпека повинна бути пріоритетом.
- Використовуйте HTTPS: Як ми вже налаштували, HTTPS (SSL/TLS) шифрує весь трафік між вашим браузером та Dozzle, запобігаючи перехопленню даних. Ніколи не використовуйте Dozzle по HTTP у продакшені.
- Зворотний проксі з автентифікацією:
- Якщо ви використовуєте Nginx, розгляньте можливість додавання базової HTTP-автентифікації (
auth_basic) або інтеграції з більш складною системою автентифікації (наприклад, OAuth2 Proxy). - Caddy також підтримує різні методи автентифікації.
- Альтернативно, якщо у вас вже є VPN-з'єднання з вашим VPS, ви можете зробити Dozzle доступним лише через VPN.
- Якщо ви використовуєте Nginx, розгляньте можливість додавання базової HTTP-автентифікації (
- Базова автентифікація Dozzle: Якщо ви не використовуєте зворотний проксі з власною автентифікацією, увімкніть вбудовану базову автентифікацію Dozzle, додавши змінні оточення в
docker-compose.yml:environment: DOZZLE_USERNAME: "your_secure_username" DOZZLE_PASSWORD: "your_strong_password"Використовуйте складний пароль, не використовуйте той самий, що й для інших сервісів або SSH.
- Обмежте доступ до Docker сокету: Dozzle потрібен доступ до
/var/run/docker.sock. Однак переконайтеся, що лише довірені користувачі мають доступ до групиdockerна вашому хості, оскільки це еквівалентно root-доступу. - Налаштуйте файрвол (UFW/firewalld):
- Дозвольте вхідний трафік лише на порти 80 (HTTP) та 443 (HTTPS) для Nginx/Caddy.
- Закрийте порт 8080 (або будь-який інший порт, який Dozzle відкриває безпосередньо), щоб прямий доступ до нього ззовні був неможливий.
Приклад для UFW:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw deny 8080/tcp # Якщо ви не хочете, щоб Dozzle був доступний безпосередньо sudo ufw enable - Регулярні оновлення: Як згадувалося раніше, регулярно оновлюйте Dozzle та Docker Engine, щоб отримувати виправлення безпеки.
- Мінімальні привілеї: Dozzle запускається з мінімальними необхідними привілеями. Не додавайте йому додаткових прав, якщо це не потрібно.
- Фільтрація логів:
- Використовуйте змінну оточення
DOZZLE_FILTERдля виключення контейнерів, логи яких вам не потрібні. Наприклад,DOZZLE_FILTER: "name!=monitoring_agent". - Можна також використовувати
DOZZLE_GLOBAL_FILTERSдля застосування фільтра за замовчуванням до всіх логів. - Використовуйте мітки Docker (
labels) для фільтрації контейнерів, як показано в прикладіdocker-compose.ymlдля самого Dozzle (dozzle.exclude=true).
- Використовуйте змінну оточення
- Обмеження ресурсів контейнера Dozzle:
Якщо Dozzle починає споживати занадто багато ресурсів (що малоймовірно), ви можете обмежити його CPU та RAM у
docker-compose.yml:services: dozzle: # ... deploy: resources: limits: cpus: '0.5' # Обмежити до 50% одного ядра memory: 256M # Обмежити до 256 МБ RAM reservations: cpus: '0.25' memory: 128MЦе запобігатиме Dozzle від надмірного споживання ресурсів, якщо щось піде не так.
- Оптимізація логів додатків:
Переконайтеся, що ваші додатки не генерують надлишкові або занадто "багатослівні" логи. Налаштуйте рівні логування в ваших додатках (наприклад, INFO, WARNING, ERROR), щоб зменшити обсяг даних, що передаються в Dozzle.
- Log Rotation для Docker:
Хоча Dozzle не зберігає логи, Docker Engine за замовчуванням зберігає логи контейнерів. Якщо ви не налаштуєте ротацію логів, вони можуть заповнити диск. Додайте конфігурацію ротації логів у
docker-compose.ymlдля ваших контейнерів (не для Dozzle, оскільки Dozzle сам не генерує об'ємні логи, які потрібно ротувати):services: my_app: # ... logging: driver: "json-file" options: max-size: "10m" max-file: "3"Це обмежить розмір файлу логів до 10 МБ і зберігатиме лише 3 останні файли.
Оптимізація продуктивності Dozzle.
Хоча Dozzle легковажний, при великій кількості контейнерів або дуже інтенсивному потоці логів можуть знадобитися деякі оптимізації.
Застосовуючи ці найкращі практики, ви забезпечите, що ваш Dozzle на VPS буде не тільки функціональним, але й безпечним та ефективним інструментом для моніторингу логів у вашій інфраструктурі.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Висновки
Dozzle на VPS є потужним та інтуїтивно зрозумілим рішенням для централізованого моніторингу логів Docker-контейнерів у реальному часі. Його легкість, простота встановлення Dozzle через Docker Compose та можливість безпечного налаштування за допомогою зворотного проксі та HTTPS роблять його ідеальним інструментом для розробників та системних адміністраторів, які керують контейнеризованими додатками на віртуальних серверах.
Для забезпечення максимальної продуктивності, стабільності та безпеки вашого Dozzle self-hosted, рекомендується обирати високопродуктивні VPS з NVMe SSD, які пропонує Valebyte.com. Такі сервери забезпечать швидку обробку логів та надійну роботу вашої інфраструктури Docker.
Готові обрати сервер?
VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.
Почати зараз →