《藍鯨之路》系列文章咱們經過藍鯨標準運維打通了zabbix、jumpserver,雖然實現了虛擬機從建立、jumpserver資產錄入到權限分配、cmdb資產錄入這一套完整的上架流程。可是cmdb、jumpserver、zabbix之間的資產及分組關係不是統一的,團隊須要花費必定的精力去維護及團隊間信息同步,在此cmdb並無起到統一數據源及提供數據支撐的做用,由於zabbix、jumpserver等都是脫離藍鯨體系的。python
試想一下咱們的jumpserver、zabbix 是要爲運維團隊的基礎運維、應用運維、DBA、業務運維、大數據運維等提供跳板機、告警監控等多樣性服務的。虛擬機(服務器)上架的自動化流程只是在新服務器投入使用階段知足了資產的錄入,可是並不知足cmdb、jumpserver、zabbix的之間分組調整的一致性同步,此時可能會出現如下問題:redis
綜上,咱們將需求總結爲如下兩點:django
毋庸置疑的是cmdb做爲基礎設施統一的數據源,可以爲上層應用zabbix、jumpserver提供數據支撐。所以全部的資產分配應該儘量的與cmdb進行一致性同步,此時就須要用到藍鯨cmdb的事件推送,進行信息變動實時推送。api
事件推送功能可以實現當配置信息發生變化的時候,實時通知到關聯的系統中,目前支持 HTTP 的推送方式。使用此功能前須要先爲目標系統開發可接收 HTTP 請求的接口。緩存
經過以上官網信息可得:服務器
所以,下一步咱們須要作的是:markdown
因爲目前處於探索階段,有不少細節性問題咱們還在不斷的思考中,不過比較明確是當前先進行cmdb事件推送、自行初步開發事件推送網關接受變動信息。app
經過側邊導航打開 "模型管理 - 事件推送" ,點擊 【新建】 按鈕。框架
在新增推送的對話框中,主要關注完善三部份內容:運維
建立好一個事件推送之後,能夠在推送的列表中直觀看到當前推送接收數量和失敗狀況。
事件推送網關是咱們自行命名的系統,經過python3.9+django3.2開發,用於cmdb進行回調,在此咱們暫且只獲取cmdb的變動信息。
組件名 | 做用 |
---|---|
python3.9+django3.2 | 開發框架 |
redis | 請求去重,緩存變動信息 |
注意: 10.10.2.11 屬於test一、test2兩個模塊,將其從test2模塊中刪除只保留test1模塊,經測試cmdb的操做分爲如下三步:
所以藍鯨5.1 事件推送的動做觸發,會產生多個同一requestid的請求,此時咱們藉助redis 進行請求去重,咱們只接受最終分組信息便可。
# 1.python環境
conda create -n gateway python=3.9
source activate gateway
pip install django redis
# 2.建立項目
django-admin startproject gateway
cd gateway
python manage.py startapp gw_cmdb
複製代碼
事件推送網關的具體實現,咱們將在後面的文章中進一步梳理,在此暫不釋放,請持續關注後面的內容。