滴滴夜莺:从监控告警系统向运维平台演化-程序员宅基地

技术标签: 系统监控  夜莺  运维平台  监控  百宝箱  

简述

滴滴夜莺(Nightingale)是一款经过大规模生产环境验证的、分布式高性能的运维监控系统。基于Open-Falcon,结合滴滴内部的最佳实践,在性能、可维护性、易用性方面做了大量的改进,支撑了滴滴内部数十亿监控指标,覆盖了从系统、容器、到应用等各层面的监控需求。

夜莺于2020年3月底开源至今,GitHub Star已突破2000,并且于9月底发布了最新的3.0版本。本次更新夜莺被拆成了四个子系统,分别是:

  1. 用户资源中心(RDB)
    平台底座,所有的运维系统,都需要依赖这个,内置用户、权限、角色、组织、资源的管理。类似于CMDB。
  2. 资产管理系统(AMS)
    偏硬件资产的管理,开源版本开放了一个主机设备的管理。agent安装之后,会自动注册到资产管理系统,自动采集到机器的sn、ip、cpu、mem、disk等信息。
  3. 任务执行中心(JOB)
    用于批量跑脚本,类似pssh、ansible、saltstack,不过不支持playbook。任务本身支持一些控制:暂停点、容忍度、单机超时时间、中途暂停、中途取消、中途Kill等。
  4. 监控告警系统(MON)

从新拆分的系统来看,夜莺已经不简单是一个监控告警系统,而是逐步演变成一个运维平台,这一点也已经在“滴滴夜莺后续发展计划,新功能通告”中确定。通告中也很直接的指出了当前运维所面对的问题:
“运维这个领域,社区里每个细分方向都或多或少有一些开源解决方案了,但是没有行业标准,没法很好的集成在一起,缺少一个平台底座,所以,我们准备来干这个事,把商业版里边的一些偏平台底座的功能开源出来,那后面大家基于这个底座,就可以生长出各式各样的适合自己公司的场景化的应用。”

话不多少,我们来体验下吧。

安装

1、安装基础组件

yum install epel-release
yum install -y mariadb* redis nginx

2、下载我们编译好的二进制到/home/n9e目录,如果要更换目录,要注意修改nginx.conf。

mkdir -p /home/n9e
cd /home/n9e
wget http://116.85.64.82/n9e-3.0.0.tar.gz
tar zxvf n9e-3.0.0.tar.gz

3、初始化数据库,这里假设使用root账号,密码1234,如果不是这个账号密码,注意修改/home/n9e/etc/mysql.yml

systemctl start mariadb
mysql_secure_installation

mysql -uroot -p1234 < n9e_ams.sql
mysql -uroot -p1234 < n9e_hbs.sql
mysql -uroot -p1234 < n9e_job.sql
mysql -uroot -p1234 < n9e_mon.sql
mysql -uroot -p1234 < n9e_rdb.sql

4、redis配置修改,默认配置的6379端口,密码为空,如果默认配置不对,可以执行如下命令,看到多个配置文件里有redis相关配置,挨个检查修改下

cd /home/n9e/etc
grep redis -r .

systemctl start redis

5、下载前端静态资源文件,放到默认的/home/n9e目录下,如果要改目录,需要修改后面提到的nginx.conf

cd /home/n9e
wget http://116.85.64.82/pub.tar.gz
tar zxvf pub.tar.gz

6、更新nginx.conf并启动

cp etc/nginx.conf /etc/nginx/nginx.conf
# 启动
nginx

7、检查identity.yml,要保证这个shell可以正常获取本机ip

cat /home/n9e/etc/identity.yml
# 用来做心跳,给服务端上报本机ip
ip:
  specify: ""
  shell: ifconfig `route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1

# MON、JOB的客户端拿来做本机标识
ident:
  specify: ""
  shell: ifconfig `route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1

8、检查agent.yml的几个shell,挨个检查是否可以跑通

