Logstash로 일부 로그 분석을 시도하고 있습니다.고유 IP로 로그 샷 수
아파치 액세스 로그에서 고유 한 IP를 계산해야하는데 이메일을 보낼지 결정하기 위해 카운트 필터와 일치시켜야합니다.
이와 비슷한 것 : 5 분 간격으로 고유 IP에서 10+ 액세스가 발견되면이 IP가있는 이메일을 보내야합니다.
가장 적합한 해결책은 무엇입니까?
Logstash로 일부 로그 분석을 시도하고 있습니다.고유 IP로 로그 샷 수
아파치 액세스 로그에서 고유 한 IP를 계산해야하는데 이메일을 보낼지 결정하기 위해 카운트 필터와 일치시켜야합니다.
이와 비슷한 것 : 5 분 간격으로 고유 IP에서 10+ 액세스가 발견되면이 IP가있는 이메일을 보내야합니다.
가장 적합한 해결책은 무엇입니까?
이렇게하는 것은 의외로 어렵습니다. IP 주소 당 미터를 만들어야합니다. IP 주소 당 미터가 있으면, rate_5m을보고 threashold 이상인지를 결정해야합니다 (rate_5m은 지난 5 분 동안의 초당 비율입니다). 경고 신호를 보내야한다고 결정한 후에는 IP 주소를 포함시켜야합니다 (그래서 루비 필터를 사용하여 추출해야합니다). (IP 주소 당 미터로 인해) 미친 듯이 메모리를 씹을 가능성이 있기 때문에 프로덕션에서 이와 같은 것을 사용합니다.
filter {
metrics {
meter => "%{ip}"
add_tag => ["metric"]
}
ruby { code => '
ip = nil
if event["tags"].include? "metric"
event.to_hash.each do |key,value|
if key.end_with?(".rate_5m") and value > 0.2
ip = key[0..-9]
end
end
end
if ip
event["ip"] = ip
event["tags"] = ["alert"]
end
'
}
}
output {
if "alert" in [tags] {
email { ... }
}
}
당신은 아마 수에 높은 추세되는 IP 주소를 찾을 추세 알고리즘 같은 것을 사용에 대한 똑똑 사용자 정의 필터를 작성할 수 있습니다.
대단한 답변입니다. 프로덕션 응용 프로그램에이 기능이 필요하므로 동일한 IP로 높은 액세스 수에 의해 트리거되는 경보 시스템에 대해 나에게 무엇을 제안 하시겠습니까? Logstash 이외의 도구 일 수도 있습니다. – Rafa