CMDB系統原創開發


什么是CMDB系統?

CMDB這個詞已經很熱門了,我下面用簡短的話概括和理解CMDB的意思。

CMDB:同義為配置管理數據系統。簡單來說,就是為互聯網企業或者公司,統一管理IT數據,服務器數據資產等信息。

 

我們團隊在做CMDB的時候,更多時候花的時間,是想和考慮需求和為什么這么做,這么做,對我們今后的運維效率和自動化的好處在哪里?


我總結了以下3點,我們開發的目的/需求。
CMDB開發目的:
1)目前我們部門的服務器規模有幾千+,服務器數據很龐大。想全部統一整合在我們的CMDB平台管理和收集。
2)我們內部團隊想做運維自動化,數據底層需要打通,才能方便我們以后擴展和開發其他運維平台,比如:發布系統,監控系統,點播,直播等。
3)我們內部開發的CMDB可以根據內部運維,比如:應用運維,基礎運維,CDN運維的需求,定制一些我們自己的功能,方便他們使用。


我們的開發模型是團隊模式,團隊模式協同,效率會更快些,單獨的人負責單獨的模塊功能。

CMDB開發特點和大致分工:
perl語言+python語言。其中perl web框架是moji, python web框架是django。
其中perl這邊負責的數據底層和數據庫層面的操作和控制,而python是負責應用層面的控制。團隊配合開發,完成周期時間快。
配合方式:使用json格式互傳數據和接收數據。


CMDB開發周期:
目前這是我們開發的第一版的CMDB,開發周期:2個半月時間。

 


CMDB產品功能信息設計大致概括:
IP:所有IP(外網,內網,VIP,其他綁定IP等)、MAC,管理卡等。
配置:CPU,服務器型號,硬盤大小(塊數),操作系統
應用分類信息:多級分類組合、應用組合,產品數。
資產號、序列號、型號、負責人。
機房地區,IDC、機櫃、網絡
其他分類:虛/實、線上/線下/庫備/報廢、自有/外部,在線/維護狀態等。

 


開發CMDB,所涉及的技術點,如下:
(1)開發的語言:python+perl團隊開發
(2)框架:python:Django框架 perl:Mojo框架
(3)前端bootstrap,html,js,css,jquery。
(4)db databases:mysql
(5)自動化軟件:saltstack(主要自動負責新服務器的數據信息采集,第一版只是單台主機采集,第二版會考慮多台或者組的采集)


我們開發的CMDB總共有7大功能:數據添加,數據查詢/搜索,歷史數據查詢,樹狀查詢,自動收集CMDB信息,權限控制,數據導出,生成CSV格式。
#功能說明:
(1)數據添加功能:如果有新服務器,運維人員如果想手工錄入,可以使用這塊手動錄入/添加CMDB數據。

(2)數據查詢/搜索功能:數據查詢/搜索功能這塊是模糊匹配+精確匹配,對4個方面進行了控制,外網IP地址,機器盤點號,機櫃信息,管理員,搜索的人員通過這4個選項都可以搜索對應和想查找的信息,只有對應的管理員才能管理對應的服務器列表和數量,否則只能搜索出來,查找詳情,不能編輯和刪除服務器數據相關類容。
#備注:默認這4個選項不能為空就搜索/查找,否則前端會提示輸入其中一個方可搜索。

(3)歷史數據查詢功能:這塊是全部數據的歷史查看。


(4)樹狀查詢功能:這塊使用ztree前端插件,官方Demo地址(http://www.ztree.me/v3/demo.php),默認是全部數據展示,如果想輸入每個對應的管理員搜索/查找,Ztree樹形就會顯示當前管理員所有的服務器,所有服務器是按照地區/機房顯示,中文全部轉換為拼音格式。


(5)自動收集CMDB信息:這個功能底層采用saltstack master/minion,收集出來的數據,通過json格式入庫。

 

(6)權限控制功能:權限主要應用在2個方面:URL和搜索管理員權限。

 

 

(7)數據導出,生成CSV格式功能:通過每次搜索出來的結果和數據,運維人員可以通過下載CSV按鈕,下載當前搜索的數據結果到本地電腦當中,下載完成之后,可以使用excel打開。

 


#最后是devops的一些感想(本人的一些感想,不對之處,請指正哈):
1)在開發項目自動化或者CMDB的時候,先設計產品功能和理解開發目的,需求才是最關鍵,其次才是進行細節開發。
2)運維自動化是個很熱門的話題,在做運維自動化的時候,一切都是以規范,流程,數據整合為目的的原則進行開發,切記不要盲目去追求運維自動化。
3)運維自動化核心目的:運維架構運維應用,數據整合的優化,要站在公司的業務層面和運維架構去考慮實際做出來的產品使用率和可用性為原則。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM