Skip to content

Логирование

Иногда, когда возникают какие-либо проблемы с работой продукта, для их решения мы просим предоставить нам логи работы платформы.

Для установки с Docker

Утилита collect-logs

Для удобного сбора логов мы разработали утилиту collect-logs, которая позволяет одной командой получить все необходимые логи и упаковать их в архив для передачи команде техподдержки.

Все собранные логи, по умолчанию, сохраняются в файл ${PWD}/system_logs_$(date +%Y%m%d_%H%M%S).tar.gz

Примеры. Собрать логи за последние 5 часов:

  • используя инсталлер:
bash install_dev_hw_vmp_en-US_<version>.run -- --collect-logs --output ${PWD} --since -5h
  • из директории с распакованным установщиком:
bin/collect-logs --since -5h
  • если приложение установлено:
/opt/hw-vmp/bin/collect-logs --since -5h

Включение DEBUG логов

Для получения более детальной информации в логах рекомендуется включить режим DEBUG:

  • Откройте файл /opt/hw-vmp/config/user.ini

  • Добавьте следующие параметры в раздел [main]

v.engine.logging.level=DEBUG
v.background.logging.level=DEBUG
  • Чтобы применить изменения, выполните команду: /opt/hw-vmp/bin/reconfig

Ручной сбор логов

Если утилита collect-logs недоступна, можно собрать логи вручную. Для этого выполните следующую команду:

sudo su
TODAY=$( date '+%Y-%m-%d' ); journalctl -u hw-vmp --since ${TODAY} | gzip > hw-vmp-${TODAY}.log.gz

Для установки в Kubernetes кластере

Включение DEBUG логов для Kubernetes

Для более подробных логов установите уровень DEBUG в файле оверрайдов:

vEngine:
  logLevel: DEBUG

vBackground:
  logLevel: DEBUG

vOrchestration:
  logLevel: DEBUG

После изменения конфигурации примените изменения:

helm upgrade $RELEASE_NAME oci://registry.hexway.io/charts/vampy \
  --version $RELEASE_VERSION \
  -n $RELEASE_NAMESPACE \
  -f my-values.yaml

Сбор логов

В примерах команд ниже предполагается, что заданы переменные среды окружения RELEASE_NAME и RELEASE_NAMESPACE. Вы можете задать их или подставлять нужные значения прямо в команды. Используйте те же значения, которые были указаны при установке чарта (имя релиза и namespace, в который он установлен).

Пример как задать переменные среды окружения:

RELEASE_NAME="vampy"
RELEASE_NAMESPACE="vampy"

Параметр времени: Используйте флаг --since для указания периода времени, за который собираются логи. Примеры:

  • --since=1h - логи за последний час
  • --since=30m - логи за последние 30 минут
  • --since=24h - логи за последние 24 часа
  • --since=2026-01-01T00:00:00Z - логи с указанной даты и времени

Сбор логов всех компонентов:

# Экспортируем логи каждого pod в отдельный файл за последний час
for pod in $(kubectl get pods -n $RELEASE_NAMESPACE \
  -l app.kubernetes.io/instance=$RELEASE_NAME \
  -o name); do
  pod_name=${pod#pod/}
  kubectl logs -n $RELEASE_NAMESPACE "$pod" \
    --timestamps --since=1h 2>&1 > "vampy-${pod_name}-1h.log"
done

Сбор логов конкретных компонентов:

# Экспортируем логи каждого pod v-background-cpu-load в отдельный файл за последний час
for pod in $(kubectl get pods -n $RELEASE_NAMESPACE \
  -l app.kubernetes.io/component=${RELEASE_NAME}-v-background-cpu-load \
  -o name); do
  pod_name=${pod#pod/}
  kubectl logs -n $RELEASE_NAMESPACE "$pod" \
    --timestamps --since=1h 2>&1 > "vampy-${pod_name}-1h.log"
done

Список компонентов:

  • v-engine (Backend)
  • v-background (Background Workers в базовом режиме, без vBackgroundSeparated)
  • v-background-cpu-load (BackgroundSeparated: cpu-load scan/calc)
  • v-background-business-flow (BackgroundSeparated: business-flow)
  • v-background-high-priority-calc (BackgroundSeparated: high-priority-calc)
  • v-orchestration (Orchestration)
  • v-scheduling (Scheduling)
  • v-reports (Reports)
  • v-bro (Bro)
  • v-bro-background (Bro background workers)
  • v-deck (Frontend)
  • v-files (Files)
  • v-postgres (PostgreSQL, если используется встроенная БД)
  • v-pgbouncer (PgBouncer, если используется встроенная БД)
  • v-redis (Redis, если используется встроенный Redis)

Сбор диагностической информации:

# Экспорт состояния всех ресурсов
kubectl get all -n $RELEASE_NAMESPACE -o yaml 2>&1 > vampy-resources.yaml

# Экспорт событий (может быть пустым, если события очищены или их нет - это нормально)
# События полезны для диагностики проблем с ресурсами, образами, PVC, но автоматически очищаются через ~1 час
kubectl get events -n $RELEASE_NAMESPACE --sort-by='.lastTimestamp' 2>&1 > vampy-events.txt

# Экспорт конфигурации Helm
helm get values $RELEASE_NAME -n $RELEASE_NAMESPACE -o yaml 2>&1 > vampy-helm-values.yaml
helm get manifest $RELEASE_NAME -n $RELEASE_NAMESPACE 2>&1 > vampy-helm-manifest.yaml

# Список всех подов с их статусами
kubectl get pods -n $RELEASE_NAMESPACE -o wide 2>&1 > vampy-pods.txt

# Описание проблемных подов (если есть)
kubectl describe pods -n $RELEASE_NAMESPACE 2>&1 > vampy-pods-describe.txt

Примечания:

  • При выборе временного интервала учитывайте, что логи за большой период (24 часа и более) могут создать очень большие файлы
  • Если проблема возникла в конкретное время, используйте --since с указанием конкретной даты и времени
  • Логи отдельных компонентов удобнее для анализа, чем общий файл со всеми логами