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

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
  cvs, svn, portsnap
  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
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 13 чел.
За последние 30 мин было: 71 человек
За сегодня было
13095 показов,
1681 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

веселые картинки развлекательные гифки интресные факты смешные видео смешные истории из соцсетей

Время генерации страницы 2.2176 секунд
Из них PHP: 99%; SQL: 1%; Число SQL-запросов: 77 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 116498