蓝鲸配置平台(蓝鲸CMDB)是一个基于运维场景设计的企业配置管理服务。主要功能:
1. 拓扑化的主机管理:主机基础属性、主机快照数据、主机归属关系管理
2. 组织架构管理:可扩展的基于业务的组织架构管理
3. 模型管理:既能管理业务、集群、主机等内置模型,也能自定义模型
4. 进程管理:基于模块的主机进程管理
5. 事件注册与推送:提供基于回调方式的事件注册与推送
6. 通用权限管理:灵活的基于用户组的权限管理
7. 操作审计:用户操作行为的审计与回溯
官网地址:
源码地址:https://github.com/tencent/bk-cmdb
架构设计
1. 资源层(store):提供系统所需的资源存储、消息队列以及缓存系统服务
2. 服务层(service layer): 服务层划分为两大模块
a. 资源管理模块:
在配置平台中我们把资源类型进行了抽象,目前划分为主机、进程、通用对象三大类,支持横向扩展,每一类资源由一类微服务进程来管理。
b. 业务场景模块:
业务场景模块是基于资源管理模块的原子接口对应用场景的封装。
基于操作的相关度,目前划分出admin、event、host、topo、process、datacollection几个微服务:
admin服务负责系统的配置刷新、初始化数据写入等操作;
event服务负责系统的事件订阅与推送服务;
process、topo、host分别负责系统进程、拓扑模型、主机数据的使用场景;
datacollection 服务负责系统快照数据的接收与写入。
3. 接口层(api): 这一层是系统的api服务网关。
4. web层(web): web层是系统提供的web服务。通过配置平台提供的web服务界面,用户可以进行资源的操作。
交互说明
1. Zookeeper作为配置中心,利用Admin Server推送配置到Zookeeper,Zookeeper再把配置同步到各个服务的本地。
2. Zookeeper作为服务中心,服务启动时自上报IP端口到Zookeeper,Zookeeper把各个服务的访问地址同步到各个服务本地。
3. Zookeeper Node Watch机制:配置或服务地址更新,都将同步到各个服务本地。
4. Web只通过ajax与Web Server交互,Web Server与Api Server交互,Api Server和各个业务场景模块、资源管理模块交互。
在线预览
当前的CMDB基于web pack打包的js文件比较大,第一次加载会比较慢。
服务器在香港,有可能会稍有延迟。
站点做了流量控制,一个ip每秒100次,一个ip每天100000次,如果接收到“Too Many Requests”的错误,请稍后再试。
图1
图2
部署步骤0. 环境准备
名称 操作系统 IP 说明master CentOS 7 192.168.132.130
k8s master
node CentOS 7 192.168.132.136 k8s node
db CentOS 7 192.168.132.139 数据库服务器,安装mongodb、redis、zookeeper
registry -- -- 镜像仓库(可选),可使用公有云仓库,可自建仓库
1. 安装mongodb(db服务器,docker安装,版本4.0.4)
docker pull mongo:4.0.4
mkdir -p /opt/mongo
docker run --name mongo -v /opt/mongo:/data/db -d -p 27017:27017 mongo:4.0.4
2. 安装redis(db服务器,docker安装,版本5.0.2)
docker pull redis:5.0.2
mkdir -p /opt/redis
docker run --name redis -v /opt/redis:/data -d -p 6379:6379 redis:5.0.2 redis-server --requirepass cc
3. 安装zookeeper(db服务器,docker安装,版本3.4.13)
docker pull zookeeper:3.4.13
mkdir -p /opt/zookeeper
docker run --name zookeeper -v /opt/zookeeper:/data -d -p 2181:2181 zookeeper:3.4.13
4. 配置mongodb(db服务器)
docker exec -it mongo /bin/bash
mongo
use cmdb
db.createUser({user: "cc",pwd: "cc",roles: [ { role: "readWrite", db: "cmdb" } ]})