2017-04-14 6 views
1

sensu 및 check-tail.rb 플러그인을 사용하여 응용 프로그램 로그에 오류가 나타나는지 경고합니다. 문제는 3 개 이상의 오류 메시지를 찾으면 검사가 성공하기를 원합니다.Sensu에서 check-tail 플러그인으로 반복되는 문자열을 검사하려면 어떻게해야합니까?

내가 좋아하는 정규식을 사용 해낸 해결책 : 대신은으로 전달하는 루비 정규식으로 변수를 전달하는 :하지만 때문에 match 함수 작동하지 보인다

\^.*"status":503,.*$.*^.*"status":503,.*$.*^.*"status":503,.*$\im 

문자열 (이것은 here으로 볼 수 있습니다).

누군가 나를 도와 줄 수 있습니까?

+0

백 슬래시를 제거하고'(? im) ^. * "status": 503,. * $. * ^. * "status": 503,. * $. * ^. * "status" : 503,. * $'? –

+0

감사합니다. 내 질문에 답해 주시면 승인 해 드리겠습니다. –

+0

답을 추가했습니다.''\''가 두배로되어야하는지 확인하십시오 (큰 따옴표로 묶인 문자열 리터럴을 사용하는 경우 두 번 사용해야합니다). –

답변

1

패턴을 Regexp 객체가 아닌 문자열 리터럴로 전달해야합니다.

따라서 정규식 구분 기호를 제거하고 수정자를 인라인 옵션 변형으로 변경해야합니다. 즉, 패턴 앞에 (?im)을 추가해야합니다. 루비 문자열의 시작에 맞게

(?im)\A.*"status":503,.*$.*^.*"status":503,.*$.*^.*"status":5‌​03,.*\z 

주, 당신은 \A을 사용하고 문자열의 끝과 일치 할 필요는, 당신은 \z 앵커를 사용해야합니다.

+0

큰 따옴표로 묶인 문자열 리터럴을 사용하면'\ A'와'\ z'는 이중으로 이스케이프되어야합니다. –