Вторник, 05.08.2025, 19:13

Блог Владимира Степанова

Реклама
Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Меню
Категории раздела
FreeBSD OpenBSD [1]
Установка [4]
Настройка [21]
WWW [1]
Мелочи [1]
Файловая система [0]
Вход на сайт
Реклама
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Unix системы » Настройка

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

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


    Решил настроить ротацию логов. Причиной послужило резкое увеличение размеров лог файлов, которые вскоре могли забить раздел /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

    Категория: Настройка | Добавил: Raxxell5059 (22.12.2010)
    Просмотров: 881 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]