Главная > Программы > Apache Ротация логов FreeBSD (newsyslog)Началось все с того, что на одном из удаленных серверов отвалился bind, первое что я увидел после подключения, это что свободное место в разделе var стало отрицательным - # df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 496M 215M 241M 47% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1e 496M 16K 456M 0% /tmp /dev/ad0s1f 33G 5.8G 24G 19% /usr /dev/ad0s1d 1.4G 1.4G -47M 100% /var devfs 1.0K 1.0K 0B 100% /var/named/dev Глянув на раздел var, все сразу стало понятно, размер логов snmp и freshclam вырос до безобразия. # Rotate log files every hour, if necessary.
0 * * * * root newsyslog
Ротация происходит согласно файла /etc/newsyslog.conf. Первоначальный конфиг - logfilename [owner:group] mode count size when flags [/pid_file] [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/weekly.log 640 5 1 $W6D0 JN
/var/log/wtmp 644 3 * @01T05 B
/var/log/xferlog 600 7 100 * JC
Разберем конфиг несколько подробнее, обратимся к man - Описание: owner:group - необязательное (опциональное) поле владельца и группы файла, разделено двоеточием, двоеточие также ставиться если указан только один параметр (владелец или группа) size - размер лог-файла. Когда размер лог-файла (килобайты) превышает заданный в этом поле, лог-файл подвергается ротации. Если поле содержит звездочку ("*"), лог-файл по размеру не сравнивается (то бишь допустим любой размер). when - время запуска ротации, если содержит звездочку, то это поле не учитывается (любое время), а берется значение поля "size". Возможные форматы времени: [[[[[cc]yy]mm]dd][T[hh[mm[ss]]]]].
где, ссyy - год 20111017T150000 [D hh ] [W w [D hh ] ] and [M dd [D hh ]
,где Примеры: flags - это опциональное (необязательное ) содержащее один или несколько символов характеризующих процесс ротации. Разрешенне значения: B - показвает, что лог-файл является двоичным. Обычно newsyslog добавляет ASCII сообщение в лог-файл в процессе. Это сообщение содержит запись когда и почему лог-файл подвергся перезаписи. Если установлен флаг B, то данное сообщение в лог не вносится. D - указывает newsyslog(8) установить флаг UF_NODUMP при создании новой версии этого лог-файла. G - разрешает использовать в именах лог-файлов стандартные шаблоны (например *) J - указывает newsyslog сжимать файлы перед записью с помоью bzip2 N - отключает необходимость информировать процесс при ротации лог-файла. U - позволяет указать специфический путь к pid-файлу содержащий ID группы процессов, вместо одного процесса. Z - указывает newsyslog(8) сжимать лог-файл gzip(1). - - знак минуса не несет за собой сигналов обработки, но он может быть использован для создания поля флагов, при создании других дополнительных полей a signal_number - Необязательное поле, содержащее номер сигнала который будет послан демон-процессу (или всем процессам находящимся в группе процесса, если установлен флаг U). Если поле пустое (не заполнено), то посылается сигнал SUGHUP. /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 4 100 * JC
/var/log/kerberos.log 600 4 100 * J
/var/log/lpd-errs 644 4 100 * JC
/var/log/maillog 640 4 * @T00 JC
/var/log/messages 644 3 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 3 * 168 B
/var/log/weekly.log 640 5 1 $W6D0 JN
/var/log/wtmp 644 3 * @01T05 B
/var/log/xferlog 600 3 100 * JC
/var/log/httpd-access.log 644 3 100 * JC
/var/log/httpd-error.log 644 2 100 * JC
/var/log/snmpd.log 644 3 100 * JC
/var/log/clamav/freshclam.log 644 2 1000 * JC
/var/log/havp/access.log 644 2 100 * JC
/var/log/havp/error.log 644 2 100 * JC
/var/log/openvpn/openvpn.log 644 2 1000 * JC
/var/log/openvpn/openvpn-status.log 644 2 100 * JC
Чтобы не ждать времени когда newsyslog запуститься по cron'у, запускаем вручную - # newsyslog И смотрим место на дисках. # df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 496M 215M 241M 47% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1e 496M 16K 456M 0% /tmp /dev/ad0s1f 33G 5.9G 24G 19% /usr /dev/ad0s1d 1.4G 750M 592M 56% /var devfs 1.0K 1.0K 0B 100% /var/named/dev Результат на лицо =) Использован материал:Главная > Программы > Apache |