基于Inception & Yearning做SQL審核的實踐(安裝篇)

<meta charset="utf-8">

<article class="_2rhmJa">

SQL審核的需求

SQL審核是保證DDL&DML正常使用演怎,不會造成線上事故的重要手段。經(jīng)研究,來自于去哪兒網(wǎng)的Inception有較大的使用基礎(chǔ)荣病,結(jié)合一些上層的人機交互系統(tǒng)可以實現(xiàn)SQL審核栋操、執(zhí)行以及備份和恢復(fù)功能闸餐。

Inception

Inception是一個自動化運維工具,在Mysql前做一個審核和操作的屏障讼庇。跟Inception的交互是程序級別的绎巨,即通過Python或其他程序編程實現(xiàn)對Inception的命令調(diào)用,并解析結(jié)果蠕啄。

Inception的文檔地址:http://mysql-inception.github.io/inception-document/

Yearning

由于Inception是一個基礎(chǔ)工具场勤,如果要做SQL審核,系統(tǒng)級的業(yè)務(wù)操作(提DDL&DML歼跟,審核和媳,執(zhí)行等)還需要一個人機交互的界面,Yearning就是這么一個Python實現(xiàn)的web系統(tǒng)哈街。

Yearning的文檔地址:https://cookiey.github.io/Yearning-document/

文檔計劃

本篇先把安裝問題講清楚留瞳,其實參考作者文檔已經(jīng)很清晰,此處僅把我在安裝過程中的問題記錄下來骚秦,供大家參考她倘。

后續(xù)分Inception和Yearning做業(yè)務(wù)上的專題研究璧微。

Inception安裝

參考資料:http://mysql-inception.github.io/inception-document/install/

  1. Inception的編譯,使用源碼編譯時硬梁,首先需要對bison包進行降級(yum收錄的是3.0.4前硫,源碼編譯2.5)

bison 2.5的源碼編譯
代碼獲取:http://ftp.gnu.org/gnu/bison/bison-2.5.tar.bz2
解壓縮:tar xf bison-2.5.tar.bz2
進入目錄:cd bison-2.5
檢查并編譯源碼:./configure && make && make install
其中編譯問題用以下方式解決
解決編譯問題:https://www.cnblogs.com/hjj801006/p/3988220.html

  1. 拷貝啟動文件:
cd /root/inception/debug/sql
cp Inception gen_lex_hash /usr/local/bin/

  1. 制作配置文件
    cat /etc/inception/inc.cnf
[inception]
general_log=1
general_log_file=/var/log/inception.log
port=6669
socket=/var/run/inc.socket
character-set-client-handshake=0
character-set-server=utf8
inception_remote_system_password=123
inception_remote_system_user=root
inception_remote_backup_port=3306
inception_remote_backup_host=127.0.0.1
inception_support_charset=utf8mb4
inception_enable_nullable=0
inception_check_primary_key=1
inception_check_column_comment=1
inception_check_table_comment=1
inception_osc_min_table_size=1
inception_osc_bin_dir=/var/temp
inception_osc_chunk_time=0.1
inception_enable_blob_type=1
inception_check_column_default_value=1

inc.socket不用找荧止,會在啟動時自動生成屹电。

  1. 啟動Inception的命令如下
Inception --defaults-file=/etc/inception/inc.cnf

啟動后使用mysql的客戶端進行連接(mycli會有錯誤,貌似是python的兼容問題)

mysql -uroot -h127.0.0.1 -P6669

但是只能本機訪問跃巡,遠程訪問不了危号,原因還未知。(更新:在安裝Yearning時發(fā)現(xiàn)了阿里云的安全組問題素邪,可能同樣是這個原因?qū)е峦饬#?/p>

Yearning安裝

參考資料:https://cookiey.github.io/Yearning-document/install/

  1. 安裝pip3
    1.1 安裝python3的依賴包:
    sudo yum install openssl-devel
    1.2 獲取python3的壓縮包:
    wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
    1.3 安裝python3(需要root權(quán)限)
