136 lines
7.9 KiB
Markdown
136 lines
7.9 KiB
Markdown
# IwoooS Monitoring / Alerting / Observability owner request draft
|
||
|
||
| 項目 | 內容 |
|
||
|------|------|
|
||
| 日期 | 2026-06-14 |
|
||
| 狀態 | `owner_request_draft_ready_not_dispatched` |
|
||
| 工具 | `scripts/security/monitoring-owner-request-draft.py` |
|
||
| Snapshot | `docs/security/monitoring-owner-request-draft.snapshot.json` |
|
||
| Source inventory | `docs/security/monitoring-alerting-observability-inventory.snapshot.json` |
|
||
| runtime gate | `0` |
|
||
|
||
## 1. 目的
|
||
|
||
本文件把 Monitoring / Alerting / Observability repo-only 清冊中的 60 個 surface 轉成人工送件前 owner request draft,讓 Prometheus、Alertmanager、Grafana、SigNoz、Sentry、Langfuse、OTEL、Telegram / notification policy、deploy / reload script 與 alert chain smoke script 都有一致的 owner 回覆欄位。
|
||
|
||
本階段仍是 metadata-only request draft:不連 live Prometheus、不 reload Alertmanager、不套用 Grafana / SigNoz、不部署 Sentry、不改 Langfuse、不 reload OTEL、不改 receiver route、不建立 silence、不送 Telegram、不 fire live alert、不跑 alert chain smoke、不 SSH、不 kubectl、不讀 secret value、不寫 production。
|
||
|
||
## 2. 摘要
|
||
|
||
| 指標 | 目前值 | 說明 |
|
||
|------|--------|------|
|
||
| request draft | `60` | 全部由 committed monitoring inventory surface 轉換 |
|
||
| write-capable request draft | `11` | 可能 reload、deploy、send notification、fire alert 或 restart exporter 的 surface |
|
||
| live evidence required request | `60` | 每份 request 都需要 owner 提供脫敏 live evidence ref |
|
||
| request field | `24` | 每份草稿固定欄位數 |
|
||
| required owner field | `14` | owner 必須補齊的欄位數 |
|
||
| blocked action | `24` | 驗收前全部禁止 |
|
||
| request sent / recipient confirmed | `0 / 0` | 尚未送件,收件人也未確認 |
|
||
| owner response received / accepted | `0 / 0` | 不得假性拉高 |
|
||
| live evidence received | `0` | 未收到 live config hash、receiver diff 或 route smoke proof |
|
||
| reload / receiver / route smoke accepted | `0 / 0 / 0` | 未授權 reload、receiver route change 或 live smoke |
|
||
| runtime gate / action button | `0 / 0` | 不開任何執行入口 |
|
||
|
||
## 3. Request Draft 類型
|
||
|
||
| 類型 | 範圍 | 目前邊界 |
|
||
|------|------|----------|
|
||
| Prometheus config / rules | base config、remote write、generated target、service registry、alert rules、drift guard | 只收 owner ref;不 reload、不 remote write change |
|
||
| Alertmanager receiver | route、receiver、grouping source | 只收 receiver owner / diff ref;不改 receiver、不 reload |
|
||
| Grafana dashboard / rules | dashboard JSON、alert rule | 只收 dashboard owner / rollback ref;不 import、不 apply |
|
||
| SigNoz / OTEL | alert rule、log rule、API client、collector config | 只收 pipeline owner / data export boundary;不 apply、不 reload |
|
||
| Sentry / Langfuse | compose、deploy、webhook receiver、API client、runbook | 只收 live hash / upgrade window;不 deploy、不 restart |
|
||
| Telegram / notification | gateway service、failure-only policy、notification matrix、recurrence notifier | 只收 receiver / receipt / noise budget owner;不送訊息 |
|
||
| deploy / reload scripts | Alertmanager、Prometheus、Sentry、exporter deploy 或 reload-capable script | 只建立 request draft;不執行腳本 |
|
||
| alert smoke | live alert、test alert、alert chain smoke | 只收 allowed receiver、execution window、cleanup owner;不 fire alert |
|
||
|
||
## 4. Owner 必填欄位
|
||
|
||
| 欄位 | 說明 |
|
||
|------|------|
|
||
| `owner_role_or_team` | 負責角色或團隊 |
|
||
| `decision` | owner 對此 surface 的判定 |
|
||
| `decision_reason` | 決策理由摘要,不得包含機敏值 |
|
||
| `affected_scope` | 受影響的 monitoring / notification / product scope |
|
||
| `redacted_evidence_refs` | 脫敏 evidence id、文件路徑、ticket id 或 hash |
|
||
| `live_config_hash_ref` | 脫敏 live config hash 或 owner-provided ref |
|
||
| `reload_owner` | reload / deploy decision owner |
|
||
| `receiver_owner` | receiver / route / receipt owner |
|
||
| `route_smoke_plan` | route smoke 或 receipt proof 計畫 |
|
||
| `maintenance_window` | 維護窗口或禁止窗口 |
|
||
| `rollback_owner` | rollback 負責人與 rollback ref |
|
||
| `validation_plan` | 驗證與 post-check plan |
|
||
| `noise_budget_owner` | 告警噪音、silence、dedup 與測試通知負責人 |
|
||
| `followup_owner` | 後續補件或決策負責人 |
|
||
|
||
## 5. 禁止動作
|
||
|
||
```text
|
||
prometheus_reload
|
||
alertmanager_reload
|
||
grafana_dashboard_apply
|
||
signoz_rule_apply
|
||
sentry_deploy
|
||
langfuse_config_change
|
||
otel_collector_reload
|
||
receiver_route_change
|
||
silence_policy_change
|
||
telegram_send
|
||
notification_route_change
|
||
webhook_receiver_change
|
||
remote_write_change
|
||
exporter_deploy
|
||
live_alert_fire
|
||
alert_chain_smoke
|
||
ssh_read
|
||
ssh_write
|
||
kubectl_action
|
||
secret_value_collection
|
||
host_write
|
||
active_scan
|
||
production_write
|
||
runtime_gate_open
|
||
```
|
||
|
||
## 6. 指令
|
||
|
||
固定 committed snapshot 時間:
|
||
|
||
```bash
|
||
python3 scripts/security/monitoring-owner-request-draft.py \
|
||
--root . \
|
||
--inventory-report docs/security/monitoring-alerting-observability-inventory.snapshot.json \
|
||
--output docs/security/monitoring-owner-request-draft.snapshot.json \
|
||
--generated-at 2026-06-14T23:25:00+08:00
|
||
```
|
||
|
||
只讀 guard:
|
||
|
||
```bash
|
||
python3 scripts/security/security-mirror-progress-guard.py --root .
|
||
python3 scripts/security/source-control-owner-response-guard.py --root .
|
||
```
|
||
|
||
## 7. 完成度
|
||
|
||
| 工作 | 完成度 | 說明 |
|
||
|------|--------|------|
|
||
| owner request draft artifact | `100%` | 60 份 request draft 已由 committed inventory 產生 |
|
||
| request dispatch | `0%` | 尚未送件,recipient 未確認 |
|
||
| owner response received / accepted | `0%` | 尚未收到或接受任何 owner response |
|
||
| live evidence collection | `0%` | 未讀 live monitoring stack |
|
||
| reload / receiver / route smoke acceptance | `0%` | 未授權、未執行 |
|
||
| runtime / production write | `0%` | 無 action button,無 production write |
|
||
|
||
## 8. 邊界
|
||
|
||
這份 owner request draft 不是資安批准、不是 runtime approval、不是 alert chain smoke proof,也不是 live monitoring truth。不得把 request draft、snapshot、IwoooS UI、AwoooP approval、LOGBOOK 或 committed source visibility 解讀成 Prometheus reload、Alertmanager reload、Grafana import、SigNoz apply、Sentry deploy、Langfuse change、OTEL reload、receiver route change、silence change、Telegram send、live alert fire、alert chain smoke、SSH、kubectl、active scan、secret collection、host write 或 production write 授權。
|
||
|
||
## 9. 2026-06-15 owner response acceptance 只讀帳本
|
||
|
||
2026-06-15 已新增 `docs/security/MONITORING-OWNER-RESPONSE-ACCEPTANCE.md` 與 `docs/security/monitoring-owner-response-acceptance.snapshot.json`,把本文件的 60 份 request draft 轉成 owner response acceptance 只讀帳本。固定 `candidates=60`、`write_capable=11`、`live_evidence_required=60`、`owner_fields=14`、`reviewer_checks=15`、`outcome_lanes=7`、`blocked_actions=28`;owner response received / accepted / rejected、live evidence、reload、receiver route change、silence change、Telegram send、alert chain smoke、host write、runtime gate 與 action button 仍全部為 `0 / false`。
|
||
|
||
2026-06-15 後續已在 acceptance ledger 補上 no-false-green 回補欄位,最新固定為 `acceptance_fields=38`、`reviewer_checks=23`、`outcome_lanes=12`、`blocked_actions=34`;新增 incident context、alert chain health、receiver receipt、stale alert、silence / dedup、false-green risk、post-reload readback 與 cross-project notification ref。這仍不代表 owner response received / accepted、live alert chain truth、reload、Telegram send 或 runtime gate。
|
||
|
||
這份 acceptance ledger 只定義未來 owner response 如何收件、隔離、拒收、補件或進 monitoring reviewer review;不代表 request sent、owner response received / accepted、Prometheus reload、Alertmanager reload、Grafana import、SigNoz apply、Sentry deploy、Langfuse change、OTEL reload、receiver route change、Telegram send、live alert fire、alert chain smoke 或 runtime gate。
|