
概述
背景
資料庫是企業業務的資料核心,對資料庫的操作行為尤其是所有SQL執行的行為進行記錄并審計的日志,就顯得尤為重要。但圍繞資料庫的安全問題卻日益嚴重。今年2月,國内某人臉識别公司資料庫洩露,
造成250萬人個人資訊洩露。去年8月,某酒店集團的
1.3億條使用者以及2.4億條開房記錄洩露。
另一方面,資料庫SQL執行日志也提供了性能、執行結果以及歸類等資訊,對于排查錯誤、線上性能優化支援起着關鍵作用。
阿裡雲關系資料庫RDS的SQL執行日志已經與日志服務打通(目前支援MySQL類型),提供準實時的SQL執行分析功能,并提供内置可深鑽的報表、支援異常報警與生态對接能力等。
完備的SQL執行日志
SQL執行日志包括了對資料庫進行的所有SQL操作,RDS提供的SQL執行日志,通過網絡監聽的方式收集,對實際執行幾乎沒有性能的影響,包括但不限于如下類型的SQL執行以及資訊提取:
- 資料庫的登入、登出
- DDL(Data Definition Language):基于SQL的對資料庫結構定義的SQL,例如CREATE、ALTER DROP、TRUNCATE、COMMENT等
- DML(Data Manipulation Language):SQL操作語句,包括SELECT、INSERT、UPDATE、DELETE等
- 其他SQL執行,包括任何其他通過SQL執行的控制,例如復原、控制等
- 失敗的SQL執行也會被記錄
- 對SQL執行的延遲、執行結果、影響的行數等資訊的提取
關于阿裡雲日志服務
阿裡雲的日志服務(log service)是針對日志類資料的一站式服務,無需開發就能快捷完成海量日志資料的采集、消費、投遞以及查詢分析等功能,提升運維、營運效率。日志服務主要包括 實時采集與消費、資料投遞、查詢與實時分析 等功能,适用于從實時監控到資料倉庫的各種開發、運維、營運與安全場景:
功能優勢
将阿裡雲RDS的實時SQL執行投遞到日志服務中有如下價值與優勢:
- 簡單:輕松配置,即可準實時采集SQL執行日志導入日志服務。
- 可靠:對現有資料庫支援無性能影響,資料準實時接入,分鐘級别延遲。
- 資訊充分:除了執行的SQL之外,也包括資料庫登入、失敗的資料執行、延遲、影響結果等,對資料庫執行狀況、性能、潛在安全問題了如指掌,并可準實時挖掘細節。
- 強大:依托日志服務,提供實時日志分析,并提供開箱機用的報表中心,且支援定制等。
- 靈活:支援基于特定名額,支援定制準實時監測、報警、報表訂閱,確定關鍵業務異常及時響應。可對接其他生态如流計算、雲存儲、可視化方案,進一步挖掘資料價值。或使用日志服務機器學習、自定義報表、資料加工等一站式服務。
- 成本優勢:支援任意時間的存儲,以便合規、溯源、備案等。 每1000萬條SQL執行日志存儲一個月,每天隻需2毛錢左右
适用客戶
- 合規:對SQL執行日志存儲有更長存儲合規需求(例如半年/1年)的大型企業與機構,如金融公司、政府類機構等。
- 進階運維:需要對資料庫狀況做實時監測,并對業務上出現的性能、可靠、穩定性等異常問題能夠進行快速排錯的客戶,需要使用日志服務的實時的互動式的統計、查詢分析和報警功能,如網際網路服務、金融等企業。
- 安全:需要對資料庫安全進行審計,輔助資料安全防護和事後排查的公司,需要使用日志服務的實時查詢分析功能,如金融、證券、電商、遊戲等公司。
- 行為分析:需要對資料庫操作做行為分析,作進一步性能、功能、體驗調優的參考和驗證,除了統計查詢外,也需要對接外部系統做進一步深度分析的公司。
前提與配置
前提與限制
- 開通日志服務。
- 開通RDS服務,購買或已經有一個支援SQL審計/洞察的 MySQL執行個體
- 目前支援自動投遞到日志服務的RDS類型如下:
限制 | 描述 | 備注 |
---|---|---|
類型 | MySQL | 其他類型計劃中 |
地域 | 北京 上海 杭州 深圳 香港 青島 | 其他地域陸續開放中 |
版本 | 5.5、5.6、5.7、8.0 | 8.0 beta中 |
系列 | 高可用版、金融版 | 基礎版本不支援 |
存儲類型 | 本地SSD | SSD雲盤不支援 |
SQL審計/洞察狀态 | 未開啟,或已經開啟标準版本 | 控制台會幫使用者自動開啟,注意:開啟使用版本的SQL審計目前會導緻控制台開通投遞失敗 |
- 目前僅支援投遞同一個地域下的日志服務項目(例如,北京的RDS執行個體,隻能投遞到北京的日志服務日志庫中)
- 請勿修改預設的儀表盤配置,預設儀表盤會随着功能更新自動更新。參考日志服務手冊,從預設儀表盤中複制一個儀表盤并修改。
如何配置
- 登入日志服務控制台,準備或建構一個與源RDS所處同一個地域的日志服務項目,并在其中準備或建構一個日志庫(請選擇好正确的存儲時間,如180天等)
- 在日志庫清單中選擇【資料接入向導】,選擇【RDS】
- 在控制台互動中配置期望的RDS MySQL資料庫接入。
- 注意: 如果您沒看到對應的MySQL執行個體,可能是因為不符合前提條件,請參考上條清單。
- 注意: 開啟投遞時需要開啟标準版本 RDS的審計日志功能 。如果您已經開啟了試用版本的SQL審計,控制台會開啟失敗。
使用者場景
1. 自由互動式分析SQL執行
準實時資料庫通路異常排查與問題分析,讀寫延時,通路用戶端區域分布等
也支援标準SQL92文法,并融合多種擴充分析函數,參考
查詢分析日志詳細日志字段
字段名 | 名稱 | 例子 | |
---|---|---|---|
__topic__ | 主題 | 固定為rds_audit_log | |
instance_id | 執行個體ID | rm-abcdefg | |
check_rows | 掃描的行數 | ||
db | 資料庫名 | my_db | |
fail | 是否出錯 | 0-成功,1-失敗 | |
client_ip | 用戶端IP | 1.2.3.4 | |
latency | 延遲(微秒) | 15 | |
origin_time | 操作時間(微秒) | 1525671499014609 | |
return_rows | 傳回行數 | 123 | |
sql | 執行的SQL語句 | SELECT * from tb_abc | |
thread_id | 線程ID | 17171330 | |
user | 資料庫使用者 | spotuserw | |
update_rows | 更新行數 |
2. 安全分析
重要表格、異常删除、SQL攻擊以及SQL注入等一目了然
也可以在日志查詢分析的結果上,支援自定義SQL執行審計與告警通知,以便第一時間處理,日志服務支援多種告警模式(例如釘釘、短信等),并支援自定義告警内容模闆:
3. 整體通路監控程度
整體通路監控程度,運維可靠性名額一目了然,并可以參考,建構自己的儀表大盤。
4.營運分析
營運分析,活躍資料庫與表格,關鍵資料添加修改删除動向**
進一步參考
後續我們會進一步圍繞RDS執行日志,做更多最佳實踐介紹。可以掃碼加入官方釘釘群 (11775223)獲得實時更新與阿裡雲工程師的及時直接的支援: