Инструменты пользователя

Инструменты сайта


linux:overall:logs

Это старая версия документа!


Журналы / логи

journalctl

Управление сервисами в т.ч. и логами в системе, происходит системой инициализации systemd.
Хранит журналы в бинарном виде. Находится выше по иерархии чем syslogd и принимает события от него в т.ч.

  • -f - выводить новые сообщения в реальном времени.
  • -e, –pager-end - только последние сообщения.
  • -n - кол-во строк.
  • -x, –catalog (–list-catalog) - добавляет пояснения (максимальный уровень подсказок).
  • -u, –unit - выбранный сервис.
  • -k, –dmesg - сообщения только ядра (аналог dmesg).
  • –system - только системные сообщения.
  • -b (–list-boots) - логи последней загрузки (список доступных загрузок).
  • -o - формат вывода логов (json-pretty, verbose, cat и т.д.).
  • -p - приоритет.

Горячие клавиши

  • Пробел (b) - на одну страницу вниз (вверх).
  • g (G) - первая (последняя) строка.
  • / (n, N) - поиск (следующее, предыдущее вхождение).

Управление файлами

Задается максимальное доступное место на диске, по достижении, сообщения удаляются с конца.
Задается в параметрах SystemMaxUse= и RuntimeMaxUse= в файле /etc/systemd/journal.conf.

syslogd

Раньше была доминирующей подсистемой, сейчас преобладает systemd и journald в частности.
Хранит журналы в обычных файлах, в папке /var/log, программы отправляют свои логи на псевдоустройство /dev/log, там их принимает и обрабатывает данная подсистема. Способ распределения сообщений описан в файле /etc/rsyslog.d/50-default.conf
Имеется несколько «тематических» файлов журнала: auth.log, boot.log, dmesg, dpkg.log, kern.log, syslog (сборка из всех журналов), wtmp (отслеживание сеансов пользователей).
Уровни приоритетов:

  • debug - полезно при отладке.
  • info - информационный.
  • notice - нормальное состояние.
  • warn - предупреждение.
  • err - ошибка.
  • crit - критический уровень.
  • alert - требуется немедленное вмешательство.
  • emerg - систему нельзя использовать.

Ротация файлов. Logrotate

Есть описание параметров

Утилита Logrotate, основная конфигурация /etc/logrotate.conf, в папке /etc/logrotate.d/ отдельные конфиги
Сама утилита запускается раз в день, в планировщике есть файл- /etc/cron.daily/logrotate

Без порядковых номеров ротация перестает работать

Поэтому часовой интервал игнорируется, для меньшего интервала нужно создать отдельный конфиг (в другом месте для того чтобы не пересекаться с ежедневным), смысл в том чтобы запускать ее через крон самостоятельно, для этого настроим задачу:

  # Создали файл конфига
nano /home/sammy/logrotate.conf
 
  # Запускаем вручную (-d для тестирования)
logrotate /home/sammy/logrotate.conf
 
  # Добавляем в крон
"15 * * * * /usr/sbin/logrotate /home/sammy/logrotate.conf"

Ротировать можно как регулярно (по времени) так и по размеру файла
Можно выполнять скрипты до и после ротации

Образец конфига:

/var/log/messages # файл для работы, можно указать маску
{
daily 
rotate 3 # хранить 3 последних файла
size 10M # при условии что файл не меньше 10мб
compress # сжимать
delaycompress # кроме последнего и предпоследнего
}

Для самостоятельного запуска, переименовываем файл после ротации. Его нужно перемещать создавать копию, без номеров ротация перестает работать

/usr/zxbcps/files/zx.tar
{
	rotate 3
	sharedscripts # Для того чтобы скрипт выполнялся один раз
	postrotate
		day=$(date +%Y-%m-%d_%H:%M)
		mv /usr/zxbcps/files/zx.tar.1 /usr/zxbcps/files/zzx_$day.tar
	endscript
}

</details>

 
linux/overall/logs.1657469800.txt.gz · Последнее изменение: 2022/07/10 16:16 — admin