-
Настройка скрипта / Script Configuration
EN
The script is configured by editing the variables at the beginning of the file:
SERVICES – list of container names to monitor.
TEST_IPS, TEST_DOMAINS, TEST_URLS – targets for internet connectivity tests.
SERVICE_PORT – define port and protocol for each container (e.g.,
"443:tcp"). If a container does not require port checking, simply omit it.SERVICE_EXTRA – name of a custom check function for containers that need additional validation (e.g., internal HTTP checks or interface verification). Leave empty if not needed.
SERVICE_INTERNET_CHECKS – fine-grained control over which internet tests run per container. Format:
"PING:DNS:HTTP"usingtrueorfalse. For example,"true:true:true"enables all tests, while"false:true:false"enables only DNS resolution viagetent.FD_THRESHOLD and EXEC_THRESHOLD – resource limits for Docker daemon monitoring. Adjust these based on your server load to prevent false restarts.
How to add a new container:
- Add its name to the SERVICES array.
- If the container exposes a port that should be checked, add an entry to SERVICE_PORT in the format
"port:protocol". - If special checks are required (e.g., verifying internal services or network interfaces), write a function and add its name to SERVICE_EXTRA.
- Configure internet tests for the new container in SERVICE_INTERNET_CHECKS according to your needs.
Logs:
-
Main log:
/var/log/amnezia-monitor.log– general execution information. -
Errors:
/var/log/amnezia-monitor-errors.log– critical events and restarts. -
Network tests:
/var/log/amnezia-network-test.log– detailed results of ping, DNS, and HTTP checks. -
Docker health:
/var/log/amnezia-docker-health.log– file descriptor and exec process metrics for the Docker daemon.
Debugging:
To run internet tests on every execution (the script runs every 3 minutes via cron), no additional changes are required – all enabled checks run each time. The old 10‑minute condition has been removed.
Run the script manually to test:
/opt/amnezia/scripts/check_amnezia.shThresholds and alerts:
- Docker daemon restarts when file descriptor or exec process counts exceed the configured thresholds (
FD_THRESHOLD/EXEC_THRESHOLD). - A single container is restarted after a failure is detected. If the same container fails 3 times in a row, Docker itself is restarted as a last resort.
- A
CRITICALentry appears in the error log if internet test success rate drops below 50% for any container.
RU
Настройка скрипта производится через переменные в начале файла:
SERVICES – список имён контейнеров для мониторинга.
TEST_IPS, TEST_DOMAINS, TEST_URLS – цели для проверки интернет‑доступа.
SERVICE_PORT – порт и протокол для каждого контейнера (например,
"443:tcp"). Если проверка порта не требуется, запись просто не добавляется.SERVICE_EXTRA – имя пользовательской функции проверки для контейнеров, требующих дополнительной валидации (внутренние HTTP‑запросы, проверка интерфейсов и т.п.). Если не нужно, оставьте без записи.
SERVICE_INTERNET_CHECKS – гибкая настройка интернет‑тестов для каждого контейнера. Формат:
"PING:DNS:HTTP"со значениямиtrueилиfalse. Например,"true:true:true"включает все проверки, а"false:true:false"– только DNS черезgetent.FD_THRESHOLD и EXEC_THRESHOLD – пороги для мониторинга ресурсов Docker. Подберите значения под нагрузку вашего сервера, чтобы избежать ложных перезапусков.
Как добавить новый контейнер:
- Добавьте его имя в массив SERVICES.
- Если контейнер слушает порт, который нужно проверять, добавьте запись в SERVICE_PORT в формате
"порт:протокол". - Если требуются особые проверки (например, внутренние сервисы или сетевые интерфейсы), напишите функцию и укажите её имя в SERVICE_EXTRA.
- Настройте интернет‑тесты для нового контейнера в SERVICE_INTERNET_CHECKS в соответствии с его возможностями.
Логи:
-
Основной лог:
/var/log/amnezia-monitor.log– общая информация о работе. -
Ошибки:
/var/log/amnezia-monitor-errors.log– критические события и перезапуски. -
Сетевые тесты:
/var/log/amnezia-network-test.log– детальные результаты проверок ping, DNS и HTTP. -
Здоровье Docker:
/var/log/amnezia-docker-health.log– метрики дескрипторов и exec‑процессов Docker.
Отладка:
Интернет‑тесты выполняются при каждом запуске скрипта (по крону).
Запустите скрипт вручную для проверки:
/opt/amnezia/scripts/check_amnezia.shПороги срабатывания:
- Docker перезапускается, если количество открытых дескрипторов или exec‑процессов превышает заданные пороги (
FD_THRESHOLD/EXEC_THRESHOLD). - Контейнер перезапускается при первом же сбое. Если один и тот же контейнер падает три раза подряд, выполняется перезапуск Docker.
- Сообщение
CRITICALпоявляется в логе ошибок, если успешность интернет‑тестов для какого‑либо контейнера опускается ниже 50%.
Edited by OlleVi
Please register or sign in to comment