Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  начальная настройка
  Установка FreeBSD
  DUMMYNET
  Сборка ядра
  IPFW
  обновление
  portsnap
  CP1251 на FreeBSD
  loader.conf
  defaults/rc.conf
  jail
  Ntpdate/Ntpd
  diskless
  Обновление мира ("world")
  PBR & PF
  bsnmpd
  newsyslog
  if_bridge
  make.conf
  PBR & IPFW
  Работа с HDD
  sshd & AD
  Удаленное разбиение HDD
  Заметки об IPFW
  FreeBSD на VDS
  CVSUP и софт через Proxy
  i386=>amd64
  ALTQ в IPFW
  Виртуальный свитч
  VPN сервер по средствам mpd5.
  NTP
  sysupdate
  mpd5 L2TP
  freebsd + webcamera
  IPFW policy (PBR)
  RAID1 via LAN
  зеркальный RAID1 на ОС FreeBSD
  4.x => 7.x
  portdowngrade
  Быстрое обновление портов
  ipfw nat
  Использование csup
  UTF-8 console
  dump/restore
  hast carp zfs ucarp cluster
  ng_nat
  Wi-FI роутер + DHCP + DNS
  backup/restore & ZFS
  Обновление ОС и портов через SVN.
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> настройка —> newsyslog

Ротация логов с помощью newsyslog.

Автор: fr33man.


Решил настроить ротацию логов. Причиной послужило резкое увеличение размеров лог файлов, которые вскоре могли забить раздел /var:

