1.CMDB的架構是啥?css
agent方案html
將採集的腳本放置在每一臺待採集的服務器上,這個腳本本質上就是使用subprocess 模塊來執行linux的命令,最終獲取命令執行的結果,進行第一次分析。而後將分析獲得的結果發送給API端。API獲取以後,進行數據分析和比對,而後將數據入庫,最後django起一個webserver將數據從數據庫中獲取出來,進行展現管理。前端
ssh類方案vue
在中控機上安裝paramiko模塊,就能夠登陸到帶採集的服務器上進行採集。python
2.總共分紅幾部分?你linux
git
github
敏捷開發:就是快速的開發一個功能,快速的上線,搶佔市場。接下來就開始對項目進行迭代。 web
3.你負責的這一部分寫的時候,怎麼作的?遇到了啥問題?怎麼解決的?數據庫
參考django的中間件,實現了插件的可插拔式的採集 django的中間件 (django的聲明週期)
遇到的問題:linux的命令不熟 解決:查資料、請教運維 traceback模塊
具體的安裝步驟
1.xadmin在python2.x時代的安裝方法
在python2.x時代,安裝xadmin是經過以下命令
pip install xadmin
須要安裝以下的包
pip3 install django-import-export pip3 install django-reversion pip3 install django-formtools==2.1 pip3 install future pip3 install httplib2 pip3 install six pip3 install django-crispy-forms
https://github.com/sshwsfc/xadmin
import os import sys # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps')) # 把extra_apps文件夾添加到搜索目錄中
## 顯示中文 # Application definition # LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-hans' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai' INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'xadmin', 'crispy_forms', # 注意crispy_forms之間是下劃線隔開,不是橫線 ]
import xadmin from django.conf.urls import url from django.contrib import admin urlpatterns = [ # url('admin/', admin.site.urls), url(r'^xadmin/', xadmin.site.urls), ]
2.七、遷移文件
python3 manage.py makemigrations
python3 manage.py migrate
遷移完成後,咱們看到數據庫多了幾張表
python3 manage.py makemigrations
python3 manage.py migrate
若是報錯,請先把原先舊的app
裏面admin.py
裏面的註冊代碼去掉,再試試
運行一下項目,訪問
http://127.0.0.1:8000/xadmin/
import xadmin from repository import models from xadmin import views class UserProfileAdmin(object): # 設定顯示錶的樣式,有搜索功能 ### 顯示的字段名稱 list_display = ['id','name' ,'email','phone','mobile'] # 搜索時可輸入的字段內容 search_fields = ['id', 'name', 'email', 'phone'] # 點擊id可進入詳細界面進行編輯(默認的) list_display_links = ('id',) ## 可編輯的列名 list_editable = ['name' ,'email','phone','mobile'] # list_filter = ['name' ,'email','phone','mobile'] # 每頁顯示多少條 list_per_page = 20 #根據id排序 ordering = ('id',) #設置只讀字段 readonly_fields = ('user_email',) #顯示本條數據的全部信息 show_detail_fields = ['asset_name'] xadmin.site.register(models.UserProfile,UserProfileAdmin) # 此處註冊頁面,不可再次註冊該頁面
3.數據導出 若是想要導出Excel
數據,須要安裝xlwt
。
默認狀況下,xadmin
會提供Excel
,CSV
,XML
,json
四種格式的數據導出,能夠經過設置OptionClass
的list_export
屬性來指定使用哪些導出格式(四種格式分別用xls
,csv
,xml
,json
表示)或是將list_export
設置爲None
來禁用數據導出功能
list_export = ('xls', 'xml', 'json') list_export_fields = ('id', 'name', 'title')
4.設置全局的配置
# 全局修改,固定寫法 class GlobalSettings(object): # 修改title site_title = 'xxx後臺管理界面' # 修改footer site_footer = 'xxx的公司' # 收起菜單 menu_style = 'accordion' # 手風琴樣式 # 設置 models圖標 # https://v3.bootcss.com/components/ # http://www.yeahzan.com/fa/facss.html global_search_models = [models.Disk, models.Server] global_models_icon = { # Server: "glyphicon glyphicon-tree-conifer", Pool: "fa fa-cloud" models.Server: "fa fa-linux", models.Disk: "fa fa-cloud" # 修改左側Server表左側圖標爲企鵝 } # 將title和footer信息進行註冊 xadmin.site.register(views.CommAdminView,GlobalSettings)
5.圖表顯示
data_charts = { "host_service_type_counts": { 'title': '部門機器使用狀況', 'x-field': "business_unit", 'y-field': ("business_unit"), 'option': { "series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}}, "xaxis": {"aggregate": "count", "mode": "categories"} }, }, "host_idc_counts": { 'title': '機房統計', 'x-field': "idc", 'y-field': ("idc",), 'option': { "series": {"bars": {"align": "center", "barWidth": 0.3, "show": True}}, "xaxis": {"aggregate": "count", "mode": "categories"} } } }
6.註冊模型與對應的管理類
xadmin.site.register(models.Disk, DiskAdmin)
xadmin.site.register(models.Server, ServerAdmin)
xadmin.site.register(models.IDC, IDCAdmin)
xadmin.site.register(models.UserProfile, UserProfileAdmin)
xadmin.site.register(models.UserGroup, UserGroupAdmin)
vue-element-admin網址: http://github.com/PanJiaChen/vue-element-admin
https://panjiachen.gitee.io/vue-element-admin/#/table/complex-table 演示網址
iview-admin:
https://admin.iviewui.com/components/tables_page 演示網址
DevOps 平臺介紹: owen尚老師github自動化運維平臺
https://github.com/shangzekai/DevOps
echarts
antv 移動端的話 推薦你們使用這個
直接百度搜索進入主頁,能夠線上測試圖表代碼,也能夠複製js代碼