运行时依赖
安装命令
点击复制技能文档
日志分析器脚本 scripts/log-analyzer.sh — 所有分析的单一入口点。该脚本是自包含的,能够在任何具有标准工具(grep、awk、sort、uniq)的Linux系统上运行,并且能够处理文件和管道输入。
快速开始 分析 /var/log/syslog 中的所有检查: bash scripts/log-analyzer.sh -f /var/log/syslog --all 或者直接管道日志: journalctl -u nginx --since "24 hours ago" | bash scripts/log-analyzer.sh --all
选项 选项 描述 -f <文件> 要分析的日志文件(使用 - 表示标准输入) -p <模式> 自定义错误模式(默认:error/i、fail/i、warn/i、critical/i、exception) -t <小时> 时间窗口(小时)(默认:24) --errors 找到最常见的错误消息及其频率 --time-analysis 按时间段(每小时/每天)分组错误 --ips 分析日志条目中的 IP 频率 --spikes 确定异常模式和峰值 --all 运行所有分析(默认,如果没有指定选项) --help 显示此帮助消息
分析模块 错误模式(--errors) 扫描配置的错误模式,分组和排序以显示最常见的错误消息。
时间分析(--time-analysis) 将错误分组为每小时和每天的桶,以显示问题最频繁出现的时间。
IP 频率(--ips) 从日志条目中提取 IPv4 地址,计算出现次数,并显示最常见的源。
峰值检测(--spikes) 将每个时间桶的错误计数与平均值进行比较。标记超过 2 倍平均值的桶作为潜在的异常。
常见发现和建议 来自同一源的重复错误:检查应用程序/服务的健康状况;考虑速率限制或重启 时间峰值:与 cron 作业、部署或标记时间的流量模式相关 高频率 IP:可能指示暴力尝试、抓取器或 DDoS —— 考虑防火墙规则或 fail2ban 新错误模式出现:最近的更改或部署可能引入了回归 警告的突然增加:通常在关键故障之前发生 —— 主动调查
注意 管道输入从标准输入读取;显式使用 -f - 时管道 对于大型日志文件(>100MB),考虑使用 -t 减少时间窗口或使用 grep 进行预过滤 时间分析需要标准的 syslog 日期格式(RFC 3164 或 RFC 5424);自定义格式可能需要调整 IP 检测使用标准的 IPv4 正则表达式 —— 目前不支持 IPv6 对于用户拥有的日志文件,可以在没有 root 的情况下运行;系统日志可能需要 sudo