cat /home/n9e/etc/agent.yml
report:
  # ...
  sn: dmidecode -s system-serial-number | tail -n 1

  fields:
    cpu: cat /proc/cpuinfo | grep processor | wc -l
    mem: cat /proc/meminfo | grep MemTotal | awk '{printf "%dGi", $2/1024/1024}'
    disk: df -m | grep '/dev/' | grep -v '/var/lib' | grep -v tmpfs | awk '{sum += $2};END{printf "%dGi", sum/1024}'

9、启动各个进程,包括mysql、redis、nginx

cd /home/n9e
./control start all

10、登录web,账号root,密码root.2020

# 关闭selinux
setenforce 0
# 访问
http://ip

功能展示

1. 用户资源中心

用户资源中心最核心的是组织资源树,树节点的类别和扩展字段可以自定义。节点上挂两类对象,一个是人员权限,一个是资源。
在这里插入图片描述
主机设备作为默认资源,未挂载前在用户资源中心的游离资源中,挂载后才能被分配到租户的叶子节点下。
在这里插入图片描述
2. 资产管理系统

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

在这里插入图片描述在这里插入图片描述

3. 任务执行中心

可以通过任务执行中心批量执行脚本,通过组织资源树选择不同的租户、服务器列表。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
4.监控告警系统

通过监控大盘进行展示,采集配置默认支持日志、端口、进程、插件等。

在这里插入图片描述

总结

运维虽然可以使用各种开源方案完成大部分工作,但是都无法进行有效的可持续集成,导致各应用平台或系统不但增多,运维的注意力被过度分散。而夜莺的最新版本以标准化的方式整合了CMDB、操作自动化、监控等运维过程中比较重要的部分,可以让运维将更多的精力放在标准化、自动化等更重要的地方。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yanggd1987/article/details/109007315

智能推荐

latex添加附录_latex 附录-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏26次。在参考文献,\end{document}之前插入如下代码\appendix\section{附录}\subsection{程序代码}效果如下目录部分结尾部分_latex 附录

本周AI热点回顾:无人车的眼睛、UP主的生产力工具,都藏在百度CVPR的这十个冠军里;IJCAI 2021心电全景图及其生成网络...-程序员宅基地

文章浏览阅读421次。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍点击左上方蓝字关注我们01无人车的眼睛、UP主的生产力工具,都藏在百度CVPR的这十个冠军里啤酒、烧烤、欧洲杯是很多球迷今年夏天的消暑利器。但你可能想不..._飞桨 ecg

java 获取方法,获取java资源的方法-程序员宅基地

文章浏览阅读352次。获取java资源的方法获取java资源的方法在开发java程序的过程中,我们经常要做的一件事就是获取资源。那么什么是资源呢?说白了,在计算机里那就是一堆数据。只是这堆数据对我们的java程序有多种表现形式,一般来说有File,URL,InputStream等等。而单就文件这一项就有很多种:配置文件,java类文件,jps文件,图片、css、js文件等等。面对这林林总总的资源,我们在设计一个读取资源..._java获取数据源

C# 基于GDAL读取影像数据并用四叉树存储_c# gdal获取影像有效范围-程序员宅基地

文章浏览阅读849次。原谅,这是刚开始学C#学的代码,所以比较凌乱,但是是可以运行的using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows..._c# gdal获取影像有效范围

x264 交叉编译 iMX6 contex-A9 arm-poky 一些坑-程序员宅基地

文章浏览阅读201次。最近处理一个新板子移植问题,移植第三方库,例如x264,碰到奇怪问题。这款板子是新拿到的,据说性价比比较高,因此需要进行方案验证按道理,大点第三方库兼容性都做的不错,特别类似x264这样的。但ARM芯片不给力,导致有许多问题,也折腾了很久,现在总算搞明白来龙去脉,MARK下:一般来说,考虑到 configure 命令比较长,我们会建立一个批处理文件(比如:install.sh),并将需要命..._unrecognized option '-stack_alignment=16

