Сбор информации в терминале
В данном разделе описаны действия по сбору информации в консоли терминала.
Скрипт для сбора логов доступен на каждом узле кластера - /opt/multivdi/get_logs.sh.
Параметры скрипта
Скрипт может быть запущен как с параметрами, так и без.
Доступны следующие параметры:
- docker - логи контейнеров и логи демона.
- postgresql - логи БД.
- vdi-gateway - логи шлюза (доступны только на хосте со шлюзом).
- apache - логи Apache.
- vdi - установочные логи мультидиспетчера.
- syslog.
Временной интервал для docker
Доступен временной интервал 1d, 3d, 1w (1 день, 3 дня, 1 неделя), но он применяется только для сбора логов docker-демона. Для остальных сервисов скрипт собирает все логи.
Пример запуска скрипта
- Получение всех логов за все время:
./get_logs.sh - Получение логов определенных сервисов:
./get_logs.sh docker postgresql -
Получение логов docker-демона за определенный интервал времени:
./get_logs.sh docker 3d
Структура логов в итоговом архиве
После запуска скрипта в текущий директории будет создан архив вида - logs_archive_2024-11-21_17-38-54.tar.gz.
Архив будет создан при наличии логов. Если логов не было, то архив соответственно создан не будет.
Для распаковки архива необходимо ввести команду:
tar -xzf [имя архива] --one-top-level
После этого будет создана одноименная директория, в которой будут доступны логи сервисов.
Директория docker содержит:
- файл с логами docker-демона;
- директорию
containers_logs, которая содержит логи для каждого контейнера.
Просмотр логов docker-контейнеров
Настроено логирование на уровне docker daemon:
-
Логи пишутся в stdout/stderr контейнера.
-
Docker перехватывает stdout/stderr и записывает в JSON файлы.
-
Ротация: максимум 3 файла по 50 МБ каждый на контейнер.
-
Расположение логов: /var/lib/docker/containers/
/ *-json.log
