數(shù)據(jù)庫審計(jì)日志的管理向來是個(gè)麻煩事。寫得太頻繁怕影響性能,集中存儲(chǔ)又擔(dān)心查詢不便。GBase 8a在這件事上做了個(gè)務(wù)實(shí)的取舍——用兩張表、一個(gè)定時(shí)任務(wù),把"本地快速寫入"和"全局統(tǒng)一查詢"串了起來。
這套設(shè)計(jì)的核心是兩兄弟:audit_log和audit_log_express。前者是前線哨所,每個(gè)節(jié)點(diǎn)各自一份,新日志先到這兒落腳;后者是中央倉庫,把分散在各節(jié)點(diǎn)的記錄匯總成一張集群級(jí)大表。一個(gè)跑在后臺(tái)的import_audit_log事件,每天把前者的增量數(shù)據(jù)搬運(yùn)到后者,順便按31天的周期自動(dòng)清理過期記錄。
![]()
這個(gè)搬運(yùn)工是系統(tǒng)自動(dòng)配置的。集群安裝或升級(jí)時(shí),audit_log_express表和import_audit_log事件就一起創(chuàng)建好了,不需要DBA手動(dòng)搭流水線。每天一次的調(diào)度頻率是個(gè)平衡選擇——既不會(huì)讓本地日志積壓太多,也不會(huì)給集群帶來持續(xù)的I/O壓力。
![]()
多虛擬集群(Multi-VC)環(huán)境要留個(gè)心眼。import_audit_log事件必須綁定到正確的VC才能工作,否則該VC的審計(jì)數(shù)據(jù)就是孤島狀態(tài)。部署后第一件事:用SHOW VCS拿到VC ID,然后在gbase庫執(zhí)行UPDATE gbase.event SET vc_id = 'vc00001' WHERE name = 'import_audit_log'。這步很容易漏,漏了就是審計(jì)盲區(qū)。
日常操作建議也很清晰。查歷史審計(jì)優(yōu)先走audit_log_express,這是完整的集群視圖,不用跨節(jié)點(diǎn)折騰。本地audit_log想清理的話,用TRUNCATE SELF audit_log即可,只清本節(jié)點(diǎn)、不影響全局?jǐn)?shù)據(jù)。多VC場(chǎng)景下,定期核對(duì)事件的vc_id綁定狀態(tài)是個(gè)好習(xí)慣。
![]()
整個(gè)流程沒用什么復(fù)雜技術(shù),就是"本地寫、定時(shí)搬、集中查、自動(dòng)刪"四步。對(duì)于需要合規(guī)審計(jì)又不想太重運(yùn)維負(fù)擔(dān)的場(chǎng)景,這種輕量 pipeline 夠用了。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.