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);};