LinuxForum.Fans
Тема

Логи непрерывно толстеют

Автор: AmiD_FLice 4 сообщений 2130 просмотров
#91387

Недавно система заругалась на то, что свободного места осталось <2Гб. Анализ использования дисков быстро дал ответ - в папке /var/log файлы daemon.log и daemon.log.1 вместе весят почти 6Гб. Открыл последние 200 строк при помощи команды

text
tail -n 200 -f /var/log/daemon.log

Оказалось, что каждую секунду заносятся несколько строк примерно вот такого содержания:
nm-pptp-service-1990 log[decaps_gre:pptp_gre.c:414]: buffering packet 146143 (expecting 146134, lost or reordered).
Выкручиваюсь пока при помощи настройки конфига logrotate следующим образом:

text
# rotate log files weekly
weekly

size 100M

# keep 4 week 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

Понятное дело, что это несколько кривое решение, но что делать с виновником ожирения логов в лице network-manager-pptp, я не знаю. Кто сталкивался с подобной проблемой и нашел другие пути ее решения, поделитесь своим опытом smile. Заранее спасибо.

#91392

1. Настроить Network Manager на менее «разговорчивый» режим. Как, не знаю :o , так как не использую.
2. Настроить логгер (кстати, какой у вас установлен?) на логирование сообщений только определённого уровня.
И, всё же, хотелось бы увидеть, как выглядят логи на самом деле.

#91475
Lupo Alberto написал:
Настроить Network Manager на менее «разговорчивый» режим. Как, не знаю :o , так как не использую.

Кстати, спасибо. Поковыряв Google в этом направлении наткнулся на решение.
Для начала переименовываем бинарник pptp:

text
sudo mv /usr/sbin/pptp /usr/sbin/pptp0

Затем создаем файл с именем pptp:

text
sudo nano /usr/sbin/pptp

Внутри него помещаем текст скрипта:

text
#!/bin/bash
/usr/sbin/pptp0 $* --nobuffer --loglevel 0

Сохраняем; даем всем пользователям права на выполнение скрипта:

text
sudo chmod a+x /usr/sbin/pptp

Подключаемся, и вуаля! Лог не жиреет, инет работает, все довольны smile

#91650

это хорошо, что не жиреет. но кроме того, можно настроить logrotate:


Принцип действия.

Всё просто - раз в (день|месяц|неделю) мы упаковываем лог, и начинаем новые. Старые логи удаляются. Таким образом, каталог с логами занимает всегда вполне определённое место на диске. Логи очень хорошо пакуются, потому в небольшом объёме можно хранить логи за много лет.

Настройка.

Настраивается ротация в файле

text
# /etc/logrotate.conf                                           
#                                                               
# <skip>
# For more details, see "man logrotate".                                        

# ротация каждый день daily

# только для логов больше 7 метров size=7M

# удалять старые логи, если их больше 1000 штук # т.е. лог 1000 переименовывается в 1001, 999й переименовывается в 1000, и т.д... # лог 1 переименовывается в лог 2, а текущий лог переименовывается в лог 1 # хватит как минимум на 3 года, да и то, если каждый день будет по 7М в логе. rotate 1000

# создаётся пустой новый лог create

# компрессия логов # используется архиватор xz (лучший на сегодня) compress compresscmd /usr/bin/xz compressext .xz compressoptions -v9

# Выше глобальные настройки, в каталоге [u]/etc/logrotate.d[/u] # задаются настройки отдельно для каждого лога include /etc/logrotate.d # несущественное вырезано...

Запуск ротации.

Ротация запускается по расписанию, демоном crond. Т.к. у меня ротация каждый день, то файл для запуска лежит в /etc/cron.daily/. Это исполняемый скрипт, который срабатывает каждый день (его запуск настраивается командой crontab -e от рута). Вот этот файл:

text
#!/bin/sh
echo -e "\033[32;1m----------------------------------------------------------------------------\033[0m" \
        >>/var/log/logrotate.log

/usr/bin/date >>/var/log/logrotate.log /usr/sbin/logrotate -v /etc/logrotate.conf >>/var/log/logrotate.log 2>>/var/log/logrotate.log

Тут действия ещё и записываются в /var/log/logrotate.log, это нужно для отладки (впрочем это потом можно и убрать). Кроме того, вы можете сразу после правки конфига выполнить:
[console]# /usr/sbin/logrotate -d /etc/logrotate.conf]reading config file /etc/logrotate.conf
compress_prog is now /usr/bin/xz
compress_ext is now .xz
compress_options is now -v9
including /etc/logrotate.d
reading config file httpd
# и т.д.[/console]
Это позволит увидеть, что logrotate БУДЕТ делать в заданное время.

В общем-то и всё...

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