rsyslog 로그 형식 및 필터링 이해

rsyslog 로그 형식 및 필터링 이해

저는 syslog에서 로그를 필터링하고 다른 로그로 전달하는 작업을 하고 있습니다.

다음을 기반으로 로그를 캡처/필터링할 수도 있습니다.내부 SFTP". 사용하여

if $programname == 'internal-sftp' then /var/log/sftp/sftp.log

위의 내용이 작동 중입니다.

하지만 이를 기준으로 필터링할 수는 없습니다."통계명". pri, syslogtag 등을 시도해 보았습니다. 로그 형식은 다음과 같습니다.

Apr 24 02:16:30 ip-10-0-10-22 internal-sftp[4714]: lstat name "/settlement/universalpay/test_deletez.log"

그렇다면 다음을 포함하는 행을 어떻게 필터링합니까?통계명조건이 적용됩니다. 어떤 속성을 사용해야 합니까?

다음은 내가 시도하는 샘플 코드입니다.

if $programname == 'internal-sftp' then {
        if $syslogfacility-text contains 'lstat name' then {
                action(type="omfile" file="/var/log/sftp/sftp_lstat_files.log" template="outfmt")
        }
        action(type="omfile" file="/var/log/sftp/sftp.log" template="outfmt")
        & stop 
}

답변1

발라,

다음 사항을 확인해주세요.

if $msg startswith ' lstat name' then { ....

위에 표시된 것처럼 "lstat name" 앞에 공백이 있는지 확인하십시오.

관련 정보