Как правильно подойти к вопросу: proftpd пустой лог proftpd.log?

Ссылка скопирована
1 ответ

Подскажите, почему пустой лог файл
/var/log/proftpd/proftpd.log

Сейчас ситуация такая: при перезапуске сервиса, лог файл создается, но больше в него ничего не пишется.
По вводным: если сделать неверную авторизацию создаётся лог файл
/var/log/proftpd/auth.log

По вводным: но в этом файле пусто proftpd.log

По вводным: версия proftpd 1.3.8d, centos9

В конфиге

SystemLog /var/log/proftpd/proftpd.log <--- тут пусто 0 байт TransferLog /var/log/proftpd/xfer.log ExtendedLog /var/log/proftpd/access.log WRITE,READ default ExtendedLog /var/log/proftpd/auth.log AUTH auth

UDP1.
Ответ нашёл тутПо вводным: www.proftpd.org/docs/modules/mod_log.html#SystemLog

По вводным: нужно убрать --nodaemon в сервисе /usr/lib/systemd/system/proftpd.service

- ExecStart = /usr/sbin/proftpd --nodaemon $PROFTPD_OPTIONS + ExecStart = /usr/sbin/proftpd $PROFTPD_OPTIONS

По вводным: добавить в /etc/proftpd/conf.d/custom.conf
SyslogLevel INFO

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Mobile-редакция Ответ

В ProFTPD пустой /var/log/proftpd/proftpd.log не всегда означает, что логирование сломано. Часто ProFTPD пишет разные типы событий в разные места: системные события через SystemLog, авторизацию через PAM/syslog, передачи через TransferLog, а ошибки могут уходить в journald. Поэтому сначала надо понять, куда реально пишет ваш процесс.

Проверьте конфигурацию:

proftpd -t
proftpd -V | grep -i log
grep -R "Log|TransferLog|ExtendedLog|Syslog" /etc/proftpd /etc/proftpd.conf

proftpd -t proftpd -V | grep -i log grep -R "Log|TransferLog|ExtendedLog|Syslog" /etc/proftpd /etc/proftpd.conf

Для CentOS 9 также посмотрите journald:

journalctl -u proftpd -n 100 --no-pager
journalctl -xeu proftpd --no-pager

journalctl -u proftpd -n 100 --no-pager journalctl -xeu proftpd --no-pager

Если файл создаётся, но остаётся пустым, проверьте права и пользователя, от которого работает демон:

ls -ld /var/log/proftpd
ls -l /var/log/proftpd
ps aux | grep proftpd

ls -ld /var/log/proftpd ls -l /var/log/proftpd ps aux | grep proftpd

Для явного логирования можно добавить расширенный лог:

SystemLog /var/log/proftpd/proftpd.log
TransferLog /var/log/proftpd/xferlog
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth

SystemLog /var/log/proftpd/proftpd.log TransferLog /var/log/proftpd/xferlog ExtendedLog /var/log/proftpd/access.log WRITE,READ default ExtendedLog /var/log/proftpd/auth.log AUTH auth

После изменения перезапустите сервис и проверьте синтаксис:

proftpd -t
systemctl restart proftpd

proftpd -t systemctl restart proftpd

Если авторизационный лог создаётся, но пустой, причина может быть в том, что сообщения авторизации уходят в /var/log/secure или journald, а не в файл ProFTPD. На системах с systemd это нормальная ситуация.

Итог: проверьте journalctl, права на каталог логов, фактическую конфигурацию ExtendedLog и не ожидайте, что все события окажутся именно в proftpd.log. Для transfer/auth/access лучше задать отдельные явные логи.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно