日志质量与可观测性分析器——检测缺失的结构化日志、日志中敏感数据、日志级别不一致以及日志注入漏洞
LogSentry - 日志质量和可观察性分析器.是一项面向实际任务的技能,主要用于LogSentry扫描了记录反标码的编码库,缺失结构化的日志,日志输出中敏感数据曝光,日志不一致。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
LogSentry 扫描代码库,识别日志反模式、缺失的结构化日志、日志输出中敏感数据泄露、日志级别不一致、缺失关联 ID(correlation IDs)以及日志注入漏洞。它基于正则表达式匹配 6 大类共 90 个专用于日志检测的规则,并通过 lefthook 实现 Git 钩子集成,最终生成含可操作修复建议的 Markdown 报告。100% 本地运行,零遥测(Zero telemetry)。
logsentry scan [文件|目录]对指定文件或目录执行一次性日志质量扫描。
执行方式:
bash "/scripts/dispatcher.sh" --path [目标路径]
功能说明:
典型使用场景示例:
logsentry scan .logsentry scan src/server.tslogsentry scan src/logsentry scan .logsentry scan .logsentry scan --tier pro [文件|目录]增强型扫描,覆盖结构化日志、日志级别、敏感数据与日志注入共 60 条规则。
执行方式:
bash "/scripts/dispatcher.sh" --path [目标路径] --tier pro
功能说明:
logsentry scan --format json [目录]生成 JSON 格式输出,适用于 CI/CD 集成。
bash "/scripts/dispatcher.sh" --path [目录] --format json
logsentry scan --format html [目录]生成 HTML 格式报告,支持浏览器查看。
bash "/scripts/dispatcher.sh" --path [目录] --format html
logsentry scan --category SD [目录]限定扫描范围至特定检查类别(SL、LL、SD、LI、CI、OB)。
bash "/scripts/dispatcher.sh" --path [目录] --category SD
logsentry scan --tier team [目录]全量扫描,覆盖全部 6 大类共 90 条规则,包括关联 ID 与可观测性检查。
执行方式:
bash "/scripts/dispatcher.sh" --path [目录] --tier team
功能说明:
logsentry scan --verbose [目录]详细模式输出,展示每条匹配行及其对应规则的完整细节。
bash "/scripts/dispatcher.sh" --path [目录] --verbose
logsentry status显示许可证状态与当前配置信息。
bash "/scripts/dispatcher.sh" status
LogSentry 在 6 大类别中共检测 90 种日志反模式:
| 类别 | 代码 | 规则数 | 说明 | 严重程度范围 |
|---|---|---|---|---|
| 结构化日志(Structured Logging) | SL | 15 | 缺失结构化日志、使用 print/println 替代日志器、日志消息中字符串拼接、缺失日志上下文字段 | 中 — 高 |
| 日志级别(Log Levels) | LL | 15 | 日志级别误用、生产环境启用 debug 日志、异常未使用 error 级别、日志级别使用不一致 | 低 — 高 |
| 敏感数据(Sensitive Data) | SD | 15 | 日志中输出密码/令牌/PII、记录请求体、信用卡号模式、SSN/邮箱泄露 | 高 — 致命 |
| 日志注入(Log Injection) | LI | 15 | 日志中未清洗的用户输入、换行符注入、CRLF 攻击、格式化字符串漏洞 | 高 — 致命 |
| 关联性与上下文(Correlation & Context) | CI | 15 | 缺失请求 ID / Trace ID、缺失关联 ID、无结构化上下文、时间戳格式不一致 | 低 — 中 |
| 可观测性(Observability) | OB | 15 | 缺失指标上报、无健康检查日志、缺失审计事件、缺少错误率追踪 | 低 — 中 |
| 版本 | 规则数 | 覆盖类别 |
|---|---|---|
| 免费版 | 30 | SL、LL |
| 专业版 | 60 | SL、LL、SD、LI |
| 团队版 | 90 | SL、LL、SD、LI、CI、OB |
| 企业版 | 90 | SL、LL、SD、LI、CI、OB + 优先技术支持 |
LogSentry 采用扣分制,基准分为 100(满分):
| 严重程度 | 单次扣分 | 说明 |
|---|---|---|
| 致命(Critical) | -25 分/处 | 严重安全问题(如敏感数据泄露、注入漏洞) |
| 高(High) | -15 分/处 | 显著质量问题(如缺失日志器、字符串拼接) |
| 中(Medium) | -8 分/处 | 中等关注项(如误用 debug 级别、缺失上下文) |
| 低(Low) | -3 分/处 | 提示性 / 最佳实践建议 |
| 等级 | 分数区间 | 含义 |
|---|---|---|
| A | 90–100 | 日志质量优秀 |
| B | 80–89 | 日志质量良好,存在少量问题 |
| C | 70–79 | 基本达标,但需改进 |
| D | 60–69 | 日志质量差 |
| F | 低于 60 | 存在严重日志问题 |
用户可在 ~/.openclaw/openclaw.json 中配置 LogSentry:
{
"skills": {
"entries": {
"logsentry": {
"enabled": true,
"apiKey": "YOUR_LICENSE_KEY_HERE",
"config": {
"severityThreshold": "medium",
"ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],
"ignoreChecks": [],
"reportFormat": "text"
}
}
}
}
}
--category 参数指定非法类别,列出所有有效类别供参考用户可能提出如下请求:
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章