《蓝鲸之路》系列文章咱们经过蓝鲸标准运维打通了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
复制代码
事件推送网关的具体实现,咱们将在后面的文章中进一步梳理,在此暂不释放,请持续关注后面的内容。