Download PDF
Download page Лог-файлы платформы.
Лог-файлы платформы
VMmanager сохраняет информацию о работе сервисов в лог-файлы (журнальные файлы, журналы). Данные из лог-файлов могут быть использованы для диагностики работы платформы.
Перечень лог-файлов
Основные лог-файлы
Основные лог-файлы сервисов VMmanager хранятся в контейнере vm_box в директории /var/log/. Обычно имя лог-файла совпадает с названием сервиса. Например, лог-файл сервиса vmwatch называется vmwatch.log.
Имя файла | Содержимое |
---|---|
Общие сервисы | |
vm_1_writer.log |
|
vm_1_reader.log | API-запросы, выполненные методом GET |
monitor.log | сервис мониторинга ВМ и узлов кластера |
run_script.log | запуск скриптов |
vmctl.log |
|
vmwatch.log | события libvirt, синхронизация состояния ВМ |
Операции с ВМ | |
check_storage.log | проверка хранилищ ВМ |
connect_storages.log | подключение хранилищ ВМ |
disk_resize.log | операции по изменению дисков ВМ |
gosockify.log | сервис проксирования доступа к ВМ по VNC |
host.log | создание и удаление ВМ |
host_action.log | запуск, остановка, перезапуск ВМ |
host_change_password.log | смена root-пароля для ВМ |
host_firewall.log | настройка файрвола |
host_image_create.log | создание образов ВМ |
host_image_delete.log | удаление образов ВМ |
host_migration.log | миграция ВМ |
host_redefine.log | изменение параметров ВМ, установка пароля VNC |
host_snapshot.log | операции со снимками ВМ |
host_source_copy.log | загрузка и копирование образов ВМ и шаблонов ОС |
image_relocate.log | перемещение образов ВМ |
iso.log | загрузка и подключение ISO-образов |
uploader.log | загрузка ISO-образов |
websockify.log | сервис доступа к ВМ по VNC |
Операции с LXD-контейнерами | |
lxdconsole.log | клонирование LXD-контейнеров |
lxd_init.log | создание LXD-контейнеров |
Операции с узлами кластера | |
hawatch.log | микросервис hawatch. Подробнее см. в статье Принцип работы отказоустойчивых кластеров |
lxd_node_info.log | сбор информации об узлах LXD-кластера |
network_configure.log node_network.log | конфигурация сети на узле кластера |
node_create/{node_id}.log | сбор информации о добавлении узлов кластера и ошибках добавления |
node_info.log | сбор информации об узле кластера (данные об ОС, диске и т.д.) |
Установка платформы
Лог установки платформы сохраняется в файл /opt/ispsystem/vm/install.log.
Различные сервисы
Функция | Контейнер | Путь к файлу |
---|---|---|
Лицензирование | license | stdout контейнера |
Сервис уведомлений | msgsender | /var/log/msgsender_1_reader.1.log /var/log/msgsender_1_writer.1.log |
Почтовые уведомления о создании, переустановке ОС, смене пароля ВМ | msgsender | /var/log/email.log |
Работа Telegram-бота. Подробнее см. в статье Отправка уведомлений в Telegram | msgsender | /var/log/telegram.log |
Cбор информации об аптайме узла кластера, версиях QEMU, libvirt | nodewatch | /var/log/nodewatch.log |
Миграция из VMmanager 5 | importer | /var/log/importer.log |
Миграция адресного пространства | ipmgr | /var/log/ip_ipmgr5_proxy.log |
Синхронизация с каталогом LDAP | ldap | /var/log/isp_ldap.log |
Выполнение последовательностей запросов | batch | stdout контейнера |
Лог-файлы на узле кластера
Функция | Путь к файлу |
---|---|
Сбор метрик для статистики | /var/log/gomon.log |
Сервис ha-agent. Подробнее см. в статье Принцип работы отказоустойчивых кластеров | /var/log/ha-agent.log |
Работа с логами
Скопировать лог-файл из контейнера
Чтобы скопировать лог-файл из контейнера в текущую директорию, выполните команду:
docker cp <container_name>:<path_to_log> ./
<container_name> — имя контейнера
<path_to_log> — путь и имя лог-файла
Пример команды
docker cp auth:/var/log/licupdate.log ./
Просмотр лог-файлов в контейнере
Перейдите в нужный контейнер:
docker exec -it <container_name> sh
BASH<container_name> — имя контейнера
Пример команды
docker exec -it vm_box sh
BASHПросмотрите лог-файл стандартными утилитами Linux. Например, cat, tail, less и т.д.
Пример команды
less /var/log/host.log
BASHЧтобы просмотреть логи конкретной задачи:
- В интерфейсе платформы перейдите в Задачи → выберите задачу → скопируйте значение request_id.
Выполните команду:
grep <request_id> /var/log/*
CODE<request_id> — значение request_id
Выйдите из контейнера:
exit
BASH
Просмотр лог-файлов через stdout
Для некоторых сервисов не создаются отдельные лог-файлы. Логи этих сервисов записываются в stdout. Чтобы просмотреть такие логи, выполните команду:
docker logs <container_name> --tail <lines> --since <period>
<container_name> — имя контейнера
<lines> — количество строк
<period> — период сбора логов
Пример команды: Посмотреть последние 100 строк лога контейнера vm_box, созданные за последние 60 минут
docker logs vm_box --tail 100 --since 60m
Сбор логов платформы
Чтобы собрать все лог-файлы платформы в одной директории:
- Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
Создайте bash-скрипт logs_collect.sh следующего содержания:
#!/bin/bash rm /home/logs -fr DOCKER_CONTAINER_NAMES=`docker ps --format '{{.Names}}'` SERVICES=($DOCKER_CONTAINER_NAMES) cd /home mkdir -p logs cd logs for service in ${SERVICES[@]} do echo -e "----\033[0;31mCopying logs from $service\033[0m----\n" mkdir -p $service docker cp $service:/var/log/. $service/. docker logs $service > $service/${service}_stdout.log 2>&1 done cp -r /opt/ispsystem/*/install.log install.log ARCHIVE_NAME="logs_$(date +'%Y_%m_%d_%H_%M_%S').tar.gz" tar -cvzf /home/$ARCHIVE_NAME -C /home/logs .
BASHЗапустите скрипт:
bash logs_collect.sh
BASH
Лог-файлы будут сохранены в директорию /home/logs/, архив с логами — в директорию /home/.
Логирование в journald
По умолчанию в платформе отключено логирование в системной службе journald. Чтобы включить логирование:
- Подключитесь к серверу с платформой по SSH.
Создайте файл патча /opt/ispsystem/vm/journald.yaml с содержимым:
version: "3.5" services: auth: volumes: - /var/run/systemd/journal/:/var/run/systemd/journal/ ldap: volumes: - /var/run/systemd/journal/:/var/run/systemd/journal/ vm_box: volumes: - /opt/ispsystem/vm/backup:/opt/ispsystem/vm/backup - /opt/ispsystem/license:/opt/ispsystem/license - /opt/ispsystem/vm/socket/:/opt/ispsystem/vm/vmbox/ - /var/run/systemd/journal/:/var/run/systemd/journal/
CODEПримените патч:
vm add-patch -p journald -f /opt/ispsystem/vm/journald.yaml
BASH
Может быть полезно
Связанные статьи: