跳至正文

事件中心與通知

事件中心會記錄系統中發生的狀況;通知規則則決定哪些事件需要傳送至哪些管道。建議先確認事件能穩定記錄,再建立少量真正有價值的通知,以免每次正常存取都變成告警雜訊。

資料之間的關係

物件作用
事件一次登入、封鎖、更新或狀態變化的結構化記錄
供應商Webhook、Email 或訊息推播管道的連線設定與憑據
規則依事件類型、時間窗、Threshold、彙總維度與 Cooldown 決定是否通知
通知目標規則所引用的供應商,以及該規則專用的接收目標
投遞記錄規則觸發後,每個目標各自產生的一次傳送與重試記錄

刪除事件不會刪除已產生的投遞記錄;清除投遞記錄也不會刪除事件或規則。刪除規則只會停止後續通知,不影響既有事件。

事件頁面

事件頁面可識別的系統事件包括:

  • 身分驗證:登入成功、登出、登入失敗、工作階段 IP 漂移;
  • 安全性:掃描器攔截、閘道 Rate Limit 封鎖、閘道可見性攔截、WAF 阻擋;
  • SSH:登入成功、登入失敗、IP 封鎖;
  • 網路:DDNS 更新、FRP 連線/中斷、Cloudflared 連線/中斷;
  • 遠端喚醒:WOL 廣播完成(管理員、傳送門、點燈科技或巴法雲);
  • 終端機:SSH 目標變更、主機指紋確認、連線測試、本機終端機啟用/停用,以及本機或遠端工作階段的建立、結束、退出與遺失;
  • 系統:應用程式更新提示、CPU 告警/恢復、記憶體告警/恢復;
  • Runtime:元件啟動、停止、重新啟動、健康檢查失敗、恢復與異常結束。

事件層級分為資訊、注意、錯誤與嚴重;來源系統則分為管理後台、身分驗證 Proxy、系統監控與 Runtime 監控。

頁面支援:

  • 搜尋事件 ID、IP、工作階段或憑據;
  • 依事件類型、層級與來源系統篩選;
  • 分頁查看並開啟結構化詳細資訊;
  • 刪除單筆事件,或批次刪除已選取的事件;
  • 清除所有事件。

「清除事件」會刪除事件中心保存的所有事件;括號中的數量只代表目前 View 符合的筆數,並不表示只清除目前的篩選結果。此操作無法復原,但不會清除通知規則與投遞記錄。

事件詳細資訊會依類型顯示憑據、驗證方式、工作階段、IP 與地理位置、失敗次數、封鎖時間、DDNS IP 變化、Trace ID、WAF 規則、Tunnel PID、WOL 目標與投遞來源、資源 Threshold 等欄位。閘道可見性攔截還會記錄請求 Host、路徑、方法,以及生效的是閘道全域或 Host 自訂範圍。進行疑難排解時,可複製詳細資訊,並與請求記錄、WAF Log、Tunnel Log 或裝置上線狀態交叉比對。

本機終端機事件會標明終端機後端、執行身分及是否為特權身分,方便確認工作階段實際以誰的權限執行。終端機事件只稽核設定變更與工作階段生命週期,不會保存管理員在 Shell 中輸入的每一條命令;需要命令層級留存記錄時,應在主機或遠端 SSH 目標另外設定稽核。

頁面頂端的 Trace ID 查詢 可貼上 Response Header、攔截頁、Request Log 或通知中的完整 ID。完整鏈路追蹤會關聯同一 Request 的 WAF、系統事件、通知觸發與投遞;舊事件或未啟用對應收集時可能只有部分鏈路。

事件也會記錄導覽面板同步失敗/恢復與遠端裝置 SSH 關機,不應依賴固定的事件類型數量。驗證和安全事件會共用 IP 屬地快取;首次遇到未快取位址時可先儲存,再非同步補齊,通知會在可用時使用補齊欄位。

核心服務狀態與診斷

