SyslogNG - 필터링 및 로깅 문을 최적화하는 방법은 무엇입니까? [폐쇄]

SyslogNG - 필터링 및 로깅 문을 최적화하는 방법은 무엇입니까? [폐쇄]

다음은 로컬 Syslog-NG 로깅에 대한 현재 구성입니다.

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

특정 메시지를 전달하려면... 추가할 구성은 다음과 같습니다.

filter message_filter_string_1{ 
            match("01CONFIGURATION\/6\/hwCfgChgNotify\(t\)", value("MESSAGE"));
            }


filter message_filter_string_2{
            match("01SHELL\/5\/CMDRECORD", value("MESSAGE"));
            }

filter message_filter_string_3{
            match("10SHELL", value("MESSAGE"));
            }

filter message_filter_string_4{
            match("ACE-1-111008:", value("MESSAGE"));
            }

destination remote_log_server {
 udp("192.168.0.20" port(25214));
};

log { source(s_network); filter(message_filter_string_1); destination(remote_log_server); };

log { source(s_network); filter(message_filter_string_2); destination(remote_log_server); };

log { source(s_network); filter(message_filter_string_3); destination(remote_log_server); };

log { source(s_network); filter(message_filter_string_4); destination(remote_log_server); };

실제로 그러한 필터는 80개가 넘습니다.

Syslog-NG 구성에서는 OR 일치가 포함된 단일 문을 사용하여 구문을 작성할 수 있습니까 filter?regex1regex2regex3

(또는)

logSyslog-NG 구성에서는 여러 필터가 포함된 단일 문을 사용하여 구문 작성을 허용합니까?

답변1

여러 일치 문을 결합하려면 다음을 사용하세요 or.

filter send_remote { 
            match("01CONFIGURATION\/6\/hwCfgChgNotify\(t\)", value("MESSAGE")) 
  or
            match("01SHELL\/5\/CMDRECORD", value("MESSAGE")) 
  or
            match("10SHELL", value("MESSAGE"))
  or
            match("ACE-1-111008:", value("MESSAGE"));

            }

...그런 다음 해당 필터 이름을 한 번 사용합니다.

log { source(s_network); filter(send_remote); destination(remote_log_server); };

관련 정보