tar zxvf Python-3.6.4.tgz
cd Python-3.6.4
./configure
make && make install 

  1. 安裝Yearning
    2.1 用pip3安裝依賴包(txt文件在src目錄中)
    pip3 install -r requirements.txt
    2.2 創(chuàng)建數(shù)據(jù)庫實例yearning
    2.3 將該數(shù)據(jù)庫實例的連接信息寫入develop.conf。升級請注意:1.0.0發(fā)布后娘香,該文件增加了兩個屬性:ldap_type=1和smtp_port=苍狰,如果是cp原有的配置文件覆蓋新下載的,要加上這兩個配置
    2.4 初始化數(shù)據(jù)庫
    python3 manage.py makemigrations && python3 manage.py migrate
    2.5 添加初始化用戶
echo "from core.models import Account;Account.objects.create_user(username='admin', password='Yearning_admin', group='admin',is_staff=1)" | python3 manage.py shell
#升級請注意烘绽,從1.0.0開始淋昭,要補充下面這句權(quán)限的配置
echo "from core.models import grained;grained.objects.get_or_create(username='admin', permissions={'ddl': '1', 'ddlcon': [], 'dml': '1', 'dmlcon': [], 'dic': '1', 'diccon': [], 'dicedit': '0', 'query': '1', 'querycon': [], 'user': '1', 'base': '1', 'dicexport': '0'})" | python3 manage.py shell 初始化權(quán)限

2.6 復(fù)制網(wǎng)頁的靜態(tài)文件
cp -rf Yearning/webpage/dist/* $NGINX_HOME/html/
2.7 修改并啟動nginx

image

2.8 啟動django(注意在src目錄)
python3 manage.py runserver 0.0.0.0:8000
2.9 修改阿里云的安全組策略(解決不能用公網(wǎng)IP訪問的問題,請一定注意增加80和8000兩個端口安接,否則還是登錄不了)翔忽,參考以下文章
http://blog.csdn.net/LJFPHP/article/details/78670459

至此用公網(wǎng)ip訪問可出現(xiàn)如下界面,說明安裝成功

image

初始用戶見#2.5盏檐,登錄后如下圖所示(如果登錄不了歇式,注意看#2.9是否增加了8000的安全組策略)

image

1.0.0升級后,之前的用戶要重新配置權(quán)限胡野,但有些權(quán)限可能存在一些bug材失,例如數(shù)據(jù)字典修改時的403問題

至此安裝全部完成!

現(xiàn)在的問題:

  1. 界面運行比較慢硫豆,估計是Python的原因龙巨,暫時不予解決;
  2. 正常的sql熊响,檢測不通過旨别,懷疑是Inception的配置問題。經(jīng)查汗茄,是測試數(shù)據(jù)庫的問題秸弛。一個簡單的現(xiàn)象就是用mysql客戶端(mycli同樣)不能加密碼輸入(-p參數(shù)不存在),其他數(shù)據(jù)庫沒有這個問題,即如果客戶端能直連递览,Inception的各項功能也就沒有問題叼屠。懷疑可能是root用戶的原因,或者是阿里云的原因非迹。由于不影響評估环鲤,也暫時不理會了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末憎兽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吵冒,更是在濱河造成了極大的恐慌纯命,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹栖,死亡現(xiàn)場離奇詭異亿汞,居然都是意外死亡,警方通過查閱死者的電腦和手機揪阿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門疗我,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人南捂,你說我怎么就攤上這事吴裤。” “怎么了溺健?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵麦牺,是天一觀的道長。 經(jīng)常有香客問我鞭缭,道長剖膳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任岭辣,我火速辦了婚禮吱晒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沦童。我一直安慰自己仑濒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布搞动。 她就那樣靜靜地躺著躏精,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鹦肿。 梳的紋絲不亂的頭發(fā)上矗烛,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音,去河邊找鬼瞭吃。 笑死碌嘀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的歪架。 我是一名探鬼主播股冗,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼和蚪!你這毒婦竟也來了止状?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤攒霹,失蹤者是張志新(化名)和其女友劉穎怯疤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體催束,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡集峦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抠刺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡速妖,死狀恐怖孙技,靈堂內(nèi)的尸體忽然破棺而出而芥,到底是詐尸還是另有隱情咽袜,我是刑警寧澤咐熙,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站杀赢,受9級特大地震影響烘跺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脂崔,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一滤淳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砌左,春花似錦脖咐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至产弹,卻和暖如春派歌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工胶果, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匾嘱,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓早抠,卻偏偏與公主長得像霎烙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蕊连,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容