shield@/root> cd /var/log/
shield@/var/log> ll
total 41266
drwxr-xr-x   5 root    wheel     2,0K 24 ноя 04:00 .
drwxr-xr-x  24 root    wheel     512B 24 ноя 18:39 ..
-rw-------   1 root    wheel      83K 24 ноя 19:20 auth.log
-rw-------   1 root    wheel      14K  6 авг 02:00 auth.log.0.bz2
-rw-------   1 root    wheel     8,9K 27 июл 18:00 auth.log.1.bz2
-rw-------   1 root    wheel      15K 22 июл 10:00 auth.log.2.bz2
-rw-------   1 root    wheel      10K 22 июл 00:00 auth.log.3.bz2
-rw-------   1 root    wheel      14K 20 июл 08:00 auth.log.4.bz2
-rw-------   1 root    wheel      13K  2 июл 17:00 auth.log.5.bz2
drwxr-xr-x   2 squid   squid     512B 17 окт 15:09 c_icap
drwxr-xr-x   2 clamav  clamav    512B 17 окт 10:35 clamav
-rw-------   1 root    wheel      42K 24 ноя 19:20 cron
-rw-------   1 root    wheel     4,7K 24 ноя 04:00 cron.0.bz2
-rw-------   1 root    wheel     4,7K 23 ноя 00:00 cron.1.bz2
-rw-------   1 root    wheel     4,7K 21 ноя 20:00 cron.2.bz2
-rw-------   1 root    wheel     4,7K 20 ноя 16:00 cron.3.bz2
-rw-------   1 root    wheel     1,8K 24 ноя 16:30 debug.log
-rw-------   1 root    wheel     4,5K 22 ноя 20:00 debug.log.0.bz2
-rw-------   1 root    wheel     3,6K 23 июн 22:00 debug.log.1.bz2
-rw-------   1 root    wheel      30K 24 ноя 03:07 dmesg.today
-rw-------   1 root    wheel      30K 23 ноя 03:07 dmesg.yesterday
-rw-------   1 root    wheel     5,3K  7 авг 19:17 frox-log
-rw-------   1 root    wheel      44B  4 авг 03:01 ipfw.today
-rw-------   1 root    wheel      44B  3 авг 03:01 ipfw.yesterday
-rw-r--r--   1 root    wheel     137K 24 ноя 19:19 lastlog
-rw-r--r--   1 root    wheel      55B 22 июн 11:21 lpd-errs
-rw-r-----   1 root    wheel     6,8K 24 ноя 15:45 maillog
-rw-r-----   1 root    wheel     888B 24 ноя 00:00 maillog.0.bz2
-rw-r-----   1 root    wheel     871B 23 ноя 00:00 maillog.1.bz2
-rw-r-----   1 root    wheel     875B 22 ноя 00:00 maillog.2.bz2
-rw-r-----   1 root    wheel     890B 21 ноя 00:00 maillog.3.bz2
-rw-r-----   1 root    wheel     892B 20 ноя 00:00 maillog.4.bz2
-rw-r-----   1 root    wheel     1,0K 19 ноя 00:00 maillog.5.bz2
-rw-r-----   1 root    wheel     881B 18 ноя 00:00 maillog.6.bz2
-rw-r-----   1 root    wheel     875B 17 ноя 00:00 maillog.7.bz2
-rw-r--r--   1 root    wheel      18K 24 ноя 19:20 messages
-rw-r--r--   1 root    wheel     8,7K 22 ноя 20:00 messages.0.bz2
-rw-r--r--   1 root    wheel      11K 28 окт 17:00 messages.1.bz2
-rw-r--r--   1 root    wheel      98K 17 окт 17:00 messages.2
-rw-r--r--   1 root    wheel      99K 28 сен 20:00 messages.3
-rw-r--r--   1 root    wheel     148K 31 авг 12:00 messages.4
-rw-r--r--   1 root    wheel     101K  4 авг 09:00 messages.5
-rw-------   1 root    wheel     251B 12 ноя 03:06 mount.today
-rw-------   1 root    wheel     251B 10 ноя 03:06 mount.yesterday
-rw-------   1 bind    bind       29M 31 июл 22:51 named-auth.log
-rw-------   1 bind    bind       50K 31 июл 22:29 named-update.log
-rw-r--r--   1 root    wheel     541K 24 ноя 19:20 net.log
-rw-------   1 root    wheel     476B 24 ноя 03:07 pf.today
-rw-------   1 root    wheel     481B 23 ноя 03:07 pf.yesterday
-rw-r-----   1 root    network    55B 22 июн 11:21 ppp.log
-rw-r--r--   1 root    wheel     9,6M 24 ноя 15:40 rsyncd.log
drwxr-xr-x   3 root    wheel     512B 25 окт 20:20 samba
-rw-------   1 root    wheel      55B 22 июн 11:21 security
-rw-r-----   1 root    wheel     728B 24 ноя 15:45 sendmail.st
-rw-r-----   1 root    wheel     728B 22 ноя 03:07 sendmail.st.0
-rw-r-----   1 root    wheel     728B 16 ноя 03:07 sendmail.st.1
-rw-r-----   1 root    wheel     728B 17 сен 23:36 sendmail.st.10
-rw-r-----   1 root    wheel     728B  9 ноя 13:27 sendmail.st.2
-rw-r-----   1 root    wheel     728B  3 ноя 00:00 sendmail.st.3
-rw-r-----   1 root    wheel     728B 27 окт 02:00 sendmail.st.4
-rw-r-----   1 root    wheel     728B 20 окт 03:15 sendmail.st.5
-rw-r-----   1 root    wheel     728B 14 окт 03:14 sendmail.st.6
-rw-r-----   1 root    wheel     728B  7 окт 04:24 sendmail.st.7
-rw-r-----   1 root    wheel     728B  1 окт 02:55 sendmail.st.8
-rw-r-----   1 root    wheel     728B 24 сен 03:11 sendmail.st.9
-rw-------   1 root    wheel     7,8K  2 окт 03:12 setuid.today
-rw-------   1 root    wheel     7,9K 11 сен 03:13 setuid.yesterday
-rw-r-----   1 root    network    55B 22 июн 11:21 slip.log
-rw-r--r--   1 root    wheel       0B 24 окт 19:09 smartd.log
-rw-r--r--   1 root    wheel      65K 24 ноя 19:20 snmpd.log
-rw-r--r--   1 squid   squid      77K 27 окт 20:10 squidGuard.log
-rw-r--r--   1 root    wheel      25K  3 ноя 17:23 traffic.log
-rw-------   1 root    wheel     1,5K  3 ноя 00:24 userlog
-rw-r--r--   1 root    wheel     3,7K 24 ноя 19:19 wtmp
-rw-r--r--   1 root    wheel     9,8K 31 окт 17:50 wtmp.0
-rw-r--r--   1 root    wheel     6,9K  1 окт 00:08 wtmp.1
-rw-r--r--   1 root    wheel     4,6K 31 авг 15:52 wtmp.2
-rw-r--r--   1 root    wheel     3,1K  1 авг 01:12 wtmp.3
-rw-------   1 root    wheel     156B  1 авг 00:56 xferlog
shield@/var/log> ll | grep M
-rw-------   1 bind    bind       29M 31 июл 22:51 named-auth.log
-rw-r--r--   1 root    wheel     9,6M 24 ноя 15:40 rsyncd.log
shield@/var/log>

