一个完善的基础资源数据库是我们构建运维自动化上层应用的基础,所以构建CMDB系统成了有想法在DevOps运维自动化领域有所发展的企业离不开的重要一环,但受制于每家企业不同的内外部环境、资源配置以及管理方式各不相同,开发一套相对通用的CMDB系统就变得非常困难,这也是为什么现在市面上开源的CMDB系统很多,但使用都不是很广泛的主要原因

近段时间偶然发现了一款开源的CMDB系统,构建足够灵活,功能相对完善,使用体验也不错,于是深入研究,了解了其设计思路,更是受益颇多。我们自己也有构建基础资源数据库,目前已成功管理了生产环境所有的资源,更是成为团队小伙伴每天必用的趁手工具,落地效果还不错,这篇文章我就结合自己构建CMDB的经验来介绍下这个开源的CMDB系统:维易CMDB,同时推荐给大家

系统介绍

模型

一个完善的CMDB需要管理企业内的所有资源,不仅是服务器,不仅是数据库,而是所有对我们重要的资源,不仅有硬件,还包括软件,这些资源每个企业可能都不一样,那么要构建相对通用的CMDB,支持自定义资源模型就成了必须的

维易CMDB支持自定义资源分组,例如服务器、数据库等等,支持自定义资源类型,例如物理机、MySQL等等,支持自定义资源属性,例如服务器名称、内网IP等等,支持自定义资源模型与模型之间的关联,例如网卡关联到服务器、服务器关联到应用、应用关联到产品等等,支持为模型添加自定义的触发器,例如模型数据变化自动通知、自动调用WebHook实现更灵活的控制等等,支持属性的自动发现采集更新,例如云上资源自动同步、自定义发现插件等等,支持关系的自动发现更新,例如网卡自动与主机关联关系、nginx直接与服务器关联关系等等。这一段我连续说了好几个支持、自定义,足以看出它的灵活以及强大

关系

模型与模型之间的关联关系可以自定义,模型与模型之间的关系还能自动发现自动关联。同时维易CMDB还会根据模型的关联关系自动生成业务关系拓扑,业务关系、资源关联清晰明了

根据业务关系拓扑用户也可以根据自己的业务需要或查询习惯自定义服务树,根据服务树来查询资源或许更符合我们的使用习惯

查询

足够灵活的配置让我们能够管理所有你想要管理的资源。当然资源管理只是构建CMDB的第一步,更为重要的是要CMDB为我们提供准确的数据,为上层业务服务,这就对于数据的查询和应用显得尤为重要,维易CMDB的查询语法非常灵活,支持多种资源多种属性多种关系的组合查询,可以清晰准确的定位目标资源,同时也有完善的API提供,方便与其他系统集成

权限

除了灵活的模型定义,清晰的资源关系,强大的数据查询,数据的权限控制也非常的重要,维易CMDB的权限控制也非常灵活,权限控制点很多,所有能看到点菜单,所有自定义的模型都有权限控制,权限控制粒度比较细,控制到了对象级别,甚至还能针对模型的字段来进行权限控制

比较有意思的是还支持通过触发器来实现动态授权,支持对资源进行批量授权和权限回收

审计

仅仅有授权还不够,配合上操作审计才完整,维易CMDB有着非常完善的审计机制,所有的数据变化都能在审计日志中记录,权限最小化,操作有记录,全面保障系统安全

大盘

Dashboard不仅能够全面的反映当前资源的使用情况,老板也是非常的喜欢,维易CMDB不仅有大盘,还支持自定义,自定义图表类型,自定义图表样式,根据自定义条件实时计算展示的数据,不仅能够做到好看,更能做到有用

个人看法

通过我自己简单的试用和潜伏社区对开发团队的了解,分享一点我自己不成熟的看法,一家之言,各位看个热闹就好

优势:

  1. 系统很强大,设计很巧妙,如果使用得当应该能满足很多企业的基本使用需求

  2. 系统有很多值得借鉴的地方,例如自定义模型、强大的查询语法和权限设计等等,值得认真推敲学习

  3. 社区比较活跃,尤其是微信群几乎是有问必答,虽然公众号文章阅读量跟我一样少的可怜,但文章内容质量不错

  4. 开源,这个无需多说,向开源致敬

提升:

  1. 配置较为复杂,想要做通用,适应更多的场景,复杂似乎是没有办法的事情,但这对新手和非技术人员很不友好,其实大部分企业对资源都是一样的,如果能内置更多的模型或者有模型市场之类的可以直接使用,那就会简单很多

  2. 体验可以更好,配置太复杂了,能否可以从使用体验上做减法,例如添加默认角色,降低授权难度,例如优化服务树,基于服务树进行授权管理等等

总结一下就是系统很棒,值得好好学习,如果你是专业的技术人员,那这个系统使用起来应该难度不大,同时也能真的解决问题,如果你非技术那使用起来就有一定难度了,不过好在社区活跃,支持到位,多问问问题不大

在线体验

最后附上项目Github地址:https://github.com/veops/cmdb

官方还提供有在线Demo可以体验,README有地址和账号密码,如果想要进社区微信群也可以直接私信我