事件中心 → 狀態 每 5 秒更新管理服務、Go 閘道程序、閘道 Data Plane、驗證橋接、儲存與設定同步的健康狀態。程序卡也會顯示版本、PID、啟動時間、CPU、記憶體或 Go Runtime 資訊;服務卡顯示探測延遲與連續失敗原因。受上游阻擋 代表目前元件本身可執行,但相依元件尚未就緒。

狀態頁面提供三類疑難排解資料:

操作內容與範圍
複製診斷資訊複製目前版本、平台、元件健康狀態與最近 Runtime 事件的 JSON 摘要
查看 Log查看管理服務或 Go 閘道最近 200 筆已遮蔽核心 Runtime Log;不包含 Request、WAF 或驗證記錄
匯出診斷包下載 diagnostics.json 與有大小上限的管理、閘道及 Supervisor Log,供故障回報使用

核心診斷 Log 的總容量上限為 6 MiB;達到上限後會輪替檔案或捨棄低優先級資訊。狀態頁會顯示涵蓋時間、磁碟用量與已捨棄的 INFO 數量。清除單一元件 Log 只會移除該元件目前與上一代的核心 Runtime Log,不會刪除 Runtime 事件、Crash Log 或其他元件 Log。

診斷 Log 會遮蔽常見密鑰欄位,但診斷包仍可能揭露版本、平台、路徑、元件狀態與故障時間。對外分享前請先檢查內容;Request 明細應另從 Request Log 或 WAF Log 匯出,三者並非同一類型的記錄。

Rust 執行診斷

事件中心 → 狀態 → 執行診斷 點選 開始 60 秒取樣,每秒收集目前 Rust 管理程序的資源、背景工作及 SQLite 操作統計。開啟視窗不會自動取樣;可提前停止並保留結果,關閉視窗後伺服器仍會自動完成。

收集記憶體詳情 是獨立的按需快照,不會回收記憶體。匯出 JSON 可保留逐秒樣本、操作統計與記憶體詳情,狀態頁診斷匯出也包含目前報告。新一輪會取代上一輪,服務重新啟動後報告會遺失,應先匯出。

CPU 以一個邏輯核心滿載為 100%,首個缺少基準的樣本不等於零;工作經過時間包含等待,不是 CPU 時間。Linux 提供較完整的資訊,macOS 主要提供程序 CPU 與 RSS,Windows 主要提供程序工作集;不可用欄位不等於零。報告不含其他實例或 Go 閘道的資源,單次 RSS 升高不足以確認記憶體洩漏。

Go 閘道記憶體

Go 閘道程序卡右下角的記憶體按鈕可調整 Garbage Collection 強度與 Go Runtime 軟性記憶體上限,也可立即執行一次回收。狀態卡中的 Heap、RSS、GC 次數、Active Request 與連線數可用來判斷趨勢;軟性上限只限制 Go Runtime 管理的記憶體,不是 Process RSS 的硬上限。

  • 積極(GOGC 50) 會更頻繁回收,通常降低記憶體但增加 CPU 開銷;平衡(100) 是預設值;寬鬆(200) 更重視 Throughput。自訂範圍為 25–500
  • 記憶體上限預設使用自動模式:取執行環境有效記憶體約四分之一,並限制在 128–512 MiB;無法讀取有效記憶體時使用 256 MiB
  • 手動上限可設為 64–4096 MiB,且不能超過目前有效系統記憶體的 50%。儲存值會在閘道啟動時、接受業務流量前先行恢復。
  • 立即回收 可能短暫增加 CPU 或造成暫停,只適合疑難排解或確認回收效果,不應當作定期最佳化按鈕反覆點擊。

低記憶體 NAS 或 Container 請先保留自動上限;只有狀態頁持續顯示 Heap/RSS 壓力,且已排除流量、深度監控或異常連線後,再逐步降低 GOGC 或設定手動上限。每次調整後都要同時觀察 CPU、延遲與閘道健康狀態。

CPU 與記憶體監控

資源監控只會在 Runtime 能力可用的平台上啟動;目前 Windows 部署不提供此功能。Linux 類環境會依系統資源資訊,計算整機或目前 Container 可見範圍內的 CPU 與可用記憶體,並產生告警與恢復事件。這不是 Process-level Profiler,無法指出實際由哪個處理程序造成負載。