Ух... Файлик named-auth.log занимает 29 метров... Нехило. :) Надо с этим что-то делать. Сначала я хотел написать свой sh срикпт, который будет
запускаться по ночам и все ротировать, но прогуглив этот вопрос, я понял, что пытаюсь изобрести велосипед, так как ротацией логов
занимается программа newsyslog.
Newsyslog запускается раз в час, читает свой конфигурационный файл и следую написанным там указаниям, производит определенные действия с
лог-файлами.

Давайте посмотрим, что имеется в /etc/newsyslog.conf:

shield@/var/log> ll /etc/newsyslog.conf
-rw-------  1 root  wheel   1,9K  3 ноя  2005 /etc/newsyslog.conf
shield@/var/log> cat /etc/newsyslog.conf
# comments by fr33man
# 24.11.2006

# лог-файл -- абсолютный путь к файлу, с которым будем работать.
# [владелец:группа] -- необязательный параметр, который указывает newsyslog'у
# кто должен являться владельцом данного лог файла
# права -- права, которые должны быть на файле
# кол-во -- максимальное количество заархивированных лог файлов.
# когда -- время, через которое архивировать лог-файл.
# флаги -- некоторые параметры, для лог-файлов:
# B - по умолчанию, newsyslog добавляет в новый лог-файл сообщение о том, что
# лог-файл был ротирован, но если лог-файл бинарный, то это сообщение испортит лог,
# с параметром B newsyslog не будет добавлятьт никаких сообщений в лог
# C - если лог-файл не существует, то его необходимо создать.
# G - если указан данный флаг, то в названии лог-файла можно 
# использовать стандартные шаблоны(например *)
# J - сжимать лог-файл, используя bzip2
# N - Не предупреждать никакой процесс, о ротации лог-файла
# W - если используете флаги Z или J, то newsyslog должен подождать, 
# пока заверщиться процесс архивации.
# Z - сжимать лог, использую gzip.

# лог-файл [владелец:группа]  права кол-во размер когда  флаги [пид файл] [sig_num]
/var/log/all.log                        600     7     *     @T00    J
/var/log/amd.log                        644     7     100   *       J
/var/log/auth.log                       600     7     100   *       JC
/var/log/console.log                    600     5     100   *       J
/var/log/cron                           600     3     100   *       JC
/var/log/daily.log                      640     7     *     @T00    JN
/var/log/debug.log                      600     7     100   *       JC
/var/log/kerberos.log                   600     7     100   *       J
/var/log/lpd-errs                       644     7     100   *       JC
/var/log/maillog                        640     7     *     @T00    JC
/var/log/messages                       644     5     100   *       JC
/var/log/monthly.log                    640     12    *     $M1D0   JN
/var/log/pflog                          600 3  100 *  JB /var/run/pflogd.pid
/var/log/ppp.log        root:network    640     3     100   *       JC
/var/log/security                       600     10    100   *       JC
/var/log/sendmail.st                    640     10    *     168     B
/var/log/slip.log       root:network    640     3     100   *       JC
/var/log/weekly.log                     640     5     1     $W6D0   JN
/var/log/wtmp                           644     3     *     @01T05  B
/var/log/xferlog                        600     7     100   *       JC

Файл, как я считаю, достаточно прокомментирован, поэтому давайте приступим к редактированию newsyslog.conf, а именно изменим
следующие строки:

# Меняем значение count, а то надоело видеть в /vat/log дофига старых логов.
/var/log/maillog                        640  1     *    @T00  JC
/var/log/messages                       644  1     100  *     JC
/var/log/sendmail.st                    640  1     *    168   B
/var/log/wtmp                           644  2     *    @01T05 B
# Теперь добавляем собственные файлы
# Сначала идет rsyncd.log, его будем ротировать при достижении 500 kb, потом сжимать.
/var/log/rsyncd.log                     600  2     500  *     ZC
# Тоже самое для named-auth.log, заметьте, что владелец файла 
# не root, поэтому явно указываем владельца и группу.
/var/log/named-auth.log bind:bind       600  2     500  *     ZC

Ну вот и все, теперь сами запустим newsyslog и проверим результат:

