Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Журналирование

Каждый экземпляр Tarantool записывает события в собственный файл журнала. Для экземпляров, запущенных с помощью утилиты tt, расположение журнала определяется параметром log_dir в конфигурации tt. По умолчанию это директория /var/log/tarantool в системном режиме tt и поддиректория var/log рабочей директории tt в локальном режиме. В указанном расположении tt создает отдельные директории для журналов каждого экземпляра.

Чтобы проверить, как работает журналирование, запишите что-нибудь в журнал с помощью модуля log:

$ tt connect application   • Connecting to the instance...   • Connected to applicationapplication> require('log').info("Hello for the manual readers")---...

Затем проверьте содержимое журнала:

$ tail instances.enabled/application/var/log/instance001/tt.log2024-04-09 17:34:29.489 [49502] main/106/gc I> wal/engine cleanup is resumed2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'instance_name' configuration option to "instance001"2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'custom_proc_title' configuration option to "tarantool - instance001"2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'log_nonblock' configuration option to false2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'replicaset_name' configuration option to "replicaset001"2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'listen' configuration option to [{"uri":"127.0.0.1:3301"}]2024-04-09 17:34:29.489 [49502] main/107/checkpoint_daemon I> scheduled next checkpoint for Tue Apr  9 19:08:04 20242024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'metrics' configuration option to {"labels":{"alias":"instance001"},"include":["all"],"exclude":}2024-04-09 17:34:29.489 [49502] main I> entering the event loop2024-04-09 17:34:38.905 [49502] main/116/console/unix/:/tarantool I> Hello for the manual readers

Ротация журналов

При записи в файл системному администратору следует обеспечивать своевременную ротацию журналов, чтобы они не занимали всё доступное место на диске. Рекомендуемый способ избежать бесконечного роста файлов журналов — использовать внешнюю программу ротации, например logrotate, которая входит в большинство популярных дистрибутивов Linux.

Конфигурация ротации журналов Tarantool для logrotate может выглядеть так:

# /var/log/tarantool/<env>/<app>/<instance>/*.log/var/log/tarantool/*/*/*/*.log {    daily    size 512k    missingok    rotate 10    compress    delaycompress    sharedscripts # Run tt logrotate only once after all logs are rotated.    postrotate        /usr/bin/tt -S logrotate    endscript}

В этой конфигурации команда tt logrotate вызывается после каждой ротации, чтобы экземпляр заново открыл файлы журналов после их перемещения программой logrotate.

Также есть встроенная функция log.rotate(), которую можно вызвать на экземпляре, чтобы он заново открыл файл журнала после ротации.

Место назначения журналов

Tarantool может записывать журналы в файл, в syslog или в другую программу через конвейер. Например, чтобы отправлять журналы в syslog, задайте параметр log.to следующим образом:

/code_snippets/snippets/config/instances.enabled/log_syslog/config.yaml