Логирование
Иногда, когда возникают какие-либо проблемы с работой продукта, для их решения мы просим предоставить нам логи работы платформы.
Для установки с Docker
Утилита collect-logs
Для удобного сбора логов мы разработали утилиту collect-logs, которая позволяет одной командой получить все необходимые логи и упаковать их в архив для передачи команде техподдержки.
Все собранные логи, по умолчанию, сохраняются в файл ${PWD}/system_logs_$(date +%Y%m%d_%H%M%S).tar.gz
Примеры. Собрать логи за последние 5 часов:
- используя инсталлер:
- из директории с распакованным установщиком:
- если приложение установлено:
Включение DEBUG логов
Для получения более детальной информации в логах рекомендуется включить режим DEBUG:
-
Откройте файл
/opt/hw-vmp/config/user.ini -
Добавьте следующие параметры в раздел
[main]
- Чтобы применить изменения, выполните команду:
/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 в файле оверрайдов:
После изменения конфигурации примените изменения:
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, в который он установлен).
Пример как задать переменные среды окружения:
Параметр времени: Используйте флаг --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с указанием конкретной даты и времени - Логи отдельных компонентов удобнее для анализа, чем общий файл со всеми логами