写点什么

混合云一站式运维监控 -- 滴滴夜莺

用户头像
Obsuite
关注
发布于: 2021 年 01 月 19 日
混合云一站式运维监控--滴滴夜莺

01 滴滴夜莺简介


滴滴夜莺是一套分布式高可用的运维监控系统,最大的特点是混合云支持,既可以支持传统物理机虚拟机的场景,也可以支持 K8S 容器的场景。同时,滴滴夜莺也不只是监控,还有一部分 CMDB 的能力、自动化运维的能力,很多公司都基于夜莺开发自己公司的运维平台。开源的这部分功能模块也是商业版本的一部分,所以可靠性有保障、会持续维护,诸君可放心使用。

02 滴滴夜莺主要功能


本节阐述滴滴夜莺的核心功能模块,大家可以重点关注用户资源中心和监控告警部分。

》用户资源中心



这是一个平台底座,所有的运维系统,都需要依赖此系统,内置用户、权限、角色、组织、资源的管理。最核心的是一棵组织资源树,树节点的类别和扩展字段可以自定义,组织资源树的层级结构最简单的组织方式是:租户--->项目--->模块,复杂一点的组织方式:租户--->组织--->项目--->模块--->集群,组织是可以嵌套的。


节点上挂两类对象,一个是人员权限,一个是资源,资源可以是各类资源,除了主机设备、网络设备,也可以是 rds 实例,redis 实例,当然,这就需要 rds、redis 的管控系统和 RDB 打通了。滴滴在做一些大的中后台商业化解决方案的时候,RDB 就是扮演了这么一个底座的角色。

》资产管理系统



这里的资产管理系统,是偏硬件资产的管理,这个系统的使用者一般是系统部的人,资产管理类人员,应用运维相对不太关注这个系统。开源版本开放了一个主机设备的管理,大家可以二次开源,增加一些网络设备管理、机柜机架位的管理、配件耗材的管理等等,有了底座,上面再长出一些其他系统都相对容易。


每一条资产,都有一个租户的字段,代表资产归属,需要管理员去分配资产归属(修改资产的所属租户),各个租户才能使用对应的资产,分配完了之后,会出现在用户资源中心的“游离资源”菜单中,各个租户就可以把游离资源挂到资产树上去分门别类的管理使用。树节点的创建是在树上右键哈。

》任务执行中心



用于批量跑脚本,类似 psshansiblesaltstack,不过不支持 playbook,大道至简,就用脚本撸吧,shell、python、perl、ruby,都行,只要机器上有解析器。因为是内置到夜莺里的,所以体系化会更好一些,和组织资源树的权限是打通的,可以控制不同的人对不同的机器有不同的权限,有些人可以用 root 账号执行,有些人只能用普通账号执行,历史执行记录都可以通过 web 页面查看审计。任务本身支持一些控制:暂停点容忍度单机超时时间中途暂停中途取消中途 Kill 等。


一些经常要跑的脚本,可以做成模板,模板是对脚本的一种管理方式,后续就可以基于模板创建任务,填个机器列表就可以执行。比如安装 JDK调整 TCP 内核参数调整 ulimit 等机器初始化脚本,都可以做成模板。


开源版本的任务执行中心,可以看做是一个命令通道,后续可以基于这个命令通道构建一些场景化应用,比如机器初始化平台服务变更发布平台配置分发系统等。任务执行中心各类操作都有 API 对外暴露,具体可参看:router.go 我司的命令通道每周执行任务量超过 60 万,就是因为各类上层业务都在依赖这个命令通道的能力。

》监控告警系统



这块核心逻辑和 v2 版本差别不大,监控指标分成了设备相关指标和设备无关指标,因为有些自定义监控数据的场景,endpoint 不好定义,或者 endpoint 经常变化,这种就可以使用设备无关指标的方式来处理。监控大盘做了优化,引入了更多类型的图表,但滴滴夜莺毕竟是个 metrics 监控系统,处理的是数值型时序数据,所以,最有用的图表其实就是折线图,其他类型图表,看看就好,场景较少。滴滴夜莺也可以对接 Grafana,有个专门的 DataSource 插件,Grafana 会更炫酷一些,只是,在数据量大的时候性能较差。

03 滴滴夜莺架构



讲解几个关键点:

  • agent 主动与 job 建立 tcp 长连接,拉取脚本任务执行,并且将结果上报;

  • agent 主动调用 ams 的 http 接口,上报自身的基本信息;

  • agent 主动调用 monapi 的接口,拉取采集策略,比如进程、端口、日志、插件的相关采集策略;

  • agent 主动与 transfer 建立 tcp 长连接,推送监控数据;

  • transfer 将接收到的监控数据推送一份给 tsdb 做数据持久化,一份给 judge 做告警判断;

  • index 用来存放监控数据的索引,tsdb+index 也可以使用 m3db 替换,滴滴夜莺支持多种后端存储机制;

  • judge 是告警引擎,周期性从 monapi 拉取告警策略,对接收到的数据做阈值判断,生成告警事件,将告警事件推给 redis,monapi 从 redis 消费这些告警事件,将事件持久化到数据库,并且按要求发送告警通知。

04 滴滴夜莺资料


05 企业支持


  • 在生产环节使用开源版的企业用户,可以加入 OCE,我们会额外给予更好的支持,比如专属的技术沙龙、企业一对一的交流机会、专属的答疑群等。OCE 申请入口在 Obsuite 公众号的菜单里,点击【OCE认证】也可直接申请。

  • 如果希望有更强大的功能,更稳定的商业支持,可以了解我们的商业版本,商业版本的介绍入口也在 Obsuite 公众号的菜单里。


文章来源:混合云一站式运维监控--滴滴夜莺 (qq.com)


用户头像

Obsuite

关注

混合云可观测性中台 2021.01.19 加入

Obsuite是来自滴滴的可观测性智能中台。微信服务号/B站:Obsuite;Github:https://github.com/didi/nightingale(滴滴夜莺)、https://github.com/didi/Logi-KafkaManager(滴滴Logi-KafkaManager)。

评论

发布
暂无评论
混合云一站式运维监控--滴滴夜莺