滴滴夜莺:从监控告警系统向运维平台演化

2023-11-18

简述

滴滴夜莺(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、操作自动化、监控等运维过程中比较重要的部分,可以让运维将更多的精力放在标准化、自动化等更重要的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

滴滴夜莺:从监控告警系统向运维平台演化 的相关文章

  • Arthas监控java程序

    安装 1 解压缩arthas的压缩包 unzip arthas packaging bin zip 2 安装Arthas cd arthas install local sh 启动 以脚本的方式启动as sh 如图为启动成功 监控命令使用
  • 应用篇-Zabbix对端口的监控

    配置 主机 需要添加端口监控的ip 监控项 创建监控项 按照图内填入对应端口信息 端口监控项创建完成 端口的监控不仅仅是要端口的数据的数据 更需要的是一个触发的机制 当端口不在时 触发告警 通知对应的业务人员及时处理 接下来是触发器的设置
  • win7及以上系统C++实现Hook explorer文件级监控复制、剪切和删除操作

    最近项目组需要实现一个对windows用户文件操作进行监控的功能 也就是使用explorer资源管理器的操作 于是乎我就想到了使用Hook的方法进行拦截 查找一番资料后发现XP调用的是最简单的CopyFileEx MoveFileWithP
  • 无线连接让智能手表用户可以自行沟通和监控

    诸如智能手表和智能眼镜之类的产品正在激增 它们中的大多数由于多个传感器 低功耗嵌入式处理器 直视或虚拟显示器以及无线通信链路 Wi Fi或蓝牙 来连接到智能手机 从而提供各种功能 主机系统 或互联网 尽管这些高度集成的系统中有许多提供了所需
  • prometheus+grafana可视化监控部署记录

    目录 安装环境准备 1 1 主机环境准备 1 1 1 关闭selinux 1 1 2 部署规划 1 1 3 系统主机时间 时区 系统语言 GO安装部署 prometheus安装部署 grafana安装部署 node exporter监控li
  • jvisualvm监控tomcat

    1 修改Tomcat的catalina sh文件 修改tomcat的bin目录下的 catalina sh文件 搜索 JAVA OPTS 在引号中添加参数 Dcom sun management jmxremote port 10086 D
  • spring boot Actuator原理详解之启动

    本文基于spring boot 2 2 0 release版本 从本文开始 我将连续几篇文章介绍Actuator的原理 本文是原理的第一篇文章 介绍Actuator是如何启动的 我们知道访问Actuator可以通过JMX web等渠道 本文
  • java socket异常总结

    Java Socket 网络编程常见异常 1 java net SocketTimeoutException 这 个异 常比较常见 socket 超时 一般有 2 个地方会抛出这个 一个是 connect 的 时 候 这 个 超 时 参 数
  • 使用腾讯云“自定义监控”监控GPU使用率

    欢迎大家前往 云 社区 获取更多腾讯海量技术实践干货哦 作者 李想 随着人工智能以及比特币的火热 GPU云服务的使用场景是越来越广 在很多场景下我们也需要获取GPU服务器的性能参数来优化程序的执行 目前腾讯云提供的GPU云服务器并未提供GP
  • K8S的DaemonSet部署和安全删除

    1 部署方式 部署DaemonSet 需要执行以下步骤 创建DaemonSet配置文件 您可以使用YAML或JSON格式的文件描述DaemonSet的规格 包括容器镜像 容器端口 Pods标签 节点选择器等 使用kubectl命令将配置文件
  • 【分享】科大讯飞星火认知大模型(初体验)

    前言 哈喽 大家好 我是木易巷 随着人工智能技术的迅猛发展 自然语言处理 NLP 成为了热门话题 在众多NLP模型中 科大讯飞星火认知大模型成为了一个备受瞩目的新秀 今天我们来了解一下这个由科大讯飞公司开发的人工智能模型 内测方法在文末 5
  • MySQL 监控软件lepus天兔

    文章目录 概述 一 基本环境安装 1 1 安装LAMP环境 1 2 开启httpd mysqld 1 3 安装lepus server需要的依赖包 1 4 配置httpd并启动 1 5 配置php 1 6 安装Python2 7 不是必须的
  • 监控告警03--夜莺新增飞书告警模块-v4版本

    监控告警03 夜莺新增飞书告警模块 v4版本 1 介绍 2 方法 2 1 源码变动 2 2 测试效果 3 说明 1 介绍 上文 监控告警02 夜莺飞书告警 v4版本 中 笔者通过更改夜莺 v4 源码 src modules server d
  • 全链路监控之pinpoint

    一 pinpoint出现与其他相似概念比较 1 pinpoint概念 pinpoint是由java PHP编写而成的 用来对大规模的分布式系统提供应用性能管理 pinpoint可以解决复杂架构下的拓扑解析与性能分析 2 pinpoint的特
  • 【夜莺监控方案】04-k8s集群监控(下)(kube-state-metrics+cadvisor+prometheus+n9e及FAQ)

    文章目录 前言 4 接入prometheus 5 接入n9e 5 1 手动接入 方法一 5 2 导入模板 方法二 6 FAQ 6 1 集群数据时常取不到 现象 解决 前言 相关文档如下 03 k8s集群监控 上 4 接入prometheus
  • 监控告警02--夜莺飞书告警-v4版本

    监控告警02 夜莺飞书告警 v4版本 1 介绍 2 方法 2 1 源码改动 2 2 测试效果 3 说明 1 介绍 v4版本的夜莺集成了shell api wechat wechat robot dingtalk robot 等5中常见的告警
  • zabbix性能调优

    zabbix性能调优 服务器环境 centos7 zabbix3 2 mariadb 1 从监控项调整 1 关掉没必要的监控项 zabbix自带模板里面涉及各种监控项 实际情况并不需要用到所有的 可以根据自带模板内容自己创建模板 也可以将模
  • 「分享」最全AI合集 全是好玩意!

    哈喽 大家好 木易巷这次给大家带来了最全的AI合集 每一个都功能强大 总有一个是你需要的 话不多说 直接上 1 学英语 Replika 2 Al生成乐曲 AmperMusic IBM Watson Music 3 Al换脸 Deepfake
  • MySQL监控和预警

    1 摘要 本人从事Java Web开发 在项目开发中会用到很多中间件 本文主要介绍MySQL监控的一点心得和使用 公司DBA也有相应的监控 但是我们的业务比较重要 想做一个备份监控 对MySQL监控需要做监控和预警 首先需要有数据 数据采集
  • springboot项目中对文件夹进行监控

    需要的依赖

随机推荐

  • 多线程事务的实现

    为了提高效率 在批量执行SQL时 可以采用多线程并发执行的方式 每个线程在执行完SQL后 暂时不提交事务 而是等待所有线程的SQL执行成功后 一起进行提交 如果其中任何一个线程执行失败 则所有线程都会回滚 一 springboot多线程 声
  • 【STM32 HAL库+STM32CUBEMX】使用usart1打印串口数据

    1 设置RRC外部时钟 设置高速外部时钟 2 设置DEBUG调试 debug设置成SW 3 设置usart 设置模式为异步通信 比特率115200 起始位8位 停止位1位 没有奇偶效验 4 设置时钟 选择外部时钟HSE 选择PLLCLK 设
  • H5右侧悬浮

    前言 实现H5右侧悬浮 点击展开收回移除 示例如下 默认 点击动画移入 html代码片段 div class right item menu i class right menu icon i div class right item st
  • Redis缓存穿透、击穿和雪崩

    Redis是一种开源的高性能缓存数据库 常用于加速数据访问 提高系统性能 然而 在使用Redis时 我们需要注意一些常见的问题 例如缓存穿透 击穿和雪崩 这些问题可能会导致系统性能下降甚至崩溃 因此了解和解决这些问题是非常重要的 1 缓存穿
  • 关于版本回退后怎么还原原来的分支

    如果在reset当前分支到某个节点时发现操作失误 想还原当前操作 回到reset之前的分支 如下图所示 1 输入git reflog 查看分支所有的操作历史记录 2 查看HEAD num 其中num的数值越大 则代表当前的历史分支的时间点越
  • 医院管理信息系统 HIS EMR PACS LIS

    主要功能模块 系统设置 数据字典 业务数据 权限管理医疗卡 门诊挂号 大屏叫号 分诊 急诊管理 门诊医院站 门诊护士站 门诊收费 药库 药房 住院管理 住院结算 住院医生 住院护士 医技执行 手术室管理 会诊 临床路径 电子病历 院长查询
  • 自协商功能原理及工作过程

    自协商原理 自协商是通过一种叫做快速连接脉冲 Fast Link Pulse 的信号实现的 简称FLP 自协商的双方通过FLP来交换数据 在具备自协商能力的端口没有Link的情况下 端口一直发送FLP 在FLP中包含着自己的连接能力信息 包
  • 已有一个Excel表格,用VBA批量新建文件夹

    已有一组Excel表格数据 使用VBA快速批量建文件夹 不知道标题怎么写 已经有了这样一组数据 然后需要根据这两组数据新建文件夹 代码如下 Sub 建文件夹 Dim i As Integer 用于下方数组 Dim Arr1 Arr2 定义一
  • 浅析集合不安全例子

    package com bochy list import java util ArrayList import java util List public class ArrayListConcurrentProblem public s
  • 弹性盒子(Flex)相关属性全解析

    目录 基本介绍 添加在父元素上的属性 添加在flex容器上的 一 设置为弹性布局 display flex 二 修改主轴的属性 flex direction 三 设置子元素是否折换 flex wrap 四 设置主轴的对齐方式 justify
  • C语言中函数的调用和函数返回值(17)

    C语言中函数的调用和函数返回值 一 函数的调用形式 按照函数调用出现的形式 可以分为三种调用方式 1 函数调用语句 例如 printf star 2 函数表达式 c 2 max a b 3 函数参数 printf d max a b m m
  • 这可能是全网最详细的python安装教程(windows)

    python安装是学习pyhon第一步 很多刚入门小白不清楚如何安装python 今天我来带大家完成python安装与配置 跟着我一步步来 很简单 你肯定能完成 第一部分 python安装 一 准备工作 1 下载和安装python 认准官方
  • TiggerRamDisk的超详细使用教程(亲测成功)

    目录 一 软件介绍 一 型号对应 二 可以支持的功能 二 操作步骤
  • SAP PO上传异步接口(PO发布Webservice)

    导语 接口是SAP与其他系统进行数据交互的一种方式 在这篇文章中主要讲述通过PO实现的上传接口 即SAP被动接收其他系统发送的数据 注意 对于配置中涉及的基本组件的介绍和创建在前面的博客有说明和介绍 再次不做过多赘述了 一 ESB Ente
  • 去除a标签默认样式_超链接样式的使用CSS入门基础(014)

    今天我们分享关于超链接样式的内容 在浏览器中 超链接的样式有默认样式 点击后样式 鼠标悬停样式和激活样式四种状态 超链接默认情况下是带有下划线的 看起来很丑 用户体验不好 前面我们说到了text decoration none可以去除下划线
  • Unity-后期处理效果之Bloom

    Unity 后期处理效果之Bloom 什么是Bloom Bloom属性 什么是Bloom Bloom是一种游戏常见的一种屏幕效果叫做高光溢出 是一种光学效果 其中来自明亮来源 如闪光 的光表现为泄露到周围对象中 通俗来说就是这种特效可以模拟
  • Visual Studio Code 插件

    Visual Studio Code 插件安装 插件安装 Script插件 Vue插件 插件安装 首页点击 工具和语言 如下图 接下来 在输入框中输入想要安装的插件的名字 点击 install 即可进行安装 Script插件 1 Eslin
  • C++中cout和cerr的区别?

    之前一直在用 但就是没在意两者到底有啥却别 今天又想到这个问题 总结下吧 以下的内容均是本人从网上查阅资料看来整理的 暂时还没有查阅官方资料 不保证准确 欢迎讨论 其实大家平常常会用的主要有三个 cout cerr clog 首先简单介绍下
  • http协议的状态码:404等常见网页错误代码

    http协议的状态码 一 1xx 临时响应 表示临时响应并需要请求者继续执行操作的状态码 100 继续 请求者应当继续提出请求 服务器返回此代码表示已收到请求的第一部分 正在等待其余部分 101 切换协议 请求者已要求服务器切换协议 服务器
  • 滴滴夜莺:从监控告警系统向运维平台演化

    简述 滴滴夜莺 Nightingale 是一款经过大规模生产环境验证的 分布式高性能的运维监控系统 基于Open Falcon 结合滴滴内部的最佳实践 在性能 可维护性 易用性方面做了大量的改进 支撑了滴滴内部数十亿监控指标 覆盖了从系统