成为 Java 高级程序员需要掌握哪些?-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏4次。Section 1 Core Java,就是 Java 基础、JDK 的类库,很多童鞋都会说,JDK 我懂,但是懂还不足够,知其然还要知其所以然,JDK 的源代码写的非常好,要经常查看,对使用频繁的类,比如 String,集合类(List,Map,Set)等数据结构要知道它们的实现..._10年java软件开发工程师适合看什么技术

随便推点

vue打开新页面_this.$router.resolve({ name: "pdf", query: {pdf : -程序员宅基地

文章浏览阅读143次。const routeData = this.$router.resolve({ name: 'index', query: { // } }) window.open(routeData.href, '_blank')_this.$router.resolve({ name: "pdf", query: {pdf : pdfurl } } );

Drools规则描述语言快速手册_drl语言-程序员宅基地

文章浏览阅读721次。在规则引擎中,通常会使用某种表述性的语言(而不是编程语言)来描述规则。所以规则描述语言也是规则引擎的一个重要组成部分。目前在规则描述语言方面,并没有一个通用的标准获得规则引擎厂商的广泛支持,大部分规则描述语言都是厂商私有的。大体来说,规则语言可以分为结构化的(Structured)和基于标记的(Markup,通常为xml)。常见的规则描述语言包括:srl(Structured Rule Language) : Fair Isaac(以前是Blaze Software)定义的结构化规则描述语言_drl语言

Apache----windows下虚拟主机和虚拟目录的认识(Apache配置)_虚拟目录和虚拟主机-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏3次。【指导老师】 王津 CTO 天津千行时线科技有限公司1 前言虚拟主机和虚拟目录的用处和区别很大,需要一番深究。在windows/Linux/Mac上配置也有差异。区别这两个东西,是为了更方便的发布和部署你的项目!!!虚拟目录,你在发布的时候,会多一个project目录,去不掉,工程项目过大的时候。虚拟主机,直接是域名+index.php首页,方便发_虚拟目录和虚拟主机

Spring4笔记----工厂方法配置bean_spring4 工厂方法注入bean-程序员宅基地

文章浏览阅读333次。(1)静态工厂方法调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中.当客户端需要对象时,只需要简单地调用静态方法,而不同关心创建对象的细节.要声明通过静态方法创建的 Bean, 需要在Bean 的class 属性里指定拥有该工厂的方法的类,同时在 factory-method属性里指定工厂方法的名称.最后, 使用 元素为该方法传递_spring4 工厂方法注入bean

公布Windows版Flutter_flutter windows ui-程序员宅基地

文章浏览阅读639次。公布Windows版Flutter构建高质量的Windows应用程序,并在移动和web上运行自从我们推出Flutter以来,我们一直专注于提供一个跨平台的解决方案,以获得漂亮的、定制的应用程序,这些应用程序被编译为机器代码,并充分利用您的设备的底层图形硬件。今天是这一愿景的重大扩展,我们首次发布了对Windows作为应用目标的支持,使Windows开发者能够受益于移动开发者所享有的同样的生产力和力量。我们在Flutter上的目标是为您提供构建良好体验所需的工具,无论您在哪个操作系统上构建。因此,我们_flutter windows ui

MSB8003: 未定义 WindowsSDKDir 属性_msb800未定义windows sdkir属性-程序员宅基地

文章浏览阅读5.7k次。warning MSB8003: 未定义 WindowsSDKDir 属性。可能找不到某些生成工具。可能找不到某些生成工具。VS三大版本的对比分析VS运行出错用Visual Studio Installer 修复一遍就行了安装问题,修复一下,,社区版的应该没什么大问题。Visual Studio Community毕竟嘛,社区版,也可以理解为个人版。适用于学生、开源和个人等等。一些新手用来学习是个不错的选择。该版本有相对完备的免费IDE。可用于开发 Android、iOS、Windows 和_msb800未定义windows sdkir属性

推荐文章

热门文章

相关标签