真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Yearning和inception搭建MySQL審核平臺(tái)

前言

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),潼南企業(yè)網(wǎng)站建設(shè),潼南品牌網(wǎng)站建設(shè),網(wǎng)站定制,潼南網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,潼南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

    采用開(kāi)源Yearning和inception開(kāi)源軟件,搭建用于MySQL審核及線上MYSQL語(yǔ)句更新的審核平臺(tái)。

功能說(shuō)明

Yearning: 基于Vue.js與Django的整套mysql-sql審核平臺(tái)解決方案。提供基于Inception的SQL檢測(cè)及執(zhí)行,為Inception提供可視化。

Inception:是集審核、執(zhí)行、回滾于一體的一個(gè)自動(dòng)化運(yùn)維系統(tǒng),它是根據(jù)MySQL代碼修改過(guò)來(lái)的,用它可以很明確的,詳細(xì)的,準(zhǔn)確的審核MySQL的SQL語(yǔ)句,它的工作模式和MySQL完全相同,可以直接使用MySQL客戶端來(lái)連接,但不需要驗(yàn)證權(quán)限,它相對(duì)應(yīng)用程序(上層審核流程系統(tǒng)等)而言,是一個(gè)服務(wù)器,在連接時(shí)需要指定服務(wù)器地址及Inception服務(wù)器的端口即可,而它相對(duì)要審核或執(zhí)行的語(yǔ)句所對(duì)應(yīng)的線上MySQL服務(wù)器來(lái)說(shuō),是一個(gè)客戶端,它在內(nèi)部需要實(shí)時(shí)的連接數(shù)據(jù)庫(kù)服務(wù)器來(lái)獲取所需要的信息,或者直接在在線上執(zhí)行相應(yīng)的語(yǔ)句及獲取binlog等,Inception就是一個(gè)中間性質(zhì)的服務(wù)。

Yearning和inception搭建MySQL審核平臺(tái)

 

操作系統(tǒng)及IP信息

編號(hào)

服務(wù)器名稱

IP

操作系統(tǒng)

1

Centos_6

10.21.88.51 

CentOS release 6.8 (Final) 

 

各軟件版本及安裝路徑

編號(hào)

軟件

版本信息

安裝路徑

代碼目錄

1

python

3.6.6

/usr/local/python


2

Yearning

無(wú)(最新)

/opt/Yearning


3

Inception

2.1.50

/usr/local/inception


4

nginx

1.10.2

Yum安裝

/usr/share/nginx/html

5

mysql

5.7.21

/usr/local/mysql


安裝過(guò)程

依賴包安裝

yum -y install cmake bison  ncurses-devel gcc gcc-c++  openssl-devel

 

inception安裝

Yearning和inception搭建MySQL審核平臺(tái)

cd /opt

wget https://github.com/mysql-inception/inception/archive/master.zipmkdir -p /usr/local/inception

mkdir -p /inception/{data,logs}

unzip master.zip -d /inception

cd /inception/inception-master

cmake -DWITH_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/inception  -DMYSQL_DATADIR=/inception/data -DWITH_SSL=yes -DCMAKE_BUILD_TYPE=RELEASE -DWITH_ZLIB=bundled -DMY_MAINTAINER_CXX_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing  -Wno-unused-parameter -Woverloaded-virtual" -DMY_MAINTAINER_C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wdeclaration-after-statement"make && make install

Yearning和inception搭建MySQL審核平臺(tái)

 配置

Yearning和inception搭建MySQL審核平臺(tái)

--編輯參數(shù)文件

vim /etc/inc.cnf

[inception]

general_log=1 #這個(gè)參數(shù)就是原生的MySQL的參數(shù),用來(lái)記錄在Inception服務(wù)上執(zhí)行過(guò)哪些語(yǔ)句,用來(lái)定位一些問(wèn)題等

general_log_file=/usr/local/inception/data/inception.log #設(shè)置general log寫(xiě)入的文件路徑

