SQL審核 Inception 中小團隊快速構建SQL自動審核系統
SQL審核與執行,作為DBA日常工作中相當重要的一環,一直以來我們都是通過人工的方式來處理,效率低且質量沒辦法保證。為了規範操作,提高效率,我們決定引入目前市面上非常流行的SQL自動審核工具Inception。
花了一周看了inception官方文檔並搭建了測試環境簡單測試,又花了3天寫了webui(內部起名叫overmind,以下也簡稱overmind),目前正在進行各種測試以及手冊的編寫,還未正式跟我們的流程結合起來投入使用,後續正式使用後再更新使用經驗。
Inception
- github:https://github.com/mysql-inception/inception
- 官方文檔:http://mysql-inception.github.io/inception-document
Inception是一個開源的Mysql自動化工具,具有SQL審核、執行、回滾等實用的功能,由國內大神基於mysql源碼開發,可以很明確的,詳細的,準確的審核Mysql的SQL語句,工作模式與Mysql完全相同,可以直接使用mysql客戶端來連接。但遺憾的是2年前已停止更新,不過兼容大部分的mysql版本,仍然是開源SQL審核工具的翹楚。
Inception的架構如下:
inception架構圖
Overmind
審核流程
我們的審核流程現在主要分兩部分:
1.Dev和Qa等線下測試環境:為了簡化流程,開發測試環境,可以由開發直接通過overmind系統進行審核或執行
2.Prod生產環境:生產環境以安全為主,在Dev和Qa環境執行成功後詳情頁面會有個“申請上線”按鈕,點擊申請上線自動發送郵件給DBA,待DBA審核通過後方可上線
系統介紹
- 基本配置頁面:可以直接在頁面上配置inception的信息,方便遷移
基本配置頁
- 數據庫信息錄入:相當於一個簡單數據庫的cmdb系統,可以管理數據庫信息
數據庫信息錄入
- 審核任務提交:支持審核和執行兩種模式,審核模式只給審核結果,執行模式在執行之前會先審核
審核任務提交
- 審核結果展示:詳細展示SQL審核的所有信息,包括提交用戶、執行操作、審核結果等等
審核結果展示
- 任務列表頁面:可以很方便只查看自己提交的任務,或者查看固定項目的,固定環境的任務
任務列表頁
關於開源
開源在我看來是一件很隆重的事情,之前剛學python的時候開源了自己寫的一個簡單後臺sadmin(github或gitee可以搜索到),因為一些原因停止更新了。目前沒有時間和精力來做長久的支持和維護,所以暫時不打算把源代碼放到github上。另外同類型的已經有一個非常棒的開源產品Yearning了,可以github搜索安裝學習。
寫在最後
- 先說感謝!感謝大神開發的Inception,絕對是DBA界的福音
- 之所以能就花了3天時間寫了overmind,主要還是借助了之前已寫好的其他項目框架,在此基礎上做修改,還是很快的
- 工具部署與頁面編寫都是比較簡單的,團隊內部都可以搞定,要把工具推出去,融入到現在的流程中是一件比較困難的事情,給團隊內定的規則就是a.完善的文檔,用戶在審核前就知曉哪些sql通不過,在審核失敗時知曉如何修改能成功,b.對用戶的感知應降到最低,不要因為用了overmind而造成額外的麻煩,要讓用戶用的爽
- 希望作者或其他大神能持續更新Inception,繼續造福廣大DBA
SQL審核 Inception 中小團隊快速構建SQL自動審核系統