BILLmanager ведёт логи для отслеживания работы системы, диагностики проблем и анализа событий. Информация в логах помогает находить информацию об ошибках, платежах, действиях пользователей и работе модулей. Подробнее см. в статье Логирование в BILLmanager.
Вопрос
Как искать информацию в логах BILLmanager?
Ответ
Основная информация о логах
Базовая информация о логах и поиске в них:
- логи расположены в директории /usr/local/mgr5/var/;
- главный лог платформы называется billmgr.log;
- логи модулей платформы имеют формат pmxxx.log. Например, pmvmmgr6.log — лог обработчика услуг VMmanager 6;
- платёжные модули могут иметь дополнительные логи. Например, модуль оплаты Paymaster кроме pmpaymaster.log имеет дополнительные логи pmaspayment.log, pmasresult.log и другие. Подробнее о логировании платёжных систем см. по ссылке Подключение методов оплаты;
- архивные логи хранятся в директории /usr/local/mgr5/var/logs/ в формате название_лога.время_создания.gz. Например:
billmgr.log.2019_08_18_08_51_02.0.gz - при анализе информации в первую очередь обращайте внимание на строки с ERROR. Они подсвечиваются красным цветом;
- чтобы получить более детализированные логи, увеличьте уровень логирования. Вы можете поменять уровень логирования как через веб-интерфейс платформы, так и через конфигурационный файл /usr/local/mgr5/etc/debug.conf. Подробнее см. в статье Логирование в BILLmanager.
Мониторинг логов в реальном времени
Для отслеживания событий системы в момент их возникновения используйте режим мониторинга логов в реальном времени. Выполните команду:
tail -f /usr/local/mgr5/var/<название_лога>Сразу после запуска команда выведет несколько последних строк лога, а затем начнёт показывать новые записи в реальном времени. Чтобы остановить вывод, нажмите Ctrl+C.
Как работает утилита tail:
- без ключа -f tail отображает последние строки файла;
- с ключом -f tail запускает режим реального времени. Сначала утилита выводит последние строки файла, затем автоматически показывает новые записи в логе по мере их появления. Это позволяет:
- наблюдать за текущей работой платформы;
- немедленно обнаруживать и анализировать ошибки при воспроизведении действий в платформе;
- отлаживать действия пользователей и системных процессов.
См. подробнее в статье Логирование в BILLmanager.
Фильтрация логов с помощью утилиты grep
Утилита grep позволяет фильтровать логи по определённым критериям:
- поиск ошибок:
tail -f /usr/local/mgr5/var/<название_лога> | grep "ERROR"ПоясненияПример выводаtail -f /usr/local/mgr5/var/billmgr.log| grep "ERROR" Dec 11 08:55:02 [1588072:1] libmgr ERROR Error: Type: 'remote_pricelist' Object: '' Value: '' Dec 11 08:55:02 [1588072:1] libmgr ERROR Error: Type: 'remote_pricelist' Object: '' Value: '' - поиск по ID сущности:
tail -f /usr/local/mgr5/var/<название_лога> | grep "<ID_сущности>"ПоясненияПример выводаtail -f /usr/local/mgr5/var/billmgr.log| grep "16453" Dec 11 09:12:55 [1499690:13153] db EXTINFO Query: 'SELECT p.id, p.billurl FROM account2project a2p JOIN project p ON p.id=a2p.project WHERE a2p.account=16453 ORDER BY p.id' - поиск по email клиента:
tail -f /usr/local/mgr5/var/<название_лога> | grep "<email_клиента>"ПоясненияПример выводаtail -f /usr/local/mgr5/var/billmgr.log| grep "1111@test.com" Dec 11 09:17:34 [1499690:13188] core_module INFO Request [10.10.10.10][root#1111@test.com(16461)] 'func=usrparam&out=xjson&sfrom=ajax' - поиск по потоку лога: Поток лога — это уникальный идентификатор, который система присваивает каждой параллельной задаче при её запуске. Например, когда пользователь оплачивает услугу в платформе, система создаёт или использует такой поток для обработки именно этого запроса. Все сообщения в логе, связанные с этим конкретным действием, будут иметь одинаковый номер потока. Подробнее см. в статье Логирование в BILLmanager.
- Откройте лог-файл:
less -R /usr/local/mgr5/var/<название_лога>Пояснения - Найдите в логе запись с ошибкой или другим событием для анализа и определите номер потока. Например:
Пример логаDec 10 10:10:06 [22253:17] db EXTINFO Query: 'SELECT id, billurl FROM project' Dec 10 10:10:06 [22253:17] db EXT Query duration: 0.000069Пояснения - Выполните поиск:
grep "22253:17" /usr/local/mgr5/var/<название_лога>ПоясненияПример выводаgrep "22253:17" /usr/local/mgr5/var/billmgr.log Dec 11 09:30:08 [22253:17] libmgr TRACE Evaluate path = '/doc/headers/header[@name]' Dec 11 09:30:08 [22253:17] libmgr TRACE Evaluate path = '/doc/cookies/cookie' Dec 11 09:30:08 [22253:17] libmgr TRACE Evaluate path = '//auth[@id]'или через утилиту less:
less -R /usr/local/mgr5/var/<название_лога> | grep "22253:17"Пояснениедля архивных логов:
zgrep "22253:17" /usr/local/mgr5/var/logs/billmgr.log.2019_08_18_08_51_02.0.gzПояснения
- Откройте лог-файл:
Просмотр существующих логов
Чтобы вывести существующие логи, выполните команды:
- текущие логи:
less -R /usr/local/mgr5/var/<название_лога>Пояснения - архивные логи:
zless -R /usr/local/mgr5/var/logs/billmgr.log.2019_08_18_08_51_02.0.gzПояснения
Как работать с less:
-
чтобы выполнить поиск по логам с начала файла, введите
/и поисковой запрос:/<искомая_фраза>Пример/22253:17 - чтобы выполнить поиск по логам в обратном направлении (от конца файла к началу), введите
?и поисковой запрос:
?<искомая_фраза>Пример?22253:17 - чтобы переключаться между найденными совпадениями, нажмите n;
- для перехода в конец файла нажмите Shift+g;
- для перехода в начало файла нажмите g;
- чтобы выйти из less, нажмите q.
Расширенные методы поиска
Чтобы выполнить расширенный поиск по логам, выполните команды:
grep "ERROR" /usr/local/mgr5/var/pm*.logzgrep "ERROR" /usr/local/mgr5/var/logs/billmgr.log.2019_08_*zgrep "22253:17" /usr/local/mgr5/var/logs/billmgr.log.2025_08_* | grep "ERROR"Указанная команда:
- ищет строки с
22253:17во всех архивных логах за август 2025; - отбирает среди найденных строк только те, которые содержат
ERROR.
Связанные статьи: