被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

2020年一场疫情打乱了很多人的节奏,我也因此第一次在北京过年了。

过年的这段时间,因约景点的时间有点晚了,所以很多的景点都没有去成,因此我基本上是在北京的出租房里憋了一个假期。

去年,也就是2020年,我开源了自己的第一个项目 ferry,得到了不少的认可,github的star也马上突破 3k 了。

因此在过年的时候,我就想着把自己构思了一段时间的另外一个项目CMDB写一写。

后来我看到了腾讯开源的CMDB,发现我构思的项目很多地方跟这个项目是类似的,但是没有腾讯开源的这个项目完善,因此就不准备重新开发了,毕竟非定制化的需求,重复造轮子还是没有太大必要的,于是我就开始研究腾讯的这个项目的源码,发现,这个项目是真的复杂呢,微服务的结构设计思路,让这个项目的代码规模有点大,而且还比较绕。程序编译成功后需要运行十几个二进制文件。

还有需要注意的就是必须使用指定版本的Mongodb、Redis、Zookeeper,反正我尝试使用新版本的这几个软件是不行的。单单是本地环境就折腾了好久,因为遇到了好多问题。且非常重要的一点就是这个项目运行起来的话非常吃资源。

本地环境部署完成后,就开始研究源码了。

腾讯开源的这个CMDB,单论CMDB的功能来说的话还是非常不错的。但是我发现很多地方都是依赖腾讯的蓝鲸PaaS平台的,而且就连登陆都是直接写死在程序里的,且没有权限系统(也是依赖于蓝鲸PaaS的)。

我尝试着进行了二次开发,包括登陆、权限及一些新功能的添加,但是我发现真的太麻烦了,登陆部分完成后,权限部分我实在是不想继续写下去了,前端用的是蓝鲸的UI,很多想加的功能点都不能直接用,后端的代码管理也没有用go mod,我还是比较习惯用这个的,整体来说,就是不习惯,于是,我就萌生了仿照这个项目,重新写一个的想法,并且实施了。把自己想要的功能和这个项目现在不错的功能点结合一下。

如果你发现这个项目非常像蓝鲸CMDB,别喷,就是仿照这个项目写的。

项目前端使用的是Vue + Element UI,后端就是Go + Gorm,数据存储方面目前就是MySQL,后面集成ES实现全局搜索。

因为还没有完全完善,因此现在就主要截图展示一下,后续完善后,会看情况是否进行开源。

页面比较多,截图部分页面有问题,有想法,欢迎评论交流。

Github:https://github.com/lanyulei/fiy

演示站点:http://fdevops.com:8060

觉得不错的话,给个star呗。

模型列表

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

模型详情

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

资源目录

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

资源列表

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

资源详情

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

云账号管理

方便进行云资源数据同步

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

新建服务模板

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

新建集群模板

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

服务分类

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

业务拓扑

被 “ 困 ” 京城的时间里,我的CMDB的项目完成了雏形

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2021/02/18/cmdb-23974
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(17条)

  • 315218236
    315218236 2021年2月19日 10:22

    蓝鲸的cmdb确实不错,但是监测只能agent,能否开发个snmp的?

  • yfhmmx
    yfhmmx 2021年2月20日 11:04

    期待磊哥开源。蓝鲸确实太庞大了,而且二次开发真的搞不来

  • Jinfuqing
    Jinfuqing 2021年3月11日 16:26

    期待磊哥开源。蓝鲸不是很适合小型环境,而且二次开发需要蛮多人支持的

  • 溪溪爸
    溪溪爸 2021年5月24日 16:45

    您好,能否分享一下您这个cmdb的代码,我最近想依照腾讯lanjing开发一个cmdb平台。谢谢。

  • Allen
    Allen 2021年6月1日 09:09

    期待开源

  • 运维001
    运维001 2021年7月25日 18:17

    能说下怎么部署安装的么

    • 兰玉磊
      兰玉磊 2021年7月26日 14:08

      @运维001我最近抽时间,整理一下部署文档吧。

    • carlson
      carlson 2021年8月25日 17:07

      @兰玉磊你好 啥时候能出个部署文档呀 期待咧嘴笑

    • 兰玉磊
      兰玉磊 2021年8月28日 00:13

      @carlson尽快哈。

    • carlson
      carlson 2021年9月6日 17:40

      @兰玉磊你好 我把源码下载下来,打成了docker镜像 通过配置settings.yml文件 跑起来了 但是数据库并没有出现在我指定的库中,请问是还要再哪里配置?
      配置文件信息:
      settings:
      application:
      # dev开发环境 test测试环境 prod线上环境
      mode: dev
      # 服务器ip,默认使用 0.0.0.0
      host: 0.0.0.0
      # 服务名称
      name: testApp
      # 端口号
      port: 8000 # 服务端口号
      readtimeout: 1
      writertimeout: 2
      # 数据权限功能开关
      enabledp: false
      logger:
      # 日志存放路径
      path: temp/logs
      # 控制台日志
      stdout: true
      # 日志等级
      level: all
      # 业务日志开关
      enabledbus: true
      # 请求日志开关
      enabledreq: false
      # 数据库日志开关 dev模式,将自动开启
      enableddb: false
      # 自动任务日志开关 dev模式,将自动开启
      enabledjob: false
      jwt:
      # token 密钥,生产环境时及的修改
      secret: fiy
      # token 过期时间 单位:秒
      timeout: 3600
      database:
      # 数据库类型 mysql,sqlite3, postgres
      driver: mysql
      # 数据库连接字符串 mysql 缺省信息 charset=utf8&parseTime=True&loc=Local&timeout=1000ms
      source: root:Admin!@tcp(****:3307)/fiy?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms
      gen:
      # 代码生成读取的数据库名称
      dbname: fiy
      # 代码生成是使用前端代码存放位置,需要指定到src文件夹,相对路径
      frontpath: ../fiy-ui/src
      sync:
      cloud: 5
      es:
      open: false
      host: http://127.0.0.1:9200
      user:
      password:
      index: cmdb_resource_data

    • 兰玉磊
      兰玉磊 2021年9月6日 17:48

      @carlson配置好配置文件后,执行这个命令试试,go run main.go migrate -c config/settings.dev.yml。

  • eweq
    eweq 2021年8月30日 17:54

    有部署文档吗