功能模块 | 说明 |
---|---|
数据导入 | 支持本地文件、FTP/SFTP、数据库等多种数据源,兼容压缩格式(如.gz、.zip)。 |
预处理与清洗 | 字段提取、正则表达式匹配、时间格式转换、去重、过滤无效行。 |
实时查询与分析 | 支持SQL语法、关键词搜索、时间范围筛选,支持聚合计算(计数、求和、平均值等)。 |
可视化展示 | 自动生成折线图、柱状图、饼图、表格,支持自定义图表类型和时间粒度。 |
告警与通知 | 设置阈值规则(如错误率>5%),触发后通过邮件、Webhook推送告警。 |
步骤:
示例:
// 日志样例(JSON格式) { "timestamp": "2023-10-01T12:00:00Z", "level": "ERROR", "message": "Database connection failed", "ip": "192.168.1.1" }
操作:
level == "ERROR"
)筛选日志。SQL示例:
SELECT COUNT() AS error_count, DATE_FORMAT(timestamp, '%H:00') AS hour FROM logs WHERE level = 'ERROR' GROUP BY hour;
常用函数:
| 函数 | 作用 | 示例 |
|——————-|——————————|———————————–|
| SUM()
| 求和 | SUM(response_time)
|
| AVG()
| 平均值 | AVG(duration)
|
| MAX()
| 最大值 | MAX(memory_usage)
|
| REGEXP_MATCH()
| 正则匹配 | REGEXP_MATCH(message, "timeout")
|
复杂查询:
// 统计每个IP的错误次数并排序 SELECT ip, COUNT() AS error_count FROM logs WHERE level = 'ERROR' GROUP BY ip ORDER BY error_count DESC;
场景 | 优化方法 |
---|---|
大文件处理 | 分块加载(如每次处理100万行),避免内存溢出。 |
查询速度慢 | 预先建立字段索引(如timestamp 、level ),减少全表扫描。 |
实时性要求 | 启用增量导入模式,仅加载新增日志。 |
t
)。timestamp >= "2023-10-01"
)。level = "WARN"
但日志中实际为WARNING
)。status
vs http_status
)。通过以上步骤,可高效完成日志数据的导入、清洗、查询及可视化分析,若需进一步定制功能(如机器学习模型集成),可参考官方API文档扩展工具能力