проблема syslog-ng в тегировании на сервер

Я установил syslog-ng с помощью «yum install syslog-ng» как на локальном компьютере, так и на сервере. Я использую версию syslog-ng с открытым исходным кодом.

Мне нужно передать имя файла журнала от клиента к серверу. Я явно установил .SDATA.file в поле 18372.4.name на своей стороне клиента, так как имя файла доступно в макросе $FILE_NAME. Но «.SDATA.file по адресу 18372.4.name» пуст на стороне сервера. Когда я использую какое-то статическое имя файла, журнал работает.

Ниже приведен мой код. Я не знаю, где я ошибаюсь. Если вам нужна дополнительная информация, которую я могу предоставить, вы можете мне помочь.

MY CLIENT END SYSLOG-NG CODE:
source s_application_logs { 
    file( 
        "/var/log/test.log"
        flags(no-parse)
    );
};

destination d_access_system {
    syslog( 
          "52.38.34.160"
          transport("tcp")
          port(6514)
    );
};

rewrite r_set_filename {
   set(
       "$FILE_NAME",
       value(".SDATA.file at 18372.4.name")
      );
};

rewrite r_rename_filename {
   subst(
         "/var/log/",
         "",
         value(".SDATA.file at 18372.4.name")
         type("string")
         flags("prefix")
        );
};

log {
    source(s_application_logs);
    rewrite(r_set_filename);
    rewrite(r_rename_filename);
    destination(d_access_system);
};



MY SERVER END SYSLOG-NG CODE:
source s_server_end {
              syslog(
                     port(6514)
                     max_connections(1000)
                     keep_hostname(yes)
                    );
};

destination d_log_files {
    file(
        "/var/log/test/${.SDATA.file at 18372.4.name}"
        create_dirs(yes)
    );
};

log {source(s_server_end);destination(d_log_files);};

person rajapallavan    schedule 08.08.2016    source источник


Ответы (1)


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

person Robert Fekete    schedule 16.08.2016