|
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
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Комментарии пользователей [8 шт.]