LinuxForum.Fans
Тема

Системные сообщения и управление ими (logrotate)

Автор: forkostya 1 сообщений 4882 просмотров
#34372

Автор: Кузнецов Константин

Системные сообщения и управление ими (logrotate)

План:
1. Введение
2. Использование логов
3. Управление логами с помощью logrotate
4. Используемая литература и полезные ссылки

-------------------------------------------------------------------------------------

1. Введение в логи

В операционной системе Gnu/Linux, как и в любой другой уважающей себя операционной системе, есть системные сообщения (логи), будь то сообщения об ошибках, сообщения об удачном/неудачном подключении к серверу, аутентификация пользователя и пр. Все эти сообщения хранятся (по идее должны храниться, а там уж как настроишь) в специально существующей для них директории /var/log/ . Для каждой программы, которая "пишет логи" (отправляет сообщения о своей работе в файл журнала), существует свой лог, за исключением некоторых системных, которые пишут все в один общий файл. Например, программа samba хранит логи в директории /var/log/samba в файлах log.smbd, log.nmbd, log.192.168.0.3, log.comp4 и т.д. Программа postfix (почтовый сервер) кидает логи в специальный лог - /var/log/mail.log. Mysql - /var/log/mysql.err и /var/log/mysql.log. Просмотрев список файлов и директорий в /var/log можно узнать, какие сообщения и от каких программ доступны.

-------------------------------------------------------------------------------------

2. Использование логов

Логи могут пригодиться в различных ситуациях:
- при настройке программы (отслеживание и устранение ошибок в том числе и файлах конфигурации)
- при аудите безопасности (кто подключался, кто не смог, откуда слишком много попыток подключения с неправильным паролем - подбор пароля и т.п.)
- при сборе статистики (подсчет трафика и пр.)

Любой лог - это текстовый файл, каждая строчка которого - одно сообщение. Строки эти расположены в хронологическом порядке с указанием времени. Таким образом можно просто делать вывод файла и отсеивать по времени:

text
cat /var/log/mail.log|grep "15:00:0"

Можно посмотреть последние несколько строчек (последние записи):

text
tail /var/log/mail.log

В некоторых случаях даже существуют специальные программы, обрабатывающие логи и выводящие необходимую информацию (статистику в основном).

Проблемы с логами.
В некоторых случаях логи могут занимать много места на диске. Такое может произойти при неправильно настроенной системе или если нам так надо. Большой лог-файл нам может понадобиться для обработки сообщений за длительный период времени (за месяц, за квартал). После чего файл переименовывается/сжимается/удаляется и создается новый. Можно настроить систему таким образом, чтобы некоторые лог-файлы очищались ежечасно, некоторые ежедневно, некоторые еженедельно, а некоторые - ежемесячно и т.п. Выполнением планового очищения занимается инструмент logrotate, конфигурационный файл которого /etc/logrotate.conf.

-------------------------------------------------------------------------------------

3. Управление логами с помощью logrotate

Очищение (ротация) логов.
Утилита logrotate по сути выполняет периодическое переименование существующего лога, например, error.log в error.log2, потом в error.log3, потом еще и сжимает в error.log3.tar.gz, потом удаляет. На место переименованного записывает новый пустой, или более свежий лог. Путь к лог-файлу, количество ротаций, сжимать ли, что делать перед ротацией, что делать после ротации, как часто выполнять ротацию и прочие опции можно задавать для каждого приложения в /etc/logrotate.d/, например /etc/logrotate.d/vsftpd:

/var/log/vsftpd.log {
# ftpd doesn't handle SIGHUP properly
nocompress # не сжимать ротируемый файл
missingok # отсутствие файла не является ошибкой
notifempty # не обрабатывать пустые файлы
rotate 4 # Сохранять 4 старых лога, они будут иметь вид log.1, log.2.gz, log.3.gz
weekly # Выполнять ротацию еженедельно
}

-------------------------------------------------------------------------------------

4. Используемая литература и полезные ссылки

1. ru.wikipedia.org/wiki/Файл_регистрации
2. Ротация логов с помощью logrotate в Debian / Ubuntu
3. Автоматическая ротация log'ов с помощью logrotate

Войдите или зарегистрируйтесь, чтобы ответить.