公司服务器每天产生的日志少说也有几万条,以前靠人工一条条翻,眼睛都看花了。上周运维老张还在群里抱怨:‘昨晚又熬到十点,就为了查一个异常登录记录。’其实这种重复性工作,早该交给自动化工具来干了。
为什么非得搞自动化分析?
手动查日志不仅慢,还容易漏。比如某次系统莫名重启,排查时发现是一台IP频繁尝试暴力破解SSH。可这条线索是三天后才被注意到的——因为没人会天天盯着凌晨两点的日志。等发现时,攻击者已经换了目标。自动化分析能实时抓异常,像设了个24小时值班的电子眼。
怎么搭一套基础系统?
拿常见的ELK(Elasticsearch + Logstash + Kibana)组合来说,部署后能自动收集各服务器日志。Logstash负责过滤和格式化,比如只提取包含‘Failed password’的行:
filter {
if [message] =~ "Failed password" {
mutate { add_tag => ["ssh_bruteforce"] }
}
}
存进Elasticsearch后,Kibana可以画出攻击趋势图。昨天某个IP尝试了87次登录失败?系统立刻发邮件告警,比人盯效率高太多了。
小公司也能玩得转
别以为这只能大企业用。我们楼下那家做电商的小团队,用Python写了个脚本,每天早上6点自动跑一次日志扫描:
import re
with open('/var/log/auth.log', 'r') as f:
for line in f:
if re.search(r'Failed.*from (\d+\.\d+\.\d+\.\d+)', line):
print(f"可疑IP: \1 - 原文: {line.strip()}")
结果输出直接钉钉推送到群,老板喝早茶时顺手就能看一眼。花半天写的脚本,现在每周帮他省下三小时排查时间。