目前的預設規則如下:

指標告警臨界值恢復臨界值取樣間隔持續時間
CPU80%60%5 秒30 秒
記憶體80%60%5 秒30 秒

使用率必須持續達到告警臨界值,才會產生告警;告警後也必須持續降回恢復臨界值,才會產生恢復事件。60%–80% 的中間區間可避免在臨界值附近反覆告警。短暫的 Spike 不會立即形成事件,第一筆 CPU Sample 也只用來建立計算基準。

目前可在管理介面查看資源事件並替其設定通知,但沒有可調整上述取樣與臨界值的控制項。不要將通知規則中的時間窗與觸發次數誤認為資源取樣臨界值:前者決定既有事件如何傳送,後者決定事件何時產生。

Docker 中顯示的是 Container Runtime 可見的 CPU 與記憶體限制;若部署時設定了 Resource Limit,應搭配這些限制解讀告警。沒有資源事件時,請先確認目前平台能力與事件系統皆正常,再檢查負載是否確實持續超過臨界值。

設定通知供應商

前往 事件中心 → 通知 → 供應商,先建立並測試傳送管道。目前支援:

  • Webhook;
  • WxPusher;
  • Server醬;
  • PushPlus;
  • WeCom(企業微信);
  • DingTalk(釘釘);
  • Lark(飛書);
  • Email;
  • PushDeer;
  • HarmonyOS MeoW;
  • MagicPush;
  • Bark;
  • Telegram。

不同管道對 Markdown、Action Button、Mention 與訊息長度的支援程度不一,請以新增供應商時顯示的欄位與功能為準。

建立時請設定名稱、類型、啟用狀態與連線參數。部分管道另提供預設接收目標;規則中同名的目標欄位留空時,會沿用供應商預設值。目前使用 WxPusher 必須安裝並登入其官方 App,不能再依賴直接在微信中接收訊息。

儲存前可測試表單中的草稿設定;儲存後也能從清單再次測試。編輯敏感欄位時會顯示「已設定,留空則維持不變」;不需要為了保留金鑰而再次貼上舊值。

Webhook URL、Token、SMTP 密碼與接收識別碼等都屬於敏感設定,不可貼至公開 Log 或截圖。供應商已被規則引用時,後端會阻止刪除;請先調整或刪除對應規則。

Webhook 自訂內容

Webhook 供應商可設定自訂標頭與標準、JSON 或文字本文;規則的 Webhook 目標可繼承供應商設定或覆寫本文。先預覽,再傳送測試請求以確認第三方格式。

編輯器的通知詳情依事件列出可插入欄位,公共詳情提供事件類型、風險、來源、發生時間與彙總統計。使用 {{message.fact_values.login_ip}}{{message.fact_values.credential_name}} 等固定名稱;名稱不隨語言或排列改變,值仍是通知中的格式化內容。原始事件資料使用 event.payload.*

{{message.fact_values}} 可引用整個物件;JSON 字串只含單一變數時保留型別,混合文字則轉成字串。事件缺少的欄位會在預覽標示,獨立 JSON 變數為 null,嵌入文字時為空字串,不阻止投遞。

樣例 Context 留空時使用伺服器樣例;填入樣例 JSON 後可修改為目標事件資料,用於標準與自訂本文的預覽及測試,不會儲存或影響實際投遞。重試使用原訊息快照,歷史訊息可能沒有 fact_values

HarmonyOS MeoW

選擇 鴻蒙MeoW 後填寫:

欄位說明
服務位址官方 API 使用預設的 https://api.chuckfang.com;自架相容服務請填寫其 Base URL
接收暱稱MeoW App 中設定的使用者暱稱,不得包含 /;此值相當於接收識別碼,應比照敏感憑據保存
逾時秒數預設 5 秒,可設定 1~30 秒

此管道可傳送 Markdown 通知並支援通知操作,但不支援 Mention。儲存後請先傳送測試訊息,確認 HarmonyOS 裝置已收到內容,再將該供應商加入通知規則。

