滴滴夜莺监控学习研究

2023年 9月 25日 23.3k 0

介绍

夜莺Nightingale是中国计算机学会托管的开源云原生可观测工具,最早由滴滴于 2020 年孵化并开源,并于 2022 年正式捐赠予中国计算机学会。夜莺采用 All-in-One 的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,融入了顶级互联网公司可观测性最佳实践,沉淀了众多社区专家经验,开箱即用。

简称n9e:即nightingale,中间有9个字母,所以叫n9e,类似k8s的叫法

功能和特点

  • 统一接入各种时序库:支持对接 Prometheus、VictoriaMetrics、Thanos、Mimir、M3DB 等多种时序库,实现统一告警管理
  • 专业告警能力:内置支持多种告警规则,可以扩展支持所有通知媒介,支持告警屏蔽、告警抑制、告警自愈、告警事件管理
  • 高性能可视化引擎:支持多种图表样式,内置众多Dashboard模版,也可导入Grafana模版,开箱即用,开源协议商业友好
  • 无缝搭配 Flashduty:实现告警聚合收敛、认领、升级、排班、IM集成,确保告警处理不遗漏,减少打扰,更好协同
  • 支持所有常见采集器:支持 Categraf、telegraf、grafana-agent、datadog-agent、各种 exporter 作为采集器,没有什么数据是不能监控的
  • 一体化观测平台:从 v6 版本开始,支持接入 ElasticSearch、Jaeger 数据源,实现日志、链路、指标多维度的统一可观测

开源地址

后端:github.com/ccfos/night…

前端:github.com/n9e/fe

官方文档:flashcat.cloud/docs/conten…

简单使用

官网提供两种部署方式,推荐第二种

  • 使用 docker 和 docker-compose,官方不推荐
  • 二进制部署:官方推荐的方式
  • 为了方便,我们采用第一种方式,首先要安装docker 和 docker

    docker 的下载地址:github.com/docker/comp…,下载指定的版本,我下载的是windows版本的,下载后双击运行即可。

    cmd窗口一闪而过,已经装好了。我当时还不知道,捯饬了白天。。。

    然后按照官网给的命令执行

    git clone https://github.com/ccfos/nightingale.git
    cd nightingale/docker
    docker-compose up -d
    

    需要注意的是: 我们的docker中不能有mysql,redis 等命名的容器,因为他默认的名字是这个,如果有会卡住不动,并且 不能再 windows上的docker启动,因为windows中docker是不支持 host模式的

    启动好后的docker 如下所示

    image-20230922161741284.png

    image-20230922161857952.png
    在我们的宿主机访问夜莺

    http://172.168.3.67:17000/

    默认用户是root,密码是root.2020

    登录之后需要配置数据源

    采集器

    夜莺本身,其实只是一个服务端组件,不负责数据采集。

    夜莺开发者建议:

    优先使用 categraf 做机器基础指标的采集,和夜莺对接最为丝滑,然后各类中间件、数据库,如果 categraf 可以直接搞定就用,如果不能直接搞定,再配合其他 agent 来使用,是比较合理的选择

    Categraf

    Categraf 是一款 all-in-one 的采集器,是一个监控采集 Agent,开源地址为:

    • github: github.com/flashcatclo…

    Categraf 不但可以采集 OS、MySQL、Redis、Oracle 等常见的监控对象,也准备提供日志采集能力和 trace 接收能力,这是夜莺主推的采集器

    metrics agent

    categraf组件的核心模块,metrics agent主要实现对各种组件的性能指标进行采集,类似于prometheus中的exporter,但是categraf组件采用All-in-one 的设计思想,并利用插件模式进行实现。

    采集插件的代码,在代码的 inputs 目录,每个插件一个独立的目录,目录下是采集代码,以及相关的监控大盘JSON(如有)和告警规则JSON(如有),Linux相关的大盘和告警规则没有散在 cpu、mem、disk等采集器目录,而是一并放到了 system 目录下,方便使用。

    插件的配置文件,放在conf目录,以input.打头,每个配置文件都有详尽的注释,如果整不明白,就直接去看 inputs 目录下的对应采集器的代码。

    categraf大概实现了70+插件

    夜莺可以监控xx么?

    官网给出的解释是:

    其实,夜莺啥都可以监控,又啥都监控不了。夜莺是一个服务端组件,类似 Grafana,可以接入不同的数据源,比如 Prometheus、VictoriaMetrics、Thanos 等等,只要数据进到这些库里了,夜莺就可以对数据源的数据进行分析、告警、可视化,以及后续的事件处理、告警自愈。

    当然,夜莺也有端口接收监控数据,可以跟开源社区常见的各种监控采集器打通,比如 Telegraf、Categraf、Grafana-agent、Datadog-agent、Prometheus 生态的各类 Exporter 等等。这些 agent 采集了数据推给夜莺,夜莺适配了这些 agent 的数据传输协议,所以可以接收这些 agent 上报的监控数据,转存到后端对接的数据源,之后就可以对这些数据做告警分析、可视化。

    所以夜莺本身不做监控数据采集,啥都不能监控,但是夜莺可以对接数据源,又啥都可以监控。

    他本身是一个平台,采集数据需要各种采集器来接入数据,接收到数据之后对数据库进行展示、分析

    总结

    夜莺是一个平台,功能强大,可以接入各种数据源,可以对数据进行分析,告警等。在滴滴有成熟的实践方案,可以用于大厂的监控告警等

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论