Всем привет!
Сегодня расскажу вам о том, что такое ротация журнальных файлов. Опишу важные лог-файлы в директории
/var/log, а так же утилиту
logrorate для ротации журналов (логов).
Всю журнальную информацию не рекомендуется уничтожать, потому что она требует тщательного анализа на предмет обнаружения попыток взлома системы и других вредоносных действий. Кроме того, эта информация может помочь инженеру выявить и устранить возникающие и уже имеющие место аппаратные и программные сбои.
Накапливающаяся информация со временем теряет некоторую актуальность для сиюминутного использования и, как правило, сжимается архивирующими утилитами, через определенные интервалы времени. Методы реализации такой стратегии в системе называются ротацией. Система ротации предполагает хранение резервных журнальных файлов с разбивкой по времени их создания.
Утилита, которая присутствует практически во всех дистрибутивах Linux и занимается журнальной ротаций, называется
logrotate.
А полнофункциональная система регистрации событий, написанная Эриком Оллманом и решающая вопросы автоматизации ведения журнальных файлов и управления журнальной регистрацией, называется
syslogd.
Logrotate
Как уже говорилось выше, logrotate занимается ротацией логов. Если по каким то причинам у вас не установлена программа logrotate, это можно сделать выполнив следующую команду:
Код:
|
# apt-get install logrotate |
Опции:
- -d – debug – активирует режим отладки, в котором включена и опция -v (действия программы сопровождаются выводом подробной информации). В режиме отладки файлы системных сообщений, а также файл состояния logrotate, не подвергаются изменениям со стороны утилиты
- -f ,–force – принуждает logrotate произвести обращение журналов, даже если сама программа не считает это необходимым. Иногда это полезно после добавления новых записей в logrotate или если старый файл журнала был удалён вручную; таким образом будут созданы новые файлы и журналирование будет корректно продолжено
- -m, –mail <команда> – указывает logrotate, какую команду использовать для отправки журналов по электронной почте. Эта команда может принять два аргумента: 1) тема письма и 2) получатель. Команда должна читать сообщение со стандартного входа и отсылать его электронной почтой получателю. Командой по умолчанию является /bin/mail -s
- -s, –state <файл> – предписывает logrotate использовать альтернативный файл состояния. Это полезно, если logrotate запускается от имени разных пользователей для разных наборов файлов системных сообщений. Файл состояния по умолчанию — /var/lib/logrotate/status
- –usage – выводит краткую справку об использовании
Конфигурационный файл программы logrotate находится в /etc/logrotate.conf, пример которого находится в листинге ниже:
Код:
|
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
# system-specific logs may be configured here |
Как видно из конфигурационного файла, logrotate будет хранить 4 старых архива логов (
rotate 4), ротация будет производиться раз в неделю в независимости от размера (
weekly), будут создаваться новые пустые файлы логов после архивирования старых (
create), но сжатие старых архивов отключено (
#compress –
строка закомментирована), а далее указаны отдельные логи и отдельные настройки для них.
Далее дано более подробное описание директив, которые могут быть включены в конфигурационный файл logrotate:
- rotate <число> – количество хранимых файлов
- daily, weekly, monthly – производить ротацию раз в день/неделю/месяц
- size <байт> – производить ротацию если log-файл превысил указанный размер
- start <число> – число с которого начнётся нумерация файлов
- compress – архивировать файлы (по умолчанию gzip)
- nocompress – отключает compress
- delaycompress - не сжимать ‘свеже’ созданный архив. Например access.log.1 не будет зжат. Используется с compress
- create <права> <владелец> <группа> - после ротации создать пустой log-файл. Любые из этих атрибутов могут быть опущены, в этом случае вместо них для нового файла будут использованы атрибуты, имеющие те же значения, что и первоначальный log-файл
- nocreate - не создавать файл
- copy - создать копию оригинального log-файла, не изменяя его. Исключает create
- nocopy - отключает copy
- copytruncate – создать копию оригинального log-файла, а потом его ‘обнулить’. Таким образом сам файл не удаляется. Исключает copy, create
- ifempty – архивирует даже пустой файл (используется по умолчанию)
- notifempty - не архивировать пустые файлы
- missingok - в случае отсутствия оригинального log-файла не вызовет ошибку
- nomissingok - в случае отсутствия оригинального log-файла вызовет ошибку
- postrotate <команды> endscript - строки, находящиеся между postrotate и endscript будут выполнены как sh скрипт после архивирования log-файла
- prerotate <команды> endscript - аналогично postrotate, только действия будут выполнены до начала архивирования
- sharedscripts - скрипты postrotate и prerotate будут выполнены только один раз в рамках своей секции.
- nosharedscripts - отключает sharedscripts. Скрипты будут выполняются при ротации каждого log-файла, при определение /var/log/apache2/*.log скрипт будет выполнен столько раз сколько уникальных log-файлов будет находится в данной директории
- olddir <путь> – перемещать архивные файлы в указанную директорию
- noolddir - отключает olddir
Посмотреть более полную информацию по программе
logrotate можно обратившись к man-странице программы:
Лог-файлы /var/log
С ротацией я думаю разобрались, теперь представляю вашему вниманию описание важных, по моему мнению, журнальных файлов linux:
/var/log/alternatives.log – журнальный файл программы update-alternatives, которая является механизмом выбора предпочтительного ПО среди нескольких вариантов в таких дистрибутивах Linux, как Debian и Ubuntu.
/var/log/auth.log – содержит информацию системы авторизации, в том числе логины и механизм проверки подлинности, которые были использованы.
/var/log/daemon.log – содержит информацию о различных демонах/сервисах запущенных в системе. С помощью этого файла можно обнаруживать и устранения проблемы во времени падения системы.
/var/log/dpkg.log – файл содержит информацию, которая логируется при установки/удалении пакета с помощью программы dpkg.
/var/log/yum.log – файл содержит информацию, которая логируется при установки/удалении пакета с помощью программы yum.
/var/log/faillog – в этом файле хранится число неудачных попыток входа в систему и их предельное число для каждой учётной записи. Используйте команду
faillog для отображения этого файла.
/var/log/kern.log – файл журнала ядра, предоставляет подробный лог сообщений от ядра Linux. Эти сообщения могут быть полезными при анализе и устранении неисправностей.
/var/log/maillog или
/var/log/mail.log – содержит информацию журнала почтового сервера, который работает в системе. Например sendmail.
/var/log/messages – файл содержит глобальные настройки, в том числе сообщения, которые регистрируются при запуске системы.
/var/log/wtmp – файл содержит двоичные данные о времени регистрации и продолжительность работы всех пользователей системы. Он пользуется командой last для вывода списка регистрировавшихся пользователей.
/var/run/utmp – двоичный файл, содержащий сведения о пользователях, зарегистрированных в системе в настоящее время. Он пользуется такими командами, как who, w и т.п.
/var/log/lastlog – файл содержащий записи о предыдущих входах в систему.
/var/log/dmesg – в файле содержаться все сообщения ядра, начиная с этапа загрузки системы. Просмотреть содержимое этого файла можно используя команду dmesg.
/var/log/boot – содержит информацию, которая регистрируется во время загрузки системы. Включить или отключить логирование можно отредактировав файл /etc/default/bootlogd:
Код:
|
# Run bootlogd at startup ?
BOOTLOGD_ENABLE=No |
/var/log/btmp – файл содержит записи обо всех неудавшихся попытках регистрации пользователей в системе. Посмотреть неудачные попытки входа в систему можно с помощью команды lastb.
/var/log/secure – cодержит записи соединений, которые требуют проверки подлинности. Например, демон sshd содержит все сообщения в этом файле, включая неудачные попытки соединения.
На сегодня все. Чтобы следить за статьями блога, оформляйте подписку по
E-MAIL или
RSS.
Источник: www.levinkv.ru