ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Oracle Skill Console:把 170+ 官方技能变成“告警来了直接给答案“的控制台

Oracle Skill Console:把 170+ 官方技能变成“告警来了直接给答案“的控制台 Oracle Skill Console把 170 官方技能变成告警来了直接给答案的控制台承接系列文章《Oracle RAC 21.3 双节点 Docker Desktop 部署指南》《Oracle RAC 21.3 双节点监控与打包实战》本文单独介绍监控栈里最有想法的一个组件——Skill Console技能控制台端口 8090。项目完整代码https://github.com/dk843108982/oracle-monitoring0. 背景984 个技能文件怎么用Oracle 官方开源了技能库 oracle/skills984 个 Markdown覆盖 DBA / 开发 / 迁移 / AI 全部场景。技能是全的但问题也来了遇到一个具体问题比如表空间告警了该看哪几个文件按什么顺序看看完了 SQL 怎么抄Oracle 官方博客给过一个思路“Route, Don’t Flood”——不要淹没在技能海里先路由到最相关的那几个技能。本项目把这个思路落地成了一个可直接访问的 Web 控制台http://localhost:8090 Oracle Skill Console它把技能库变成了一套四合一路由中心 告警联动闭环 技能地图路由表可视化SQL 一键复制 按角色路由官方推荐路径DBA / 开发 / AI / 迁移 按任务诊断多步技能序列 一键生成诊断手册 告警联动Prometheus 告警 → 技能文件映射表1. 总览顶部状态栏实时聚合监控状态打开页面第一眼看到的是顶部状态栏——它不只是一张静态页面而是每 15 秒轮询采集器与 Prometheus实时聚合整个监控栈的状态采集器 UP / DOWNoracle-collector端口 9161是否在线oracle_up数据库实例探活结果告警 FIRING / PENDING 计数Prometheus 当前有多少条告警在触发/等待表空间警告使用率 ≥85% 的表空间实时列出截图时刻的真实状态采集器 UP、告警FIRING 7 / PENDING 4、表空间警告 SYSTEM 97.9% / SYSAUX 95.1%——全部来自正在运行的 Docker 监控栈不是写死的演示数据。2. 技能地图路由表可视化 SQL 一键复制第二个亮点是技能地图Tab——它把db/SKILL.md里的Category Routing 路由表自动解析成三栏界面左栏中栏右栏技能分类树含每个分类的技能数实测 19 类 170 文件该分类下的技能文件列表技能详情选中任意技能右侧立即渲染官方技能的结构化详情 版本说明19c / 21c / 23ai / 26ai 兼容性提示章节标签Overview / Best Practices / Common Mistakes…诊断 SQL 块每条带复制按钮一键抄走最佳实践清单常见坑清单必须规避以db/admin/dataguard.md为例一次渲染出17 条 Data Guard 诊断 SQLCONVERT TO SNAPSHOT STANDBY、LOG_ARCHIVE_DEST_2、MANAGED STANDBY RECOVERY…全部来自官方技能库原文点一下复制就能贴进 DBA 的终端。3. 按角色路由官方推荐路径“技能地图回答这个文件讲什么”“按角色路由回答我这个角色该按什么顺序学”。控制台内置了 4 个角色的推荐路径DBA / 数据库运维performanceexplain-plan → wait-events → optimizer-stats → awr-reports→ monitoringspace-management / alert-log-analysis / top-sql-queries→ security应用开发工程师frameworksSpring JPA / Django / SQLAlchemy / MyBatis→ appdevJSON / Spatial / Text / 连接池AI 工程师agentschema-discovery → destructive-op-guards → idempotency-patterns→ featuresai-profiles → vector-search → dbms-vector迁移负责人migrationsmigration-assessment → migrate-* → 割接策略→ devopsschema-migrations / EBR / 测试每个角色都写清楚了先做什么、再做什么、为什么这个顺序——比如先读真实执行计划计划正常再查等待事件估算偏差先修统计信息这是把官方技能库的经验沉淀成了可直接照做的 SOP。4. 按任务诊断一键生成诊断手册含 25 条官方 SQL这是最能体现工具价值的功能不用自己翻技能库填个上下文直接出诊断手册。页面内置了 5 条官方多步任务流程慢查询诊断、表空间告警处理、RAG on Oracle、Agent 安全变更、SQLcl MCP 接入下方是一键执行技能诊断选择诊断类型8 类表空间 / Alert 日志 ORA / 慢 SQL / 等待事件 / 实例失联 / 内存 / AWR / ASH输入告警上下文 JSON如{tablespace:USERS,used_pct:92}点运行诊断 →后端复用采集器里的skills_engine把告警类型路由到官方技能文件自动拼装出一份完整的技能诊断手册并落盘collector/reports/【Oracle 技能诊断手册】表空间空间告警诊断 告警类型 : tablespace 技能来源 : oracle/skills - db/monitoring/space-management.md 技能摘要 : 基于 DBA_TABLESPACE_USAGE_METRICS 评估使用率、自动扩展、HWM 与碎片 按阈值分级 (95 CRITICAL / 85 WARNING / 75 WATCH) 给出处理方案。 告警上下文 : {tablespace: USERS, used_pct: 92} [诊断 SQL] 共 25 条来源: 官方技能库 --- SQL 1 --- DBA_TABLESPACE_USAGE_METRICS 全量使用报告 --- SQL 2 --- 80% 以上表空间告警清单 ...手册生成即落盘左侧诊断报告历史可随时回看实测库里已经积累了 OracleTablespaceCritical / OracleOptimizerStatsStale / OracleInstanceDown / OracleBufferCacheHitRatioLow 等一批真实报告。这意味着告警来临时答案文件已经自动存在磁盘上了。5. 告警联动核心Prometheus 告警 ↔ 技能文件映射表最后一个 Tab 把监控和技能真正串了起来——告警联动Prometheus 告警技能文件阈值 / 说明OracleTablespaceCritical / Warning / Watchdb/monitoring/space-management.md≥95 / ≥85 / ≥75OracleAlertLogCriticalErrordb/monitoring/alert-log-analysis.md任何 ORA 错误OracleInstanceDowndb/monitoring/alert-log-analysis.mdoracle_up 0OracleSlowSQLdb/monitoring/top-sql-queries.mdTop SQL 耗时 30minOracleTopWaitEventdb/performance/wait-events.mdTop 等待 1hOracleBufferCacheHitRatioLowdb/performance/memory-tuning.md命中率 95%OracleArchiverFaileddb/monitoring/alert-log-analysis.md归档失败配合系列文章里的40 条 Prometheus 告警规则 alert-handler完整闭环是Prometheus 告警触发 → WatchAlert / Alertmanager WebHook → alert-handler端口 8080按 ALERT_SKILL_MAP 找到技能文件 → 生成技能诊断手册 reports/告警名.txt → Skill Console 顶部实时显示 FIRING / PENDING映射表告诉你该看哪个技能也就是说收到 OracleOptimizerStatsStale 告警手册目录里就自动多出一份 optimizer-stats 技能的诊断指南——从告警到答案不需要人肉搜索。6. 实现一个 Python 文件 一个静态页整个控制台只有两个文件零依赖框架skill-console/server.py约 17KBPython 标准库 HTTP 服务 技能索引 诊断引擎复用skill-console/index.html约 16KB单页前端原生 JS四个 Tab 状态轮询启动方式一行py-3.12 skill-console/server.py--port 8090--repo oracle-skills 绝对路径--reports-dircollector\reports内置 API 一览API说明GET /api/skills技能地图分类树 子技能索引自动解析 db/SKILL.md 路由表GET /api/skill?path…技能详情章节 / 诊断 SQL / 最佳实践 / 常见坑 / 版本说明GET /api/routes按角色 / 按任务推荐路由GET /api/alertmap告警 → 技能映射表POST /api/run一键执行技能诊断生成手册落盘GET /api/reports诊断报告历史GET /api/status监控状态聚合采集器 Prometheus 告警实测中顺手修掉一个 bug官方db/SKILL.md的 Directory 列带尾部斜杠如db/admin/前端拼接dir /会变成db/admin//导致技能列表永远为空——在解析时rstrip(/)即可修复后 19 个分类 170 技能文件全部正常索引。6.1 部署方式两种方式 A命令行启动调试推荐py-3.12 skill-console\server.py --port 8090 --repo repo\oracle-skills --reports-dirrepo\collector\reports --collector http://127.0.0.1:9161 --prometheus http://127.0.0.1:9090启动后打印技能索引: 170 个技能 / 19 个分类即成功。方式 B随监控栈一键启动start-all.ps1的 8090 段91-94 行已内置上述命令与其余 10 个容器一起拉起。参数默认值作用--port8090监听端口绑定 127.0.0.1仅本机--repooracle-skills官方技能库根目录含db/SKILL.md--reports-dircollector/reports诊断手册落盘目录--collector:9161采集器探活端点状态栏 UP 判断--prometheus:9090实时告警 FIRING / PENDING 计数6.2 工作原理架构零第三方依赖Handler (BaseHTTPRequestHandler) ├─ GET /api/skills /api/skill /api/routes /api/startpoints │ /api/search /api/stats /api/alertmap /api/reports /api/status └─ POST /api/run 一键执行技能诊断 │ ┌──────┼──────────┐ ▼ ▼ ▼ SkillsIndex ConsoleState SkillsEngine(collector 复用) 解析路由表 聚合采集器/告警 ALERT_ROUTES 14 类 遍历 984 md 动态告警映射16条 runbook() 生成手册索引构建启动一次解析db/SKILL.md路由表得 19 分类遍历db/**/*.md得 170 技能提取 SQL 块 / 章节 / 最佳实践 / 常见坑 / 版本说明。状态聚合前端每 15s/api/status同时探测采集器9161与 Prometheus9090。告警联动ALERT_SKILL_MAP16 条告警名×ALERT_ROUTES14 类诊断路由动态生成/api/alertmap当前 FIRING 的告警前端红色高亮。一键诊断POST/api/run带alert_typeSkillsEngine.runbook()组装官方 SQL 诊断手册落盘reports/。6.3 与监控栈的联动闭环oracle-collector (9161) → Prometheus (909040 条告警规则) → WatchAlert (9002) → WebHook → alert-handler (8080ALERT_SKILL_MAP) → Skill Console (8090) → POST /api/run → 诊断手册 reports/官方 SQL 可直接抄6.4 API 一览v2 增强后 10 个方法路径说明GET/api/skills19 分类 170 技能索引GET/api/skill?path技能详情SQL 块 / 章节 / 最佳实践 / 版本说明GET/api/routes4 角色路由 9 条任务流对齐官方 8 条 Common Multi-Step FlowsGET/api/startpoints官方 13 个 Key Starting Pointsv2 新增GET/api/search?q技能全文检索标题正文关键词返回命中片段v2 新增GET/api/stats技能库统计技能/分类/SQL 块/最佳实践/告警映射/任务流v2 新增GET/api/alertmap16 条告警→技能映射由 ALERT_SKILL_MAP × ALERT_ROUTES 动态生成GET/api/status采集器 / oracle_up / FIRING·PENDING / 表空间告警实时状态GET/api/reports诊断报告历史近 20 条POST/api/run一键执行诊断14 类告警类型可选7. 与官方 oracle/skills 能力核对v2对照官方db/SKILL.md19 分类路由表 / 13 个 Key Starting Points / 8 条 Common Multi-Step Flows逐项核对官方能力v1v2说明19 分类路由表✅✅分类树 技能数12 个 Key Starting Points❌✅顶部横幅 13 个入口一键直达8 条 Common Multi-Step Flows⚠️ 5 条✅ 9 条补迁移规划 / Java JDBC / VecDB 部署 / 向量应用技能全文检索❌✅/api/search 检索 Tab技能库统计❌✅170 技能 / 1748 SQL 块 / 737 最佳实践 / 536 常见坑告警→技能联动⚠️ 7 条手写✅ 16 条动态对齐 ALERT_SKILL_MAP16× ALERT_ROUTES14一键诊断类型⚠️ 8 类✅ 14 类补 backup / adrci / health_monitor / explain_plan / index_strategy / optimizer_stats角色路由4 类✅✅DBA / 应用开发 / AI / 迁移仍可扩展未做技能交叉引用图、多技能库切换、告警手册按严重级别分页、技能 diff 对比。8. 增强一览v2页面更详细、功能更全全文检索 Tab搜 170 技能正文标题 文件路径 命中片段点击直达技能地图定位实测tablespace命中 39 个技能文件。技能库统计栏顶部实时显示 170 技能 / 19 分类 / 1748 条诊断 SQL / 737 最佳实践 / 16 告警映射 / 9 任务流。官方起点横幅13 个 Key Starting Points 常驻顶部。告警联动 16 条 实时高亮当前 FIRING 的告警红色高亮每 30s 刷新。任务流 5 → 9 条、⚡一键诊断 8 → 14 类。9. 总结Skill Console 的价值可以浓缩成一句话把984 个技能文件从资料库变成可路由、可执行、可联动的运维工具。想查技能 → 技能地图SQL 一键复制想学路线 → 按角色路由官方顺序照做想处理告警 → 一键诊断生成手册报告落盘可回看想自动化 → 告警联动Prometheus 告警自动映射技能文件完整代码含部署 / 监控 / 打包三篇配套文档与全部脚本已开源https://github.com/dk843108982/oracle-monitoring欢迎评论区交流首发于 CSDN转载注明出处
返回列表