Apache 로그의 특정 URL을 방문할 때 이메일을 보낼 때 너무 많은 이메일이 전송됨

Apache 로그의 특정 URL을 방문할 때 이메일을 보낼 때 너무 많은 이메일이 전송됨

이것에질문?src=foo는 Apache 로그에 표시된 대로 특정 URL에 액세스할 때마다 자동으로 이메일을 보내는 솔루션을 찾았습니다(예:).

tail -F -n0 /var/log/apache2/other_vhosts_access.log | grep --line-buffered "?src=foo" | \
        { while IFS= read -r line; do echo "$line" | mail [email protected]; done } &

하지만 문제는 이 페이지에 로드된 다른 리소스(이미지, 아이콘 등) ?src=foo추천인또한 열:

www.example.fr:80 111.111.111.111 - - [12/Sep/2017:17:30:32 +0200] "GET /images/P26372.jpg 
  HTTP/1.1" 200 86276 "http://example.fr/?src=foo" "Mozilla/5.0"

그런 다음 이 방법을 사용하여 연속으로 15개의 이메일을 받았습니다.

이것의 "소화"를 제한하는 방법은 무엇입니까?

"GET ... HTTP"인용된 열의 결과가 제외되도록 검색을 내부 스키마로 제한하려고 생각했는데 어떻게 해야 할까요?

아니면 하루에 두 번 모든 결과가 포함된 이메일을 보내는 것이 가능합니까 grep? (이메일이 전송되지 않았다는 것은 아무 것도 발견되지 않았다는 의미입니다)

답변1

일부 로그 스캐너는 내가 사용하는 소음을 제한할 수 있습니다.sec.pl그런 다음 다음과 같이 구성하십시오.

type=SingleWithThreshold
ptype=SubStr
pattern=?src=foo
desc=specific-url-thing
action=pipe 'that url thing happened' /usr/bin/mail -s url-thing [email protected]
window=86400
thresh=1

관련 로그를 모니터링하는 데몬 인스턴스의 경우. 이는 즉시 실행되고 하루 동안 꺼집니다. 클릭수를 집계하는 다른 옵션도 있습니다. 자세한 내용은 설명서를 참조하세요.

관련 정보