port=6669   #Inception的服務(wù)端口

socket=/usr/local/inception/data/inc.socket #Inception的套接字文件存放位置

character-set-server=utf8 #mysql原生參數(shù)

#Inception 審核規(guī)則

inception_check_autoincrement_datatype=1 #當(dāng)建表時(shí)自增列的類型不為int或者bigint時(shí)報(bào)錯(cuò)

inception_check_autoincrement_init_value=1 #當(dāng)建表時(shí)自增列的值指定的不為1,則報(bào)錯(cuò)

inception_check_autoincrement_name=1 #建表時(shí),如果指定的自增列的名字不為ID,則報(bào)錯(cuò),說(shuō)明是有意義的,給提示

inception_check_column_comment=1 #建表時(shí),列沒(méi)有注釋時(shí)報(bào)錯(cuò)

inception_check_column_default_value=0 #檢查在建表、修改列、新增列時(shí),新的列屬性是不是要有默認(rèn)值

inception_check_dml_limit=1 #在DML語(yǔ)句中使用了LIMIT時(shí),是不是要報(bào)錯(cuò)

inception_check_dml_orderby=1 #在DML語(yǔ)句中使用了Order By時(shí),是不是要報(bào)錯(cuò)

inception_check_dml_where=1 #在DML語(yǔ)句中沒(méi)有WHERE條件時(shí),是不是要報(bào)錯(cuò)

inception_check_identifier=1 #打開(kāi)與關(guān)閉Inception對(duì)SQL語(yǔ)句中各種名字的檢查,如果設(shè)置為ON,則如果發(fā)現(xiàn)名字中存在除數(shù)字、字母、下劃線之外的字符時(shí),會(huì)報(bào)Identifier "invalidname" is invalid, valid options: [a-z,A-Z,0-9,_].

inception_check_index_prefix=1 #是不是要檢查索引名字前綴為"idx_",檢查唯一索引前綴是不是"uniq_"inception_check_insert_field=1  #是不是要檢查插入語(yǔ)句中的列鏈表的存在性

inception_check_primary_key=1 #建表時(shí),如果沒(méi)有主鍵,則報(bào)錯(cuò)

inception_check_table_comment=0 #建表時(shí),表沒(méi)有注釋時(shí)報(bào)錯(cuò)

inception_check_timestamp_default=0 #建表時(shí),如果沒(méi)有為timestamp類型指定默認(rèn)值,則報(bào)錯(cuò)

inception_enable_autoincrement_unsigned=1 #自增列是不是要為無(wú)符號(hào)型

inception_enable_blob_type=0 #檢查是不是支持BLOB字段,包括建表、修改列、新增列操作 默認(rèn)開(kāi)啟

inception_enable_column_charset=0 #允許列自己設(shè)置字符集

inception_enable_enum_set_bit=0 #是不是支持enum,set,bit數(shù)據(jù)類型

inception_enable_foreign_key=0 #是不是支持外鍵

inception_enable_identifer_keyword=0 #檢查在SQL語(yǔ)句中,是不是有標(biāo)識(shí)符被寫(xiě)成MySQL的關(guān)鍵字,默認(rèn)值為報(bào)警。

inception_enable_not_innodb=0 #建表指定的存儲(chǔ)引擎不為Innodb,不報(bào)錯(cuò)

inception_enable_nullable=0 #創(chuàng)建或者新增列時(shí)如果列為NULL,不報(bào)錯(cuò)

inception_enable_orderby_rand=0 #order by rand時(shí)是不是報(bào)錯(cuò)

inception_enable_partition_table=0 #是不是支持分區(qū)表

inception_enable_select_star=0 #Select*時(shí)是不是要報(bào)錯(cuò)

