Различные службы создают журналы автоматически. В VMware Aria Automation можно создавать наборы журналов. Кроме того, в среде можно настроить автоматическую отправку журналов в VMware Aria Operations for Logs.
Для получения сведений о служебной программе командной строки vracli
используйте аргумент --help
в командной строке vracli
(например, vracli log-bundle --help
).
Дополнительные сведения об использовании VMware Aria Operations for Logs см. в разделе Настройка пересылки журналов в VMware Aria Operations for Logs в VMware Aria Automation.
Команды набора журналов
В наборе журналов можно объединить все журналы, которые создаются запущенными службами. Набор журналов содержит все журналы служб. Набор журналов можно использовать для устранения неполадок.
В кластерной среде (режим высокой доступности) команда vracli log-bundle
выполняется только на одном узле. Журналы собираются со всех узлов в среде. Однако при наличии проблем c сетевым подключением или проблем в кластере журналы собираются только с доступных узлов. Например, если в кластере, состоящем из трех узлов, один узел недоступен, то журналы собираются только с двух работоспособных узлов. Выходные данные команды vracli log-bundle
содержат сведения об обнаруженных проблемах и их устранении.
- Чтобы создать набор журналов, необходимо подключиться по протоколу SSH к любому узлу и выполнить следующую команду
vracli
:vracli log-bundle
- Чтобы изменить время ожидания при получении журналов с каждого узла, выполните следующую команду
vracli
:vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS
Например, в среде с большими файлами журналов, медленной сетью или интенсивным использованием ЦП, можно установить время ожидания, превышающее значение по умолчанию (1000 сек.).
- Чтобы определить дисковое пространство, используемое конкретным журналом службы, например
ebs
илиvro
, выполните следующую командуvracli
и проанализируйте ее выходные данные.vracli disk-mgr
- Чтобы настроить другие параметры, например время ожидания сборки и расположение буфера, используйте следующую команду справки
vracli
:vracli log-bundle --help
Структура набора журналов
Набор журналов — это файл tar с отметками времени. Имя пакета формируется по шаблону log-bundle-<дата>T<время>.tar
, например log-bundle-20200629T131312.tar
. Типовой набор журналов содержит журналы со всех узлов среды. В случае ошибки он содержит максимально возможное количество журналов. Как минимум он содержит журналы с локального узла.
- Файл среды
Файл среды содержит выходные данные различных команд обслуживания Kubernetes. Он предоставляет информацию о текущем использовании ресурсов по узлам и по модулям. В нем также содержатся сведения о кластере и описания всех доступных сущностей Kubernetes.
- Журналы узлов и конфигурация
Конфигурация каждого узла (например, его каталога
/etc
) и связанные с узлом журналы (например,journald
) собираются в одном каталоге для каждого узла кластера. Имя каталога соответствует имени узла. Внутреннее содержимое каталога соответствует файловой системе узла. Количество каталогов соответствует количеству узлов кластера. - Журналы служб
Журналы для служб Kubernetes находятся в следующей иерархии папок:
<hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
<hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log
Пример имени файла —
my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log
.- hostname — это имя узла, на котором выполняется или выполнялся контейнер приложения. Как правило, на каждом узле используется один экземпляр каждой службы. Например, 3 узла = 3 экземпляра.
- namespace — это пространство имен Kubernetes, в котором развернуто приложение. Для служб, связанных с пользователями, оно имеет значение
prelude
. - app-name — это имя приложения Kubernetes, создавшего журналы (например,
provisioning-service-app
). - container-name — это имя контейнера, в котором созданы журналы. Некоторые приложения состоят из нескольких контейнеров. Например, контейнер
vco-app
содержит контейнерыvco-server-app
иvco-controlcenter-app
.
- Журналы модулей (устарело)
Хотя наборы журналов модулей можно по-прежнему создавать с помощью команды
vracli log-bundle --include-legacy-pod-logs
, это не рекомендуется делать, поскольку все данные журналов уже находятся в журналах служб. Создание журналов модулей может привести к невынужденной потере времени и затратам памяти при создании набора журналов.
Уменьшение размера набора журналов
Чтобы создать набор журналов, имеющий меньший размер, используйте какую-либо из следующих команд vracli log-bundle
.
vracli log-bundle --since-days n
Эта команда используется для сбора только тех файлов журнала, которые были созданы за определенное количество прошедших дней. По умолчанию собираются и хранятся журналы за последние 2 дня. Например:
vracli log-bundle --since-days 1
vracli log-bundle --services service_A,service_B,service_C
Эта команда используется для сбора журналов только для именованных предоставленных служб. Например:
vracli log-bundle --services ebs-app,vco-app
vracli log-bundle --skip-heap-dumps
Используйте эту команду, чтобы исключить дампы кучи из созданного набора журналов.
Отображение журналов
Для вывода журналов модуля или приложения службы можно использовать команду vracli logs <pod_name>
.
- --service
Отображение объединенного журнала для всех узлов приложения вместо одного модуля.
Пример:
vracli logs --service abx-service-app
- --tail n
Отображение последних n строк журнала. Значение n по умолчанию — 10.
Пример:
vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk
- --file
Отображение только указанного файла. Если имя файла не указано, отображаются все файлы.
Пример:
vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk
Основные сведения о ротации журналов
- Все службы создают журналы. Журналы служб хранятся на выделенном диске
/var/log/services-logs
. - Все журналы регулярно проходят ротацию. Ротация происходит ежечасно или при достижении определенного ограничения размера.
- Ротация старых журналов со временем уплотняется.
- Квот на ротацию журналов для отдельных служб не устанавливается.
- Система сохраняет как можно больше журналов. Автоматизация регулярно проверяет дисковое пространство, занятое журналами. Если оно заполняется на 70 %, старые журналы удаляются, пока его объем не достигнет 60 %.
- Если требуется больше пространства, емкость диска для журналов можно изменить. См. раздел Увеличение размера диска устройства VMware Aria Automation.
Чтобы проверить дисковое пространство для журналов, выполните следующие команды vracli
. Свободного места на диске /dev/sdc(/var/log)
для каждого узла должно быть не менее 30 %.
# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0' sc1-10-182-1-103.eng.vmware.com /dev/sda4(/): Total size: 47.80GiB Free: 34.46GiB(72.1%) Available(for non-superusers): 32.00GiB(66.9%) SCSI ID: (0:0) /dev/sdb(/data): Total size: 140.68GiB Free: 116.68GiB(82.9%) Available(for non-superusers): 109.47GiB(77.8%) SCSI ID: (0:1) /dev/sdc(/var/log): Total size: 21.48GiB Free: 20.76GiB(96.6%) Available(for non-superusers): 19.64GiB(91.4%) SCSI ID: (0:2) /dev/sdd(/home): Total size: 29.36GiB Free: 29.01GiB(98.8%) Available(for non-superusers): 27.49GiB(93.7%) SCSI ID: (0:3)