Побеждаем пухлый log в Ubuntu
Недавно начал качать усиленно с торрентов, покачав несколько дней заметил что на системном диске с Ubuntu 10.04 — резко пропало 8 гб . Поставив на проверку веса дерикторий обноружил что всему причиной файлы находящиеся в var/log:
Вычитав и покапавшись в логах понял что виною данных проблем является UFW AUDIT ошибающийся при неудачных попытках сетевых соединений(как я понимаю это следствие закрытых портов в фаерволе).
Так как же вылечить это недразумение? а вот так:
Оказывается в стандартный пакет Ubuntu включена специальная система ротации логов logrotate.
Конфиги для архивации логов находятся здесь /etc/logrotate.d их то мы и будем править
откроем через права администратора файл rsyslog:
мы увидем что то подобное:
Разобратся с этим нам поможет вот эта таблица:
Параметр Описание
rotate <число> Количество хранимых файлов
daily
weekly
monthly игнорировать размер файла; Производить ротацию раз в день/неделю/месяц
size <байт>
size 1000
size 100k
size 1M Производить ротацию если log-файл превысил указанный размер
байт
Кбайт
Мбайт
start <число> число с которого начнётся нумерация файлов
compress Архивировать файлы (по умолчанию gzip)
nocompress Отключает compress
delaycompress Не сжимать 'свеже' созданный архив. Например access.log.1 не будет зжат.
Используется с compress
create <права><владелец><группа>
create 640 root root После ротации создать пустой log-файл. Любые из этих атрибутов могут быть опущены,
в этом случае вместо них для нового файла будут использованы атрибуты,
имеющие те же значения, что и первоначальный log-файл
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 <путь>
olddir /home/logsПеремещать архивные файлы в указанную директорию
noolddir Отключает olddir
Команды пишутся после строки с местом нахождения лога- например:
Так как же нам оптимизировать лог — вот пример как это настроенно у меня:
rsyslog:
ufw:
В данном случае указанно что логи после превышения определенного размера будут ротироватся(не по неделям как это было до оптимизации) и их максимальное количество будет не больше 3х штук в сжатом виде — стоит заметить после обновления конфига советую подчистить старые логи настройки которых мы оптимизировали(возможно они много весят) — можно их просто удалить под правами администратора(тока осторожнее не переусердствуйте) — после перезагрузки они создадутся автоматически.
И уйти в перезагрузку.
Надеюсь вам поможет моя статья в оптимизации ubuntu .
/var/log/syslog.log
/var/log/kern.log
/var/log/messages.log
/var/log/ufw.log
Вычитав и покапавшись в логах понял что виною данных проблем является UFW AUDIT ошибающийся при неудачных попытках сетевых соединений(как я понимаю это следствие закрытых портов в фаерволе).
Так как же вылечить это недразумение? а вот так:
Оказывается в стандартный пакет Ubuntu включена специальная система ротации логов logrotate.
Конфиги для архивации логов находятся здесь /etc/logrotate.d их то мы и будем править
откроем через права администратора файл rsyslog:
sudo gedit /etc/logrotate.d/rsyslog
мы увидем что то подобное:
/var/log/syslog
{
rotate 7
weekly
missingok
notifempty
delaycompress
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err...
...и так далее(не стал выкладывать конфиг целиком)
Разобратся с этим нам поможет вот эта таблица:
Параметр Описание
rotate <число> Количество хранимых файлов
daily
weekly
monthly игнорировать размер файла; Производить ротацию раз в день/неделю/месяц
size <байт>
size 1000
size 100k
size 1M Производить ротацию если log-файл превысил указанный размер
байт
Кбайт
Мбайт
start <число> число с которого начнётся нумерация файлов
compress Архивировать файлы (по умолчанию gzip)
nocompress Отключает compress
delaycompress Не сжимать 'свеже' созданный архив. Например access.log.1 не будет зжат.
Используется с compress
create <права><владелец><группа>
create 640 root root После ротации создать пустой log-файл. Любые из этих атрибутов могут быть опущены,
в этом случае вместо них для нового файла будут использованы атрибуты,
имеющие те же значения, что и первоначальный log-файл
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 <путь>
olddir /home/logsПеремещать архивные файлы в указанную директорию
noolddir Отключает olddir
Команды пишутся после строки с местом нахождения лога- например:
/var/log/ufw.log
{команды пишутся сюда}
Так как же нам оптимизировать лог — вот пример как это настроенно у меня:
rsyslog:
/var/log/syslog
{
rotate 3
size 200M
missingok
notifempty
delaycompress
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
{
rotate 3
size 200M
missingok
notifempty
delaycompress
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 3
size 200M
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
ufw:
/var/log/ufw.log
{
rotate 3
size 200M
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
В данном случае указанно что логи после превышения определенного размера будут ротироватся(не по неделям как это было до оптимизации) и их максимальное количество будет не больше 3х штук в сжатом виде — стоит заметить после обновления конфига советую подчистить старые логи настройки которых мы оптимизировали(возможно они много весят) — можно их просто удалить под правами администратора(тока осторожнее не переусердствуйте) — после перезагрузки они создадутся автоматически.
И уйти в перезагрузку.
Надеюсь вам поможет моя статья в оптимизации ubuntu .
Комментарии (7)
RSS свернуть / развернутьdurman
FREExLOADER
durman
FREExLOADER
durman
yababay
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.