inception_enable_sql_statistic=1 #設(shè)置是不是支持統(tǒng)計(jì)Inception執(zhí)行過(guò)的語(yǔ)句中,各種語(yǔ)句分別占多大比例,如果打開(kāi)這個(gè)參數(shù),則每次執(zhí)行的情況都會(huì)在備份數(shù)據(jù)庫(kù)實(shí)例中的inception庫(kù)的statistic表中以一錄存儲(chǔ)這次操作的統(tǒng)計(jì)情況,每次操作對(duì)應(yīng)一條記錄,這條記錄中含有的信息是各種類型的語(yǔ)句執(zhí)行次數(shù)情況。

inception_max_char_length=16 #當(dāng)char類型的長(zhǎng)度大于這個(gè)值時(shí),就提示將其轉(zhuǎn)換為VARCHAR

inception_max_key_parts=5 #一個(gè)索引中,列的最大個(gè)數(shù),超過(guò)這個(gè)數(shù)目則報(bào)錯(cuò)

inception_max_keys=16 #一個(gè)表中,最大的索引數(shù)目,超過(guò)這個(gè)數(shù)則報(bào)錯(cuò)

inception_max_update_rows=10000 #在一個(gè)修改語(yǔ)句中,預(yù)計(jì)影響的最大行數(shù),超過(guò)這個(gè)數(shù)就報(bào)錯(cuò)

inception_merge_alter_table=1 #在多個(gè)改同一個(gè)表的語(yǔ)句出現(xiàn)是,報(bào)錯(cuò),提示合成一個(gè)

#inception 支持 OSC 參數(shù)

inception_osc_bin_dir=/user/bin #用于指定pt-online-schema-change腳本的位置,不可修改,在配置文件中設(shè)置

inception_osc_check_interval=5 #對(duì)應(yīng)OSC參數(shù)--check-interval,意義是Sleep time between checks for --max-lag.

inception_osc_chunk_size=1000 #對(duì)應(yīng)OSC參數(shù)--chunk-size

inception_osc_chunk_size_limit=4 #對(duì)應(yīng)OSC參數(shù)--chunk-size-limit

inception_osc_chunk_time=0.1 #對(duì)應(yīng)OSC參數(shù)--chunk-time

inception_osc_critical_thread_connected=1000 #對(duì)應(yīng)參數(shù)--critical-load中的thread_connected部分

inception_osc_critical_thread_running=80 #對(duì)應(yīng)參數(shù)--critical-load中的thread_running部分

inception_osc_drop_new_table=1 #對(duì)應(yīng)參數(shù)--[no]drop-new-table

inception_osc_drop_old_table=1 #對(duì)應(yīng)參數(shù)--[no]drop-old-table

inception_osc_max_lag=3 #對(duì)應(yīng)參數(shù)--max-lag

inception_osc_max_thread_connected=1000 #對(duì)應(yīng)參數(shù)--max-load中的thread_connected部分

inception_osc_max_thread_running=80 #對(duì)應(yīng)參數(shù)--max-load中的thread_running部分

inception_osc_min_table_size=0 # 這個(gè)參數(shù)實(shí)際上是一個(gè)OSC的開(kāi)關(guān),如果設(shè)置為0,則全部ALTER語(yǔ)句都走OSC,如果設(shè)置為非0,則當(dāng)這個(gè)表占用空間大小大于這個(gè)值時(shí)才使用OSC方式。單位為M,這個(gè)表大小的計(jì)算方式是通過(guò)語(yǔ)句:"select (DATA_LENGTH + INDEX_LENGTH)/1024/1024 from information_schema.tables where table_schema = 'dbname' and table_name = 'tablename'"來(lái)實(shí)現(xiàn)的

inception_osc_on=0 #一個(gè)全局的OSC開(kāi)關(guān),默認(rèn)是打開(kāi)的,如果想要關(guān)閉則設(shè)置為OFF,這樣就會(huì)直接修改

inception_osc_print_none=1 #用來(lái)設(shè)置在Inception返回結(jié)果集中,對(duì)于原來(lái)OSC在執(zhí)行過(guò)程的標(biāo)準(zhǔn)輸出信息是不是要打印到結(jié)果集對(duì)應(yīng)的錯(cuò)誤信息列中,如果設(shè)置為1,就不打印,如果設(shè)置為0,就打印。而如果出現(xiàn)錯(cuò)誤了,則都會(huì)打印

