rsyslog를 통해 처리하고 싶은 지저분한 장비가 있습니다. 작업의 90%가 완료되었지만 여기에 멈췄습니다.
rawmsg: '<133>2022-07-15 17:11:11 eleservice-sw02 51891 Logout the web by admin on web (169.254.101.1).'
rawmsg: '<133>2022-07-15 17:11:14 eleservice-sw02 51890 Login the web by admin on web (169.254.101.1).'
rawmsg: '<132>2022-07-15 18:10:14 piknov29-sw42 43557 CPU RISING THRESHOLD: Total CPU Utilization is 83%.'
그래서 내 질문은 필드 번호 5(F,32:5)에서 줄 끝까지 문자열을 선택하는 방법입니다.
답변1
결국 정규식을 사용해야 할 것 같습니다.
template(name="jetstream"
type="string"
string= "%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%msg:F,32:3%||%$year%-%$month%-%$day% %timegenerated:8:25%||%msg:R,ERE,4,FIELD:(\\s)([0-9][0-9][0-9][0-9][0-9])(\\s)(.+)--end%||tp-link\n")
핵심은 다음과 같습니다.
%msg:R,ERE,4,FIELD:(\\s)([0-9][0-9][0-9][0-9][0-9])(\\s)(.+)--end%
훌륭하지는 않지만 효과가 있습니다. rsyslog/regex를 사용한 첫 경험