Управление лог-файлами

Ротация лог-файлов

С Proftpd можно использовать любой инструмент, управляющий ротацией лог-файлов. Наиболее общим случаем является использование пакета logrotate, поставляемого, например, с дистрибутивами RedHat. Ниже приведено несколько примеров конфигурации:

Пример 4-1. Конфигурация logrotate

        # cat /etc/logrotate.d/proftpd
        /var/log/proftpd {
                nocompress
                missingok
        }

Пример 4-2. Конфигурация logrotate

/var/log/xferlog {
    # ftpd неправильно обрабатывает сигнал SIGHUP
    nocompress
}
/var/log/proftpd {
    nocompress
}    

Пример 4-3. Конфиругация logrotate

/var/log/xferlog {
     postrotate
         /usr/bin/killall -HUP proftpd
     endscript
}

Proftpd не использует SIGHUP, чтобы закрывать и переоткрывать лог-файлы, поэтому одна из двух основных стратегий - перед ротацией убедиться, что лог-файлы не удерживаются в открытом состоянии. Первый способ, и наиболее агрессивный, - это остановка proftpd, ротация логов и перезапуск сервера. Это может быть применимо на маленьких серверах, но неприемлемо для крупных коммерческих систем.

Второй подход заключается в ротации лог-файлов без выполнения их разбора или компрессии до тех пор, пока все установленные соединения не будут завершены. Время, необходимое для этого, можно либо угадать (например, я могу сказать с большой долей вероятности, что любое активное соединение завершится в течение 60 минут), или применить сценарий, принудительно разрывающий оставшиеся соединения спустя определенный период времени (используя для этого команду fuser).

Анализ лог-файлов

Итак, если вы хотите знать, что происходит с вашим ftp-сервером, то вам должны помочь лог-файлы. Это ненормально, когда лог-файлы нечитаемы, и "сырая" запись - это не лучший формат представления информации.

Существуют различные пакеты и подходы, помогающие системному администратору придать его лог-файлам более читабельный и понятный формат.

Webalizer

Webalizer первоначально разрабатывался как инструмент анализа лог-файлов web-серверов. Однако он способен обрабатывать и логи ftp-серверов (установите опцию logtype в 'ftp' в конфигурационном файле). Последние версии этой утилиты используют для представления информации графический формат png.

http://www.mrunix.net/webalizer/

http-analyze

http-analyze - это утилита, на базе которой был создан webalizer. При его использовании требуется больше работы по настройке формата лог-сообщений proftpd, однако он способен создавать более детальные отчеты.

http://www.netstore.de/Supply/http-analyze/

Analog, (http://www.analog.cx)/

Если вы хотите использовать Analog (на мой взгляд, он работает замечательно), воспользуйтесь этим форматом лог-файла:

LOGFORMAT (%j %M %d %h:%n:%j %Y %t %S %b %r %j %j %j %j %u %j %j %j)
		  

Report Magic, http://www.wadsack-allen.com/digitalgroup/reportmagic/

Создает отчеты, которые выглядят более "профессионально".

Здесь перечислены лишь некоторые анализаторы. Вполне возможно, что вы сможете найти лучший вариант.

Настройка собственных лог-файлов (*)

Существует возможность задавать собственный формат лог-файла, что в ряде случаев может заметно снизить нагрузку на сервер. Например:

LogFormat	xfer_fmt		"%t %u %f"
ExtendedLog	/var/log/upload	write	xfer_fmt
ExtendedLog	/var/log/dnload	read	xfer_fmt
Используя следующую директиву, вы можете отказаться от услуг syslogd:
SystemLog                       /usr/local/proftpd/logs/system_log

Рейтинг@Mail.ru