inception_osc_print_sql=1 #對(duì)應(yīng)參數(shù)--print

#備份服務(wù)器信息,注意改成你的機(jī)器.用于回滾。

inception_remote_system_password=P@ssw0rd

inception_remote_system_user=incep_rw

inception_remote_backup_port=3306inception_remote_backup_host=10.10.3.70inception_support_charset=utf8 #表示在建表或者建庫(kù)時(shí)支持的字符集,如果需要多個(gè),則用逗號(hào)分隔,影響的范圍是建表、設(shè)置會(huì)話字符集、修改表字符集屬性等

Yearning和inception搭建MySQL審核平臺(tái)

 

啟動(dòng)及檢測(cè)

Yearning和inception搭建MySQL審核平臺(tái)

nohup /usr/local/inception/bin/Inception --defaults-file=/etc/inc.cnf  & netstat -tulpn | grep 6669       //inception的默認(rèn)端口是6669/usr/local/inception/bin/mysql -uroot -h227.0.0.1 -P6669  //聯(lián)接inception,和mysql一樣的方式inception get variables;    //查看inception的所有參數(shù)

Yearning和inception搭建MySQL審核平臺(tái)

 

安裝PYTHON

Yearning和inception搭建MySQL審核平臺(tái)

cd /usr/local/src

tar -xvf Python-3.6.6.tgz

mkdir -p /usr/local/python/3.6.6/lib

./configure --enable-shared --prefix=/usr/local/python/3.6.6 LDFLAGS="-Wl,-rpath /usr/local/python/3.6.6/lib"make && make install

 

軟連接

cp /usr/bin/python /usr/bin/python2.6.6ln -fs /usr/local/python/3.6.6/bin/python3.6 /usr/bin/python

ln -fs /usr/local/python/3.6.6/bin/pip3 /usr/bin/pip

python -v

Yum修改

vi /usr/bin/yum

將頭部 #!/usr/bin/python 修改為 #!/usr/bin/python2.6.6

Yearning和inception搭建MySQL審核平臺(tái)

 

Yearning安裝

cd /opt

git clone https://github.com/cookieY/Yearning.git

 

 編輯 Yearning/src/deploy.conf

Yearning和inception搭建MySQL審核平臺(tái)

[mysql]

db = 所創(chuàng)建的庫(kù)名

address = 數(shù)據(jù)庫(kù)地址

port = 數(shù)據(jù)庫(kù)端口

password = 數(shù)據(jù)庫(kù)密碼

username = 數(shù)據(jù)庫(kù)用戶

 

[host]

ipaddress = 服務(wù)器ip地址   (消息推送時(shí)顯示平臺(tái)地址)

Yearning和inception搭建MySQL審核平臺(tái)

 

由于Inception 并不原生支持pymysql,所以需更改pymysql相關(guān)源碼 注: 在install 文件夾下已經(jīng)修改的connections.py 和 cursors.py 直接替換即可

pip3 install -r requirements.txt  #安裝相應(yīng)python依賴庫(kù)

python3 manage.py makemigrations core && python3 manage.py migrate core #初始化數(shù)據(jù)庫(kù)

echo "from core.models import Account;Account.objects.create_user(username='admin', password='Yearning_admin', group='admin',is_staff=1)" | python manage.py shell #添加初始化用戶

echo "from core.models import grained;grained.objects.get_or_create(username='admin', permissions={'person': [], 'ddl': '1', 'ddlcon': [], 'dml': '1', 'dmlcon': [], 'dic': '1', 'diccon': [], 'dicedit': '0', 'user': '1', 'base': '1', 'dicexport': '0', 'query': '1', 'querycon': []})" | python manage.py shell #初始化權(quán)限

