В данном документе описаны инструменты сбора серверных логов и описано расположение логов.
Документ предназначен для использования администраторами организации.
Способ 1. Универсальный инструмент сбора логов report.sh
Для сбора логов, информации о системе и оборудовании, а также копий конфигурационных файлов — под пользователем root выполнить команду
/usr/local/bin/report.sh
с необходимым ключом:
-
-s— информация о системе; -
-k— логи подов кубернетиса; -
-l— информация о системе и логи за последние 2 часа; -
-h— справка; -
-F— выгрузка полных логов; -
-f— выгрузка указанных логов сервиса за определенный период времени:Для выгрузки необходимо указать ключи:
-
-f— сервис; -
-B— начальная дата поиска; -
-A— конечная дата для поиска.Формат указания даты ГОД-МЕСЯЦ-ЧИСЛО.
Можно указывать несколько сервисов через ключ
-f, например:-f beagle -f krtek.Если ключ
Aне указан, то будут найдены log-файлы за период указанный в-Bпо текущий день.Если ключи
-Aи-Bне указаны, будут найдены все доступные log-файлы за весь период.Пример работы скрипта report.sh с ключом
-f:report.sh -f beagle -f krtek -B 2023-11-20 -A 2023-11-22Скрипт соберет логи за указанный период. Вывод команды будет следующим:
[14:44:12] Все данные будут размещены в каталоге /mnt/log/report[14:44:12] Создаю директорию /mnt/log/report[14:44:12] Создаю директорию /mnt/log/report/find_log[14:44:13] Для отправки данных в MAIL.RU GROUP вам потребуется сетевой доступ к https://files.icq.com[14:44:13] Отправить собранные данные в MAIL.RU GROUP?1) Yes2) No
-
-
-d— выбор директории для выгрузки логов;
Пример работы ключа:
/usr/local/bin/report.sh -F -d /tmp
Команда сохранит полную выгрузку report.sh в папку /tmp/report. Вывод команды будет следующим:
[10:00:04] Все данные будут размещены в каталоге /tmp/report[10:00:04] Создаю директории /tmp/report/archive /tmp/report/sysinfo[10:00:04] Собираю информацию о systemd units.[10:00:04] Собираю сетевые настройки.[10:00:04] Собираю информацию о конфигурации оборудования.
Ключи можно комбинировать, а также указывать несколько сервисов для поиска, например:
report.sh -s -l -f beagle -f krtek
Скрипт report.sh умеет отправлять собранные данные в службу технической поддержки. Для отправки выберите пункт 1 (Yes) в ответ на вопрос «Отправить собранные данные в MAIL.RU GROUP?». Отправка осуществляется только в том случае, если есть сетевой доступ до сервера https://files.icq.com. Иначе необходимо передать все собранные данные другим способом, например, разместить их для скачивания на собственных серверах.
Пример работы скрипта report.sh с ключом -f:
По умолчанию все собранные данные сохраняются в каталоге /mnt/log/report.
Если необходимо изменить каталог, выполните команду с указанием каталога, в котором будут сохраняться временные данные, например:
/usr/local/bin/report.sh /tmp
Способ 2. Логи Vector
Данный способ используется, если нет возможности загрузить report.sh, либо это избыточно (например, после выполнения команд по просьбе службы технической поддержки).
Под пользователем root выполнить команду:
tar -czf vector.tar.gz /var/log/vector/
и прислать поддержке архив vector.tar.gz.
В Vector хранятся логи всех сервисов, которые пишут их в стандартное место (большинство сервисов). Логи размещаются в директорию /var/log/vector/k8s в виде текстовых файлов c группировкой по пространству имен.
Логи видеоконференций можно смотреть в k9s, под janus.
В службу технической поддержки можно передать как выжимку за конкретную дату, так и файл целиком в виде архива.
Сервисы Мессенджер и ВКС могут писать логи в нестандартное место, указанное в конфигурационном файле сервиса.
Большинство логов находится в /var/log/service/ (пишутся только ошибки и выводы) и в /mnt/log/oap/icq/logs (логи сервисов за последний час).
Php: /srv/store/logs/
Nginx до ротации: /oap/icq/domains/local_proxy.icq.com/logs
Nginx после ротации: /oap/icq/domains/local_proxy.icq.com/logs/old_logs
Сервис Go-files: /oap/icq/logs/go.files.icq.com/
БД MySQL: /db/logs/mysql
БД Tarantool: /data/tarantool/logs
В случае проблем с подами Kubernetes:
Ошибки: kubectl logs
Описание: kubectl describe
Либо под пользователем root можно использовать оснастку k9s. Данный интерфейс отображает запущенные поды с их статусами.
Статус сервисов, запущенных в Docker-контейнере: docker ps
Статус всех сервисов, развернутых в Docker-контейнере: docker ps -a
Логи находятся в /var/log/vector/k8s/keycloak/keycloak/*
При наличии проблем с синхронизацией пользователей в первую очередь следует отслеживать записи уровня ERROR. Пример такой ошибки: дубликат пользователя — когда один и тот же пользователь заведен в нескольких ветках LDAP-каталога. Как правило, после каждой записи ERROR идет трассировка ошибки для более детального анализа.
Технический писатель: Белова Ирина