python自动化运维平台能用php开发吗_关于数据库自动化运维平台的设计及开发实现思路...
今個講解下,個人對于數(shù)據(jù)庫運維自動化平臺的理解,話說這個項目和我以前做的lvs集群平臺一樣,都是分成兩個主要的角色,一個是對于普通用戶的申請及權限內的執(zhí)行,還有一個是對于dba的審核及相關的日常dba數(shù)據(jù)庫操作。
DBA其實也是很苦逼的,再高端的dba也是由苦逼開始的。如果你是苦逼的dba,那更要往下看了。
因為工位緊張的緣故,我現(xiàn)在和一排的dba做在一起,見到了他們的高端,也見到了他們的苦逼。
工作期間,經(jīng)常會有人煩他們,讓他們進行DDL DML、實例的相關操作.大家也都知道規(guī)范的數(shù)據(jù)庫維護是不允許開發(fā)人員直接到server搞的,尤其是DDL相關的,這個需要發(fā)郵件,讓負責人確定,然后再請dba來操作的。
這個時候就需要,很有必要的有一個系統(tǒng)來解決這些讓人蛋碎的事情。運維自動化平臺就是為了解放蛋碎事件的。
這些東西,咱們完全可以自動化流程起來的。
1. ?權限的申請
2. ?會發(fā)給對應的領導,讓他來確認
3. ?dba會審核這次的申請
這個時候,權限的申請已經(jīng)結束了。用戶這時候,可以去DDL和DML操作。
這時候,你就有這個庫的權限了,可以提交DDL和DML的語句。看下面的流程圖,估計你已經(jīng)看到大概了。
該系統(tǒng)的流程設計,是由前人人網(wǎng)dba大牛(譚志軍)來搞的,至于功能的實現(xiàn)是我搞。這項目做到現(xiàn)在快一個月了。 ?這首席dba確實很強,公司的zabbix每天都有幾G數(shù)據(jù)量增長,你可以想想現(xiàn)在數(shù)據(jù)該有多大! 但在他眼里,那都不是事!隨手就能給出萬臺監(jiān)控壓力下的數(shù)據(jù)庫分解壓力方案,雖然因為zabbix 底層代碼本身就不高明,導致壓力分解的效果不突出。 ?人甚是有意思,只是有些時候,不解女孩子的風情 ~
開發(fā)的日子里,深深的感覺到,任何人都有產品經(jīng)理的潛質,曾經(jīng)和他說,以前有個人總是給我提需求,讓我”滅“了! 沒想到,他也只是淺淺的一笑,然后繼續(xù)提需求,感覺他好高大上。
該平臺現(xiàn)在算是第二版了,更新和修復了不少的功能和bug。 譚志軍是個很好想法的孩子,雖然現(xiàn)在的版本也算是強大,其實本來能做出更強大的東西出來。比如索引相關的。。。 只是..... ? ? ?不多說了 !
我們的dashbord,這里分享的是初期的實例,后期我們還是會做大量的前后端的高進。
下面的截圖和功能介紹只是該平臺中的部分內容,有些話題不太方便聊,見諒。
這是用戶執(zhí)行DML SQL語句的頁面,這里觸發(fā)后端的時候,會把不是DML的語句,都會過濾出來。
下面是DDL的情況:
這個時候,管理員收到了相關的進度郵件,登錄平臺處理未完成的任務,在權限管理平臺,可以給為DBA開啟動態(tài)口令卡,密碼是60秒更新一次的。 當然也可以撤銷這種煩人的認證。
alter是異步的執(zhí)行。
這里主要是查詢數(shù)據(jù),自動會分頁,數(shù)據(jù)的導出txt和json文件。
這個數(shù)據(jù)庫運維系統(tǒng),不僅涵蓋了上面所說的 數(shù)據(jù)庫流程體系最基本的功能,而且還實現(xiàn)了對于dba本身的維護的功能模塊。
首先是慢查詢,我會同步crontab的狀態(tài),會定期抓到慢查詢的結果,扔到我的http存儲接口上。
再說下報警方面,這邊有自己的一套報警方式,以yaml格式做成配置文件,然后python會根據(jù)yaml里面的配置,做他該做的事情。當然這些事情交給zabbix也挺好。
現(xiàn)在公司的zabbix開發(fā)人員正在逐步開發(fā)api接口。 ?沒有開發(fā)之前,還是我們自己控制好點。
下面的就不截圖了,實在是有些麻煩了。。。。 也有些怕首席dba毆打! 這里在簡單介紹下,圍繞dba管理平臺的相關的功能。
對于數(shù)據(jù)庫的備份,采用saltstack的jid來異步的執(zhí)行任務,會記錄備份文件的大小,開始時間,結束時間,及備份的狀態(tài),另外在modules里封裝了一個rsync的模塊進行文件上傳。 平臺每天主動出一個備份情況的報表,除了上面的備份情況,當他監(jiān)控到今天沒有搜到10.10.10.10這mysql的備份,會在報表中標紅。 如何針對備份進行報警,客戶端每次備份的時候,會反查下到現(xiàn)在為止,上次有沒有備份成功,沒有的話,也會觸發(fā)報警。 如果周期是長線的那種,每次客戶端備份,會給master端一個信號,master會間隔性的查詢,如果在一定時間內沒有完成,他也會報警的。
對于上線,獨立出一個功能,該平臺是通用的,每次執(zhí)行完了,都會調用平臺的接口,比如他現(xiàn)安裝mysql的依賴包,接著安裝mysql-server,最后調用接口,讓他創(chuàng)建 xiaorui這個庫,及 pop這個表。 懂了吧。
對于下線服務,這就好辦了,平臺會流程發(fā)給項目的負責人,如果他們確定后,數(shù)據(jù)庫會打包備份好,在平臺中標記下線。
對于眾多的數(shù)據(jù)庫,會做一些日常load和硬件占用的評估報表,比如你的數(shù)據(jù)庫的量壓根就不大,那你就沒有資格占用一臺服務器,這邊會做一個周期性的報表,根據(jù)情況會把他塞到服務器里面的實例 ! 說白了,就是省錢方案。
對于部署方面,平臺有所欠缺,后期會加入環(huán)境的部署及快速的部署mysql從服務器,還能在平臺修改從服務器。
總結,我這邊的數(shù)據(jù)庫管理系統(tǒng),在一些用戶體驗更像是phpmyadmin的感覺,因為語言mysql驅動的問題,導致python實現(xiàn)phpmyadmin的功能,不太如意,尤其是各種的過濾,在php可以直接把用戶的sql提進去,我這邊需要做一些正則的過濾,最少去去掉分號 ! ?dba們,趕緊找個開發(fā)人員,給你們搞搞這個數(shù)據(jù)庫運維平臺,只為不苦逼 !
總結
以上是生活随笔為你收集整理的python自动化运维平台能用php开发吗_关于数据库自动化运维平台的设计及开发实现思路...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python httpstr find_
- 下一篇: tp5 控制器不存在_使用服务器管理器将