echo "from core.models import globalpermissions; globalpermissions.objects.get_or_create(authorization='global', inception={'host': '', 'port': '', 'user': '', 'password': '', 'back_host': '', 'back_port': '', 'back_user': '', 'back_password': ''}, ldap={'type': '', 'host': '', 'sc': '', 'domain': '', 'user': '', 'password': ''}, message={'webhook': '', 'smtp_host': '', 'smtp_port': '', 'user': '', 'password': '', 'to_user': '', 'mail': False, 'ding': False}, other={'limit': '', 'con_room': ['AWS', 'Aliyun', 'Own', 'Other'], 'foce': '', 'multi': False, 'query': False, 'sensitive_list': [], 'sensitive': ''})" | python manage.py shell #初始化動(dòng)態(tài)配置信息

cp -rf Yearning/webpage/dist/* $NGINX_HOME/html/   #復(fù)制編譯好的靜態(tài)文件到nginx html目錄下(如自行更改Nginx靜態(tài)路徑地址則將靜態(tài)文件復(fù)制到對(duì)應(yīng)靜態(tài)文件目錄下)

systemctl start nginx  #啟動(dòng)nginx

$PYTHON_HOME/bin/gunicorn  settingConf.wsgi:application -c gunicorn.conf #啟動(dòng)django

默認(rèn)賬號(hào): admin  密碼:Yearning_admin

 

使用說(shuō)明

需要先行創(chuàng)建用戶(Yearning的權(quán)限分為管理員及使用人兩個(gè)選項(xiàng),缺省只有admin管理員賬號(hào),用于審核,請(qǐng)創(chuàng)建:使用人賬號(hào)用于提交的MYSQL審核),輸入用戶名密碼登錄:

Yearning和inception搭建MySQL審核平臺(tái)


用戶
登錄后點(diǎn)擊“管理”,如下圖紅色圓圈部分

Yearning和inception搭建MySQL審核平臺(tái)

 

點(diǎn)擊“用戶”進(jìn)行用戶 添加。(例:如下添加了一個(gè)appuser使用人用戶)

Yearning和inception搭建MySQL審核平臺(tái)


數(shù)據(jù)庫(kù)設(shè)置
(配置用于連接審核的數(shù)據(jù)庫(kù)信息,如下設(shè)置了一個(gè)測(cè)試連接)

Yearning和inception搭建MySQL審核平臺(tái)


設(shè)置
(inception相關(guān)設(shè)置,其它設(shè)置略)

Yearning和inception搭建MySQL審核平臺(tái)

如上相關(guān)“管理”下的“用戶”“數(shù)據(jù)庫(kù)”“設(shè)置”后,就可以進(jìn)行數(shù)據(jù)審核操作了。

工單的提交和審核

工單提交

采用使用者登錄后創(chuàng)建工單,如下圖:(信息填寫(xiě)好后,先檢測(cè)無(wú)誤后提交)

Yearning和inception搭建MySQL審核平臺(tái)

 

審核(采用管理員賬戶登錄,進(jìn)入如下界面審核)

Yearning和inception搭建MySQL審核平臺(tái)

 

點(diǎn)擊待審核對(duì)應(yīng)工單的“操作”進(jìn)入如下界面:

Yearning和inception搭建MySQL審核平臺(tái)

執(zhí)行操作既完成審核操作。


回滾操作:(管理員執(zhí)行,且必須進(jìn)行inception備份服務(wù)器的相關(guān)設(shè)置)
Yearning和inception搭建MySQL審核平臺(tái)

工單審批后,在如下圖位置有“查看回滾語(yǔ)句”,進(jìn)入如下界面后點(diǎn)擊提交工單,再次審批既完成回滾操作。

    以上為Yearning和inception搭建的MySQL審核平臺(tái),及簡(jiǎn)單使用介紹,關(guān)于Yearning的詳細(xì)使用可以參考其官方文檔。


當(dāng)前名稱:Yearning和inception搭建MySQL審核平臺(tái)
分享網(wǎng)址:http://weahome.cn/article/gggjhs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部