事件推送網關: 「讓基礎設施建設動起來」

前言

《事件推送網關:讓cmdb告別「花瓶」》自發起至今已兩月有餘,在此期間咱們從無到有對cmdb的事件推送進行了充分的摸索,不斷的踩坑填坑,現已基本實現瞭如下功能:python

  • cmdb和zabbix同步,以「業務_集羣_模塊」的分組規則進行建立、更新、刪除同步;主機建立、模板綁定、刪除,代替zabbix的被動的自動發現或自動註冊, 握必定的主動性
  • cmdb和jumpserver同步,按「/業務/集羣/模塊」的節點規則適配jumpserver的樹形結構,對節點進行建立、更新、刪除同步;資產的分組更新、刪除;

基於cmdb,咱們對基礎設施的管理有了依據,事件推送網關保證了基礎設置的有序流動,咱們能夠抽出更多的時間專一於上層的需求建設。web

需求

  1. cmdb和zabbix、jumpserver等系統隔離,資產分組沒法保持一致,須要花費大量的精力去維護;
  2. zabbix告警沒法關聯業務,經過cmdb的業務拓撲爲zabbix提供分組依據的同時,告警信息關聯業務拓撲來展現,幫助運維快速定位系統;
  3. jumpserver資產分配沒法關聯業務,經過cmdb的業務拓撲爲zabbix提供分組依據,jumpserer  web端只負責權限分配;

系統隔離是一直是運維管理的一大難題,統一的esb總線來適配全部系統是不現實的,所以咱們但願經過事件推送網關來間接打通。markdown

解決方案

1.cmdb事件推送

 藍鯨cmdb原生支持主機業務(資源池、主機)、業務拓撲(集羣、拓撲)、組織架構(業務)等內容的新增、編輯、刪除動做,觸發回調自行開發的事件推送網關(gateway);架構

2.事件推送網關(gateway)

gateway接收藍鯨cmdb事件推送的POST請求,合併請求後調用zabbix、jumpserver等系統的API,實現資產分組、建立,主機轉移等操做;運維

3.cmdb觸發規則

cmdb的觸發規則主要分爲如下幾類:ide

  • 業務的建立、更新、刪除
# 業務觸發規則下的參數
{'action': 'create', 'obj_type': 'biz'}
{'action': 'update', 'obj_type': 'biz'}
{'action': 'delete', 'obj_type': 'biz'}
複製代碼
  • 集羣的建立、更新、刪除
# 集羣觸發規則下的參數
{'action': 'create', 'obj_type': 'set'}
{'action': 'update', 'obj_type': 'set'}
{'action': 'delete', 'obj_type': 'set'}
複製代碼
  • 模塊的建立、更新、刪除
# 模塊觸發規則下的參數
{'action': 'create', 'obj_type': 'module'}
{'action': 'update', 'obj_type': 'module'}
{'action': 'delete', 'obj_type': 'module'}
複製代碼
  • 主機轉移觸發主機標識更新
# 主機轉移觸發的主機標識更新規則下的參數下
{'action''update''obj_type''hostidentifier'}
複製代碼

注意:業務、集羣、模塊的更新操做,會自動觸發主機標識更新,爲何呢?post

由於主機標識更新是最小的原子操做,業務、集羣、模塊一旦更新,全部的主機的分組信息都須要作出一致性改變。所以,最終觸發的操做以下:spa

# 業務更新
{'action': 'create', 'obj_type': 'biz'}
{'action': 'update', 'obj_type': 'hostidentifier'}

# 集羣更新
{'action': 'create', 'obj_type': 'biz'}
{'action': 'update', 'obj_type': 'hostidentifier'}

# 模塊更新
{'action': 'create', 'obj_type': 'biz'}
{'action': 'update', 'obj_type': 'hostidentifier'}
複製代碼

考慮到cmdb事件推送POST的參數格式的多樣性,給gateway解析參數帶來了必定的複雜度,在此咱們特定義了一下cmdb觸發規則:code

  • 新建業務、集羣、模塊操做不會進行同步,只有當主機轉移至相關模塊下才會進行同時新建業務、集羣、模塊,以減小重複性操做;
  • 刪除業務、集羣、模塊、主機進行同步;
  • 更新業務、集羣、模塊進行同步;

4.zabbix同步邏輯

22.png

5.jumpserver同步邏輯

與Zabbix不一樣的是,Jumpserver沒有建立主機操做,由於默認狀況下在後續文章《[藍鯨實現多環境vsphere虛擬機交付]》中會自動在jumpserver中建立主機。經過這一流程,咱們默認全部的主機已經在jumpserver存在了。orm

23.png

總結

在沒有cmdb以前,咱們的基礎設施管理是無序的,可是這也並不意味着有了cmdb就能將其管理的井井有理。所以,我認爲最主要的核心思想仍是基於cmdb,讓基礎設施在各平臺有效的流轉起來,而不是讓其真正成爲一個「花瓶」。

相關文章
相關標籤/搜索