저는 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" 앞에 공백이 있는지 확인하십시오.