2016-08-08 7 views
0

ローカルマシンとサーバの両方で "yum install syslog-ng"を使用してsyslog-ngをインストールしました。 私はsyslog-ngのオープンソース版を使用しています。サーバへのタグ付けでsyslog-ngの問題が発生しました

ログファイル名をクライアントからサーバー側に渡す必要があります。ファイル名が$ FILE_NAMEマクロで利用可能であるため、クライアント側の の18372.4.nameフィールドに.SDATA.fileを明示的に設定しました。しかし、 ".SDATA.file at 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);}; 

答えて

1

$ FILE_NAMEマクロは現在、商用バージョンのsyslog-ngでのみ使用できます。回避策については、次のブログポストを参照してください。Forwarding filenames with syslog-ng

関連する問題