0
我正在嘗試使用Logstash進行一些日誌分析。Logstash通過唯一IP進行計數
我需要從Apache訪問日誌中計算唯一的IP地址,然後我需要將它們與計數過濾器進行匹配,以確定是否發送電子郵件。
類似這樣的: 如果在5分鐘的時間間隔內從一個唯一的IP訪問10次以上,他們需要發送一封帶有此IP的電子郵件。
什麼是最好的解決方案呢?
我正在嘗試使用Logstash進行一些日誌分析。Logstash通過唯一IP進行計數
我需要從Apache訪問日誌中計算唯一的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 2014-10-07 17:02:49