Linux
使用特定過濾器轉發消息
場景是接收所有傳入的消息並將所有這些消息儲存在 中
/app/syslog-ng/custom/output/all_devices.log
,但僅轉發某些消息(通過過濾)。
filter
標籤用於過濾傳入的消息到 Syslog-NG,在這種情況下,這不是正確的用法。例如:filter f_warn { level(warn); };
編輯:
我目前的配置是:
@version: 3.17 source s_network { udp( flags(syslog_protocol) keep_hostname(yes) keep_timestamp(yes) use_dns(no) use_fqdn(no) ); }; destination d_all_logs { file("/app/syslog-ng/custom/output/all_devices.log"); }; log { source(s_network); destination(d_all_logs); };
儲存所有消息後
all_devices.log
,Syslog-NG 是否提供語法(配置)以僅將某些消息(過濾後)轉發到遠端日誌伺服器?
您可以在配置文件中組合多個指令。
例如,根據您的程式碼,您定義一個過濾器:
filter f_warn { level(warn); };
然後是目的地:
destination remote_log_server { udp("192.168.0.20" port(25214)); };
並將它們與以下內容放在一起:
log { source(src); filter(f_warn); destination(remote_log_server); };
顯然,您必須配置您的
source
,filter
並destination
根據您的需要。我建議您仔細閱讀官方手冊,因為有很多選項可以自定義您的日誌記錄。