建立通知規則

前往 事件中心 → 通知 → 規則。至少要有一個供應商才能建立規則;每種事件類型目前只能建立一條規則。新增時只會列出尚未設定規則的事件,並可一次選取多個事件批次建立。

批次建立時會使用下列預設觸發條件:

欄位新增預設值說明
時間窗60 秒在此時間窗內累計同一組事件
觸發次數1 次達到次數後產生通知
彙總維度依事件自動建議決定哪些事件要計入同一組
Cooldown60 秒同一組觸發後,抑制重複通知

規則建立後,可逐條編輯觸發條件。彙總維度包括全域、IP、工作階段、主體物件、Hostname 與供應商。自動建議範例如下:

  • 登入失敗、掃描器、閘道 Rate Limit、WAF 與 SSH 事件依 IP;
  • 閘道可見性攔截依全域彙總;
  • 工作階段 IP 漂移依工作階段;
  • DDNS 更新依供應商;
  • CPU 與記憶體事件依 Hostname;
  • Tunnel 與應用程式更新依主體物件;
  • 遠端喚醒完成依主體物件區分裝置;
  • 登入成功與登出依全域。

一條規則可加入多個供應商,但同一個供應商在該規則中只能加入一次。部分供應商要求在規則目標中填寫接收者、Topic、Chat ID 或其他目標欄位;這些欄位只會影響目前規則。

建議的起始規則

  • 登入失敗:依 IP 彙總,在短時間窗內達到多次後再通知;
  • 掃描器、閘道 Rate Limit、WAF 與 SSH 封鎖:依 IP 彙總;
  • 閘道可見性攔截:預設依全域彙總;流量較大時提高臨界值或延長 Cooldown,避免同一策略產生通知風暴;
  • DDNS:依供應商彙總,重點關注失敗結果;
  • FRP 與 Cloudflared:依主體物件區分不同 Tunnel;
  • CPU、記憶體:同時替告警與恢復事件設定規則;
  • 應用程式更新:依主體物件傳送一次提示。
  • 遠端喚醒:依主體物件彙總;失敗結果用於告警,成功結果仍只表示廣播已提交,不代表裝置已上線。

登入成功、SSH 登入成功等高頻事件若臨界值設為 1,可能產生大量通知。請依實際存取量調整時間窗、臨界值與 Cooldown。

應用程式更新事件包含 Release Notes 時,系統會將目前可更新版本的說明摘要同時寫入純文字與 Markdown 內文,因此只顯示內文的推播管道也能收到,而不只存在於結構化詳細資訊中。通知不會連續串接多個歷史版本的說明。需要查看完整或更早的內容時,請前往 版本與更新 頁面或專案 Release History。

查看投遞結果

投遞記錄 會顯示觸發時間、規則、供應商、狀態、訊息摘要與嘗試次數。狀態包括佇列中、傳送中、成功、失敗待重試、失敗放棄與已略過。

詳細資訊中可查看:

  • 規則、供應商與目前狀態;
  • 嘗試次數、觸發時間、傳送時間與下次重試時間;
  • 失敗或略過原因;
  • 傳送時凍結的標題、摘要與內文 Snapshot;
  • 已遮蔽敏感資訊的 Request Summary 與 Response Summary。

排查「規則未觸發」與「供應商未收到」時,請依下列順序:

  1. 先確認事件本身已經產生。
  2. 檢查該事件類型是否有規則,且規則與目標是否仍為啟用狀態。
  3. 檢查時間窗、臨界值、彙總維度與 Cooldown。
  4. 若已有投遞記錄,請查看狀態、失敗原因、嘗試次數與下次重試時間。
  5. 檢查供應商連線能力、憑據、接收目標與對端 Rate Limit。

清除投遞記錄會刪除所有投遞歷史,且無法復原,但不會影響事件或後續規則觸發。需要稽核時,請先複製相關詳細資訊。

通知系統只用來輔助事件應變,不能取代請求記錄、WAF Log 與備份。

QQ 群組:1081609274