Назад | Перейти на главную страницу

rsyslog: перед действием path / ftp добавлен «-». * не регистрируется

следующие правила конфигурации:

auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
daemon.*                        -/var/log/daemon.log
ftp.*                           /var/log/vsftpd.log

Первые две строки означают, что записывать все в системный журнал, кроме auth и authpriv, записывать их в auth.log. Журнал Cron отключен комментарием, daemon. * Присутствует как в syslog, так и в daemon.log.

ftp. * записывается в системный журнал, но не в vsftpd.log, почему?

что означает "-" к пути?

Я читал руководства, но не мог найти информации об этом.

В ftp объект будет проигнорирован, если ваша платформа не определяет LOG_FTP. Наверное, поэтому - интересно отметить, что ftp не включен как действующий объект в rsyslog.conf manpage, скорее всего, чтобы избежать ее объяснения.

* Mon Oct 12 18:29:44 CEST 1998: Martin Schulze <joey@infodrom.north.de>
*      Added `ftp' facility which was introduced in glibc version 2.
*      It's #ifdef'ed so won't harm with older libraries.

Посмотрев на исходный код, вы увидите, где это происходит в runtime/srutils.c:

syslogName_t    syslogFacNames[] = {
    {"auth",         LOG_AUTH},
    {"authpriv",     LOG_AUTHPRIV},
    {"cron",         LOG_CRON},
    {"daemon",       LOG_DAEMON},
    {"kern",         LOG_KERN},
    {"lpr",          LOG_LPR},
    {"mail",         LOG_MAIL},
    {"mark",         LOG_MARK},             /* INTERNAL */
    {"news",         LOG_NEWS},
    {"security",     LOG_AUTH},             /* DEPRECATED */
    {"syslog",       LOG_SYSLOG},
    {"user",         LOG_USER},
    {"uucp",         LOG_UUCP},
#if defined(LOG_FTP)
    {"ftp",          LOG_FTP},
#endif
    {"local0",       LOG_LOCAL0},
    {"local1",       LOG_LOCAL1},
    {"local2",       LOG_LOCAL2},
    {"local3",       LOG_LOCAL3},
    {"local4",       LOG_LOCAL4},
    {"local5",       LOG_LOCAL5},
    {"local6",       LOG_LOCAL6},
    {"local7",       LOG_LOCAL7},
    {NULL,           -1},
};

В - поведение немного нюансировано. Для полной картины вам понадобятся три URL-адреса.

Краткая версия: начиная с V3, - префикс сам по себе указывает, хотите ли вы, чтобы файл был опущено от синхронизации диска, но это имеет смысл только в том случае, если синхронизация была включена вообще с $ActionFileEnableSync on.

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