특정 필터를 사용하여 메시지 전달

특정 필터를 사용하여 메시지 전달

시나리오는 들어오는 모든 메시지를 수신하고 이를 모두 에 저장 /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);
};

Syslog-NG 에 모든 메시지를 저장한 후 all_devices.logSyslog-NG는 필터링 후 특정 메시지만 원격 로그 서버로 전달하는 구문(구성)을 제공합니까?

답변1

구성 파일에 여러 지시어를 결합할 수 있습니다.

예를 들어 코드에 따라 필터를 정의합니다.

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

주의 깊게 읽어 보시길 권합니다공식 매뉴얼, 있기 때문에위치로깅을 사용자 정의하기 위한 옵션입니다.

관련 정보