当前位置: 首页 > Linux

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

时间:2023-04-06 19:42:07 Linux

01滴滴夜莺介绍滴滴夜莺是一套分布式、高可用的运维监控系统。最大的特点是支持混合云,可以支持传统物理机虚拟机的场景,也可以支持K8S容器的场景。同时,滴滴夜莺不仅仅是监控,还有一些CMDB能力和自动化运维能力。很多公司都基于Nightingale开发了自己公司的运维平台。这部分开源的功能模块也是商业版的一部分,所以可靠性有保证,会持续维护,大家可以放心使用。02滴滴夜莺主要功能本节介绍滴滴夜莺的核心功能模块。可以关注用户资源中心和监控告警部分。》用户资源中心这是一个平台基地。所有的运维系统都需要依赖这个系统,内置管理用户、权限、角色、组织和资源。核心是组织资源树。可以自定义树节点的类别和扩展字段。组织资源树的层级结构最简单的组织方式是:tenant--->project--->module,更复杂的组织方式:tenant--->organization--->project--->module--->集群,组织可以嵌套。节点上挂着两类对象,一类是人员权限,一类是资源。资源可以是各种资源,除了主机设备和网络设备,还可以是rds实例和redis实例。当然,这需要rds和redis的管控系统与RDB相连接。滴滴在做一些中后台的大型商业解决方案的时候,RDB就起到了这样一个基地的作用。》资产管理系统这里的资产管理系统是对硬件资产的管理。本系统的使用者一般为系统部门人员和资产管理人员。应用运维相对较少关注这个系统。开源版本开放了主机设备的管理。可以再次开源,增加一些网络设备管理,机架位置管理,配件耗材管理等,有了基础,再在上面发展一些其他的系统就相对容易了。.agent安装后会自动注册到资产管理系统,自动采集机器的sn、ip、cpu、mem、disk等信息。为了灵活性,信息是用shell收集的。上面章节的安装步骤已经提到了,其中最重要的是ip。系统中有很多设备,ip需要全局唯一。其他sn、ip、cpu、mem、disk等如果不能采集成功,可以写成固定值,直接在shell中写echoafakedata即可。每个资产都有一个租户字段,代表资产的所有权。管理员需要分配资产所有权(修改资产所属的租户),让每个租户都可以使用对应的资产。分配完成后,会出现在“用户资源中心”的“免费资源”菜单中,每个租户都可以将免费资源挂在资产树上,进行分类管理和使用。树节点是通过右键单击树来创建的。》任务执行中心用于批量运行脚本,类似pssh、ansible、saltstack,但不支持playbooks。方式很简单,用scripts,shell,python,perl,ruby,只要机器上有parser就可以了。因为内置在Nightingale中,所以系统会更好。与组织资源树的权限相关联。可以控制不同的人在不同的机器上有不同的权限。有的人可以用root账号执行,有的人只能用普通账号执行,历史执行记录可以通过网页查看和审计。任务本身支持一些控制:暂停点、容差、单机超时、中途暂停、中途取消、中途Kill等。一些需要经常运行的脚本可以做成模板。模板是一种管理脚本的方式。之后可以根据模板创建任务,填写机器列表后执行。比如安装JDK、调整TCP内核参数、调整ulimit等机器初始化脚本都可以做成模板。任务执行中心的开源版本可以看作是一个命令通道。后期可以基于这个命令通道构建一些场景化的应用,比如机器初始化平台、服务变更发布平台、配置分发系统等。任务执行中心的各种操作都有对外暴露的API。详情请参考:router.go。我们公司的指挥通道每周执行超过60万个任务,因为上层的各种业务都依赖这个指挥通道的能力。》监控报警系统的核心逻辑与v2版本没有太大区别。监控指标分为设备相关指标和设备无关指标。因为在一些自定义监控数据的场景下,端点不容易定义,或者端点变化频繁。使用与设备无关的指标来处理它。优化了监控仪表盘,引入了更多类型的图表。不过滴滴夜莺毕竟是一个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滴滴夜莺文档:https://github.com/didi/nightingale/wiki视频:关注公众号《运维散兵》,查看历史新闻加群:加微信好友“UlricQin”,备注“夜莺加群”》05企业支持在生产过程中使用开源版本的企业用户。他们可以加入OCE,我们会提供更多更好的支持,比如专属的技术沙龙、企业一对一的交流机会、专属的答疑群。OCE申请入口在Obsuite公众号的菜单中,点击【OCE认证】直接申请。如果你想要更强大的功能和更稳定的商业支持,可以了解我们的商业版。商业版的介绍也在Obsuite♂的菜单里。