• Настройка скрипта / 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" using true or false. For example, "true:true:true" enables all tests, while "false:true:false" enables only DNS resolution via getent.

    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:

    1. Add its name to the SERVICES array.
    2. If the container exposes a port that should be checked, add an entry to SERVICE_PORT in the format "port:protocol".
    3. If special checks are required (e.g., verifying internal services or network interfaces), write a function and add its name to SERVICE_EXTRA.
    4. 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.sh

    Thresholds 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 CRITICAL entry 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. Подберите значения под нагрузку вашего сервера, чтобы избежать ложных перезапусков.

    Как добавить новый контейнер:

    1. Добавьте его имя в массив SERVICES.
    2. Если контейнер слушает порт, который нужно проверять, добавьте запись в SERVICE_PORT в формате "порт:протокол".
    3. Если требуются особые проверки (например, внутренние сервисы или сетевые интерфейсы), напишите функцию и укажите её имя в SERVICE_EXTRA.
    4. Настройте интернет‑тесты для нового контейнера в 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
  • EN: Make the script executable:
    chmod +x /opt/amnezia/scripts/check_amnezia.sh

    RU: Сделайте скрипт исполняемым:
    chmod +x /opt/amnezia/scripts/check_amnezia.sh

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment