import re
from collections import defaultdict
def analyze_logs(log_file, patterns):
alerts = defaultdict(int)
with open(log_file) as f:
for line in f:
for name, pattern in patterns.items():
if re.search(pattern, line):
alerts[name] += 1
return alerts
# 使用示例
patterns = {
'SSH暴力破解': 'Failed password',
'SQL注入尝试': 'union.*select',
'XSS尝试': '<script>'
}
print(analyze_logs('/var/log/nginx/access.log', patterns))