shield@/var/log> ll named-auth.log
-rw-------  1 bind  bind    29M 31 июл 22:51 named-auth.log
shield@/var/log> ll rsyncd.log
-rw-r--r--  1 root  wheel   9,6M 24 ноя 15:40 rsyncd.log
shield@/var/log> newsyslog
shield@/var/log> ll named-auth.log*
-rw-------  1 bind  bind    77B 24 ноя 19:56 named-auth.log
-rw-------  1 bind  bind   1,7M 24 ноя 19:56 named-auth.log.0.gz
shield@/var/log> ll rsyncd.log*
-rw-------  1 root  wheel    77B 24 ноя 19:56 rsyncd.log
-rw-------  1 root  wheel   1,2M 24 ноя 19:56 rsyncd.log.0.gz
shield@/var/log>

Ну вот, все работает.

Если хотите подробнее узнать о newsyslog, то почитайте man newsyslog.conf, там все прекрасно расписано.



размещено: 2006-11-27,
последнее обновление: 2006-11-27,
автор: fr33man

оценить статью:

RockerMan, 2007-01-12 в 18:01:02

Спасибо! Очень помогли, давно хотел свой httpd-access.log в архив скинуть

unisol, 2007-09-24 в 20:44:33

Не стоит логи от named через syslogd писать - ингода логгинг отваливается. А ещё, за час порой вполне можно так налогать - что полный DoS получится - с забитием всего места на диске и падением всех чуствительных к такому приложений.
Для httpd-access - лучше логать через пайп в апачевский лог-ротатор (допилив туда ограничение по размеру логов).

weec, 2008-06-09 в 10:19:16

в руководстве упущен довольно важный момент, а именно отладка / решение проблем
что делать когда ротация лог.файлов не проходит так как хочет системный администратор?

mak_v_, 2008-07-16 в 2:03:16

Хотелось бы услышать как избавится от забивания /var, а то часто на серверах имею такую проблему -100мб и ниипёт - руками хиляю

Алексей, 2008-07-16 в 7:18:52

Ага, была такая проблема. Диск разбит таким образом, что /var/ монтируется в корневой раздел и все там. А места всего 1 гиг. Пришлось симлинками часть логов переносить в /usr/var/log.

Решений несколько:
1) Уменьшить количество событий, которые пишутся в логи программами, убрать дебаги и варнинги, к примеру.
2) Запускать ротацию в кроне с ключом -a /any/path/to/store/rotated/logfile.
Пример: 0 * * * * root newsyslog -a rotate
3) Ну и использовать симлинки для особо "тяжелых":

-rw-----— 1 root wheel 30353 16 июл 03:13 dmesg.today
-rw-----— 1 root wheel 24919 15 июл 03:13 dmesg.yesterday
lrwxr-xr-x 1 root wheel 23 20 фев 12:17 exim -> /usr/local/var/log/exim

TemposYS, 2009-03-17 в 16:27:27

может кто сталкивался с такой задачей:

как с помощью newsyslog при ратации файлов дописывать в конце файла не порядковый номер при сохранении, а дату?

Minotaur, 2012-01-06 в 19:22:35

Если newsyslog отработает в тот момент, когда демон rsync работает и пишет свои логи, то часть логов потеряется.
У rsync нет специального сигнала, который можно было бы использовать в newsyslog для уведомления rsync, что нужно переоткрыть лог-файл. По SIGHUP rsync выходит. Поэтому корректно ротироварить логи rsync, если они не пишутся через syslog, с помощью newsyslog - неправильно.

METAJIJI, 2013-09-04 в 6:34:01

Не вздумайте делать ротацию логов bind через newsyslog! После такой ротации bind потеряет дескриптор к лог-файлу и перестанет писать логи, мало того он перестанет  обновлять ddns зону! Правильнее, как уже замечали выше использовать syslog, либо осилить себя и дочитать man named.conf :) где пишут про волшебные опции file "/var/log/named-auth.log" versions 6 size 512K;
versions - кол-во старых лог-файлов.
size - размер, при достижении которого нужно произвести ротацию.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 15 чел.
За последние 30 мин было: 62 человек
За сегодня было
123 показов,
31 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1697 секунд
Из них PHP: 63%; SQL: 37%; Число SQL-запросов: 77 шт.
Исходный размер: 118049; Сжатая: 19286