AWOOOI 告警分類目錄(Alert Taxonomy Catalog)
文件類型: 告警分類權威目錄
版本: v1.0
建立日期: 2026-04-14(台北時間)
建立者: Claude Sonnet 4.6(首席架構師)
資料來源: alert_types.py(56 筆)、alert_rules.yaml(24 條規則)、classify_alert_early()
維護方式: alert_types.py 為 Layer 2 fallback;新類型優先加入 alert_rules.yaml(Layer 1)
告警分類三層架構
程式碼入口: alert_rule_engine.get_incident_type(alertname) — 已整合三層降級
類別目錄(16 大類)
| # |
類別 ID |
中文說明 |
預設 Action |
風險等級 |
數量 |
| 1 |
host_down |
主機完全失去回應 |
RESTART_SERVICE |
HIGH |
5 |
| 2 |
host_cpu |
主機 CPU 過載 |
NO_ACTION |
MEDIUM |
2 |
| 3 |
host_memory |
主機記憶體不足 |
NO_ACTION |
MEDIUM |
2 |
| 4 |
disk_full |
磁碟空間耗盡 |
NO_ACTION |
HIGH |
3 |
| 5 |
backup_failure |
備份任務失敗 |
NO_ACTION |
MEDIUM |
3 |
| 6 |
k8s_node_failure |
K8s 節點異常 |
NO_ACTION |
CRITICAL |
3 |
| 7 |
k8s_pod_crash |
Pod 崩潰/未就緒 |
KUBECTL_ROLLOUT_RESTART |
HIGH |
4 |
| 8 |
k8s_deployment_mismatch |
部署副本數不符 |
KUBECTL_SCALE |
MEDIUM |
1 |
| 9 |
database_down |
資料庫服務下線 |
RESTART_SERVICE |
CRITICAL |
2 |
| 10 |
database_performance |
資料庫效能異常 |
NO_ACTION |
MEDIUM |
6 |
| 11 |
service_down |
內部服務下線 |
RESTART_SERVICE |
HIGH |
9 |
| 12 |
service_404 |
外部服務/網站無法連線 |
NO_ACTION |
MEDIUM |
5 |
| 13 |
ssl_expiry |
SSL/TLS 憑證到期 |
NO_ACTION |
MEDIUM |
2 |
| 14 |
alert_chain_broken |
告警鏈路斷裂 |
NO_ACTION |
CRITICAL |
4 |
| 15 |
docker_container_unhealthy |
Docker 容器異常 |
RESTART_SERVICE |
MEDIUM |
2 |
| 16 |
auto_repair_degraded |
自動修復效率下降 |
NO_ACTION |
HIGH |
2 |
| — |
high_cpu / high_memory |
舊版相容 alias |
— |
— |
3 |
| — |
custom |
未匹配兜底 |
NO_ACTION |
LOW |
— |
詳細分類清單
1. 主機層(Host Layer)
host_down — 主機失去回應
| alertname |
說明 |
SSH 可用? |
HostDown |
主機完全失去 ICMP/TCP 回應 |
否(已失聯) |
- 決策路徑: TYPE-3(高風險,人工審核)
- 修復模式: SSH 路徑(若主機重新上線後)or 手動介入
- Rule 匹配:
host_down 規則(priority 100)
host_cpu — CPU 過載
| alertname |
說明 |
HostHighCpuLoad |
主機 CPU 負載持續超過閾值 |
HighCPUUsage |
舊版 alias(相容保留) |
- 決策路徑: LLM 分析 → 識別高耗 CPU 程序 → NO_ACTION(INFO)
- Rule 匹配:
host_high_cpu 規則(priority 115)
host_memory — 記憶體不足
| alertname |
說明 |
HostOutOfMemory |
主機可用記憶體低於 10% |
HighMemoryUsage |
舊版 alias(相容保留) |
RedisMemoryHigh |
Redis 記憶體超過 80% |
- 決策路徑: NO_ACTION(INFO),建議人工清理
- Rule 匹配:
host_out_of_memory 規則(priority 110)
disk_full — 磁碟空間耗盡
| alertname |
說明 |
HostOutOfDiskSpace |
主機磁碟剩餘空間不足 |
DiskSpaceLow |
舊版 alias(相容保留) |
- 決策路徑: TYPE-1(INFO),log 分析後 NO_ACTION
- Rule 匹配:
disk_full 規則(priority 120)
backup_failure — 備份失敗
| alertname |
說明 |
HostBackupFailed |
主機備份腳本失敗 |
VeleroBackupFailed |
Kubernetes Velero 備份失敗 |
VeleroBackupNotRun |
Velero 備份超過預定時間未執行 |
- 決策路徑: NO_ACTION(通知統帥)
- SLA 影響: RPO 可能受損,需人工確認
2. Kubernetes 層(K8s Layer)
k8s_node_failure — 節點異常
| alertname |
說明 |
K3sNodeNotReady |
K3s 節點 NotReady 狀態 |
KubeNodeNotReady |
Kubernetes 節點 NotReady |
KubeNodeUnreachable |
節點無法連線 |
- 決策路徑: TYPE-3(CRITICAL,強制人工審核)
- 禁止自動修復: 節點問題影響全叢集,不自動 drain/cordon
k8s_pod_crash — Pod 崩潰
| alertname |
說明 |
KubePodCrashLooping |
Pod 反覆崩潰重啟(CrashLoopBackOff) |
KubePodNotReady |
Pod 持續未就緒 |
- 決策路徑: LLM RCA → rollout restart
- 標準 kubectl:
kubectl rollout restart deployment/{name} -n {namespace}
- Rule 匹配:
pod_crash_looping / pod_not_ready 規則(priority 50/55)
k8s_deployment_mismatch — 副本數不符
| alertname |
說明 |
KubeDeploymentReplicasMismatch |
實際 Pod 數 ≠ 期望副本數 |
- 決策路徑: LLM 分析 → kubectl scale(需人工確認)
- 注意:
--replicas=0 被安全閘阻擋(ADR-064)
3. 資料庫層(Database Layer)
database_down — 資料庫下線
| alertname |
說明 |
PostgreSQLDown |
PostgreSQL 無法連線 |
RedisDown |
Redis 無法連線 |
- 決策路徑: TYPE-3(CRITICAL)→ 人工審核後 rollout restart
- Rule 匹配:
postgresql_down / redis_down 規則(priority 30/35)
database_performance — 資料庫效能
| alertname |
說明 |
PostgreSQLHighConnections |
連線數過高 |
PostgreSQLSlowQueries |
慢查詢偵測 |
PostgreSQLDeadlocks |
死鎖偵測 |
PostgreSQLTooManyConnections |
超過最大連線限制 |
RedisKeyEviction |
Redis key 被驅逐 |
RedisConnectionsHigh |
Redis 連線數過高 |
RedisCommandLatencyHigh |
Redis 命令延遲過高 |
- 決策路徑: LLM 分析 → NO_ACTION(INFO + 建議)
4. 服務層(Service Layer)
service_down — 內部服務下線
| alertname |
說明 |
主機位置 |
OpenClawDown |
OpenClaw AI 引擎下線 |
188 |
MinIODown |
MinIO 物件儲存下線 |
188 |
HarborDown |
Harbor 容器倉儲下線 |
188 |
GiteaDown |
Gitea CI/CD 服務下線 |
188 |
AlertmanagerDown |
Alertmanager 下線(鏈路失效) |
110 |
SignOzDown |
SignOz 監控平台下線 |
110 |
SentryDown |
Sentry 錯誤追蹤下線 |
— |
KaliScannerDown |
Kali 安全掃描器下線 |
121 |
- Rule 覆蓋:
minio_down(priority 10)→ SSH docker restart
gitea_down(priority 125)→ NO_ACTION(CI/CD 服務,不自動修復)
openclaw_down(priority 40)→ kubectl rollout restart
- 修復模式: 視服務所在層(K8s Pod / Docker Container / 主機服務)
service_404 — 外部網站/服務異常
| alertname |
說明 |
MoWoooWorkDown |
工作用外部網站下線 |
TsenyangWebsiteDown |
個人網站下線 |
StockWoooWorkDown |
股票工具網站下線 |
BitanWoooWorkDown |
碧潭相關網站下線 |
ExternalSiteSSLExpiringSoon |
外部網站 SSL 到期 |
TargetDown |
舊版 blackbox 告警 alias |
- Rule 匹配:
external_site_down(priority 127)→ NO_ACTION(通知)
- 決策路徑: TYPE-1(INFO)
ssl_expiry — SSL/TLS 憑證到期
| alertname |
說明 |
SSLCertExpiringSoon |
憑證即將到期(< 30 天) |
ExternalSiteSSLExpiringSoon |
外部網站憑證到期 |
- Rule 匹配:
ssl_cert_expiring(priority 126)→ NO_ACTION(提醒)
- 修復方式: 人工 certbot renew / cert-manager 更新
5. 告警鏈路層(Alert Chain Layer)
alert_chain_broken — 告警鏈路斷裂
| alertname |
說明 |
AlertChainBroken_Alertmanager |
Alertmanager 停止發送告警 |
AlertChainBroken_Sentry |
Sentry 停止發送錯誤通知 |
NoAlertsReceived2Hours |
2 小時無任何告警(watchdog 失效) |
AlertChainUnhealthy |
鏈路整體健康度低 |
- 嚴重性: CRITICAL(告警鏈路失效 = 系統失明)
- Rule 匹配:
alert_chain_broken(priority 20)
- 通知: Telegram 緊急通道(立即)
6. 容器層(Docker Layer)
docker_container_unhealthy — Docker 容器異常
| alertname |
說明 |
DockerContainerUnhealthy |
Docker healthcheck 失敗 |
DockerContainerExited |
容器意外退出(非 K8s 管理的裸 Docker) |
- 修復模式: SSH →
docker restart {container_name}
- 注意: 不可用
docker restart 重啟整個 Docker Engine(會殺死 Gitea)
7. 自動修復監控(Auto Repair Monitoring)
auto_repair_degraded — 飛輪效率下降
| alertname |
說明 |
AutoRepairLowSuccessRate |
SLO-1 < 80%(7天滾動) |
PermanentFixRequired |
同一告警重複修復 > 3 次 |
- 觸發: HITL-8(SLO-1 < 50% 連續 2h)
- 處理: TYPE-8M 通知,建議暫停自動修復
- Root Cause: 見
feedback_auto_repair_flywheel_v2.md
Alert Rule 優先順序速查
| Priority |
Rule ID |
alertname 關鍵字 |
Action |
| 10 |
minio_down |
MinioDown, MinIODown |
SSH restart |
| 20 |
alert_chain_broken |
AlertChainBroken_* |
NO_ACTION |
| 30 |
postgresql_down |
PostgreSQLDown |
kubectl restart |
| 35 |
redis_down |
RedisDown |
kubectl restart |
| 40 |
openclaw_down |
OpenClawDown |
kubectl restart |
| 50 |
pod_crash_looping |
KubePodCrashLooping |
kubectl restart |
| 55 |
pod_not_ready |
KubePodNotReady |
kubectl restart |
| 100 |
host_down |
HostDown |
NO_ACTION |
| 110 |
host_out_of_memory |
HostOutOfMemory |
NO_ACTION |
| 115 |
host_high_cpu |
HostHighCpuLoad |
NO_ACTION |
| 120 |
disk_full |
HostOutOfDiskSpace |
NO_ACTION |
| 125 |
gitea_down |
GiteaDown |
NO_ACTION |
| 126 |
ssl_cert_expiring |
SSLCertExpiringSoon |
NO_ACTION |
| 127 |
external_site_down |
MoWoooWorkDown |
NO_ACTION |
| 999 |
generic_fallback |
* |
NO_ACTION |
總計: 24 條規則,56 個 alertname 對應
新增告警類別 SOP
- 確認 alertname 是否已在
ALERTNAME_TO_TYPE 中 → 如有,只需在 alert_rules.yaml 補規則
- 決定
incident_type(參考現有 16 類;必要時新增)
- 在
alert_rules.yaml 新增規則(priority < 999,> 127 且 < 999 為安全區)
- 若新
incident_type,在 alert_types.py 補 dict 條目
- 更新本文件 +
LOGBOOK.md
本文件由 Claude Sonnet 4.6 於 2026-04-14 台北時間建立,以 alert_types.py v56筆 + alert_rules.yaml v24條 為資料來源