觉得不错的话请不要吝惜star,好项目值得被更多的人发现,真诚的希望维易CMDB发展的越来越好,造福更多的运维同行

开源推荐,灵活多变功能强大的CMDB的更多相关文章

  1. 讲解开源项目:功能强大的 JS 文件上传库

    本文作者:HelloGitHub-kalifun HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  2. .NET开源免费的功能强大控件库

    通信工具IM控件: http://www.cnblogs.com/hubro/p/4316315.html 360安全卫士及QQ部分控件经典皮肤下载 http://www.sufeinet.com/t ...

  3. 工具推荐:ATSCAN,功能强大的Perl脚本扫描器

    工具推荐:ATSCAN,功能强大的Perl脚本扫描器 使用perl语言编写的开源的扫描器,功能丰富强大,除了基本的tcp和udp端口扫描之外,还可以搜索wordpress.joomla等网站并进行口令 ...

  4. 整合了一个功能强大完善的OA系统源码,php全开源 界面漂亮美观

    整合了一个功能强大完善的OA系统源码,php全开源界面漂亮美观.需要的同学联系Q:930948049

  5. 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control

    甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...

  6. [推荐] kylinPET是一款功能强大的性能测试工具

    [推荐] kylinPET是一款功能强大的性能测试工具 官方网站: http://www.kylinpet.com/

  7. 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager

    我们在本地启动Tomcat服务器后,用localhost:访问: 再点Manager App,即可进入Tomcat自带的Manager这个应用,此处可以单独部署/卸载每一个应用.可以看到在Manage ...

  8. 推荐一个高效,易用功能强大的可视化API管理平台

    项目管理 提供基本的项目分组,项目管理,接口管理功能 接口管理 友好的接口文档,基于websocket的多人协作接口编辑功能和类postman测试工具,让多人协作成倍提升开发效率 MockServer ...

  9. Android 整合实现简单易用、功能强大的RecyclerView

    之前总是会有人在一些开发群里问,有木有比较好使且功能强大些的RecyclerVew,比如支持下来刷新,加载更多等,还有人在问,如何为RecyclerView添加分割线,尤其是如何为网格布局添加分割线? ...

  10. Ubuntu 14.04下安装功能强大的屏幕截图软件 Shutter

    [注释]试用了一下,果然很强大,牛逼 一款功能强大的屏幕截图软件——Shutter,Shutter最基本的就是截图功能了,在设计上可以自由选定区域,同时选定之 后依然可以通过上下左右四个地方来改变选区 ...

随机推荐

  1. .Net Web API 004 Controller获取对象列表,传入数据以及对象

    1.返回UserEntityList 这个服务接口的目的是分为用户列表,代码如下所示. /// <summary> /// 得到用户列表 /// </summary> /// ...

  2. CSSRelated

    CSS 几种常用的清除浮动方法 ️️️ 父级 div 定义伪类:after 和 zoom; /* 这个class名指的是需要清除浮动的父级 */ .clearfloat:after { display ...

  3. js面向对象编程,你需要知道这些

    javascript中对象由key和value组成,key是标识符,value可以为任意类型 创建对象的方式 1.通过构造函数 var obj = new Object() obj.name = 'a ...

  4. 如何用windows任务视图管理多个程序,提高.net开发效率

    在 Windows 操作系统中,任务栏是一个非常重要的工具栏,用来显示当前正在运行的程序和任务.如果同时运行了很多程序,任务栏上的图标就会变得非常拥挤,不方便管理和切换.为了提高工作效率,可以通过任务 ...

  5. SpringBoot - 自定义starter

    目录 一.什么是SpringBoot starter机制 二.为什么要自定义starter 三.什么时候需要创建自定义starter 四.自动加载核心注解说明 五.自定义starter的开发流程 案例 ...

  6. MacOS系统(M1/M2)安装AI绘画StableDiffusion保姆级教程

    安装完成后,推荐阅读这篇教程:AI绘画:Stable Diffusion 终极炼丹宝典:从入门到精通 实操环境: macOS 13 Arm64(建议12以上的系统使用) Apple M1 先来看几个样 ...

  7. 《SQLi-Labs》01. Less 1~5

    @ 目录 前言 索引 Less-1 题解 原理 Less-2 题解 Less-3 题解 Less-4 题解 Less-5 题解 原理 sqli.开启新坑. 前言 对于新手,为了更加直观的看到 sql ...

  8. WPF学习 - 用鼠标移动、缩放、旋转图片(2)- 使用MatrixTransform

    在上一篇文章中,提到了以鼠标控制变换图片的方法. 这种方法在某种情况下可以,例如,直接在windows窗体上.但我发现,当把它封装到一个控件中的时候,它就不行了. 经过不断的尝试,我找到了一种更简单的 ...

  9. 【目标检测】RCNN算法实现

    一.前言 RCNN(Regions with CNN features)算法由Ross Girshick在2014年的论文"Rich feature hierarchies for accu ...

  10. 如何使用Vite创建Vue3的uniapp项目

    项目结构 my-vue3-project ├─ .env //默认环境变量 ├─ .env.development //开发环境变量 ├─ .eslintrc-auto-import.json //( ...