tool_id: BASH-ANALYZE-LOGS-002 tool_name: "日志分析器" 基本信息: 语言: bash 文件: analyze-logs.sh 复杂度: level-2 创建日期: 2025-11-14 作者: CodeConscious 用途分类: - DATA # 数据分析 - MONITOR # 监控诊断 功能描述: 简介: "分析日志文件,按级别过滤、时间范围筛选、模式匹配和错误统计" 详细: | 支持功能: - 按日志级别统计(ERROR/WARN/INFO/DEBUG) - 按关键词模式搜索(正则表达式) - 错误模式识别(超时、连接错误、内存问题) - 统计汇总和建议生成 - 支持时间范围筛选(需要日志包含日期) 使用场景: - "分析生产环境错误日志,找到崩溃原因" - "统计API接口错误频率和类型分布" - "监控服务健康状况,识别异常模式" - "排查性能问题,定位慢请求和超时" - "验证修复效果,比较修复前后的日志" 使用方法: 命令: "bash analyze-logs.sh <日志文件> [模式] [级别] [日期范围]" 参数: 日志文件: "日志文件路径(必需)" 模式: "要搜索的正则表达式(可选)" 级别: "日志级别: ERROR/WARN/INFO/DEBUG(默认: INFO)" 日期范围: "日期范围, 如: 2025-11-01~2025-11-14(可选,需要日志包含日期)" 示例: - "分析应用日志: bash analyze-logs.sh /var/log/app.log" - "搜索错误: bash analyze-logs.sh /var/log/app.log 'timeout|error' ERROR" - "按时间筛选: bash analyze-logs.sh /var/log/app.log 'database' WARN 2025-11-01~2025-11-07" 依赖要求: 系统命令: - bash: 支持bash 4.0+ - awk: 文本处理 - grep: 模式匹配 - wc: 计数 - du: 文件大小 输入输出: 输入: - 类型: 文本文件 - 格式: 任意日志格式(支持自定义分析) - 示例: | 2025-11-14 10:30:00 [INFO] User login successful 2025-11-14 10:30:01 [ERROR] Database connection timeout 2025-11-14 10:30:02 [WARN] High memory usage: 85% 输出: - stdout: 统计摘要、错误分析、建议 - 格式: 人类可读文本 + 颜色高亮 上次使用: 时间: 2025-11-14 11:00:00 用途: "分析auth-service崩溃日志,找到连接池配置问题" 结果: "成功识别47次超时错误,12次连接数过多错误,定位到连接池不足问题" 满意度: 0.95 相关工具: - 前置工具: 无 - 互补工具: - toolkit/bash/system/check-service.sh(服务健康检查) - toolkit/python/analysis/analyze_logs.py(复杂日志解析) - 替代工具: - grep + wc(手动统计) 维护记录: 2025-11-14: - 初始创建 - 支持级别统计、模式匹配、错误模式识别 2025-11-15: - 添加时间范围筛选功能(实验性) - 优化颜色输出 TODO: - 支持JSON日志格式解析 - 添加图表可视化(ASCII) - 支持日志文件压缩格式(.gz)