【夜莺(Flashcat)V6监控】1初识夜莺:介绍及部署

news2024/12/23 22:08:06

简介

夜莺( Nightingale )是一款国产、开源云原生监控分析系统(从 v6 版本开始,尝试转型成为统一观测平台),集数据采集、可视化、监控告警、数据分析于一体。于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 100 多个版本。

夜莺最初由滴滴开发和开源,并于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的第一个开源项目。夜莺的核心研发团队,也是 Open-Falcon 项目原核心研发人员。

夜莺监控既可以监控传统的物理机架构、可以监控微服务架构和 K8s,也可以监控公有云的资源和服务。不仅支持 Metrics,也支持 Log、Trce。提供统一的监控数据视图,提供集中化的可视化和管理界面。换句话说,你可以使用夜莺监控,来完成Zabbix + Prometheus + Grafana + ELK + Jaeger + 云监控的工作。

项目代码
后端:💡 https://github.com/ccfos/nightingale
前端:💡 https://github.com/n9e/fe

架构图

中心汇聚式部署方案

网络好,数据不多,均可采用此方案;老大说有服务器牛B的,单服务器也可支撑N多服务器;上图:
在这里插入图片描述
夜莺只有一个模块了,就是 n9e,可以部署多个 n9e 实例组成集群,n9e 依赖 2 个存储,数据库、Redis,数据库可以使用 MySQL 或 Postgres,自己按需选用。

n9e 提供的是 HTTP 接口,前面负载均衡可以是 4 层的,也可以是 7 层的。一般就选用 Nginx 就可以了。

n9e 这个模块接收到数据之后,需要转发给后端的时序库,相关配置是:

[Pushgw]
LabelRewrite = true
[[Pushgw.Writers]] 
Url = "http://127.0.0.1:9090/api/v1/write"	

相当于是,虽然数据源可以在页面配置了,但是上报转发链路,还是需要在配置文件指定。

所有机房的 agent( 比如 Categraf、Telegraf、 Grafana-agent、Datadog-agent ),都直接推数据给 n9e,这个架构最为简单,维护成本最低。当然,前提是要求机房之间网络链路比较好,一般有专线。如果网络链路不好,则要使用下面的部署方式了。

边缘下沉式混杂部署方案

针对已部署过Prometheus等监控程序的,进行融合监控;或者看老大视频说的因网络环境原因,为更好的自治做了拆分的处理等;上图:
在这里插入图片描述
这个图尝试解释 3 种不同的情形,比如 A 机房和中心网络链路很好,Categraf 可以直接汇报数据给中心 n9e 模块,另一个机房网络链路不好,就需要把时序库下沉部署,时序库下沉了,对应的告警引擎和转发网关也都要跟随下沉,这样数据不会跨机房传输,比较稳定。但是心跳还是需要往中心心跳,要不然在对象列表里看不到机器的 CPU、内存使用率。还有的时候,可能是接入的一个已有的 Prometheus,数据采集没有走 Categraf,那此时只需要把 Prometheus 作为数据源接入夜莺即可,可以在夜莺里看图、配告警规则,但是就是在对象列表里看不到,也不能使用告警自愈的功能,问题也不大,核心功能都不受影响。

边缘机房,下沉部署时序库、告警引擎、转发网关的时候,要注意,告警引擎需要依赖数据库,因为要同步告警规则,转发网关也要依赖数据库,因为要注册对象到数据库里去,需要打通相关网络,告警引擎和转发网关都不用Redis,所以无需为Redis打通网络。

尝试部署

资源

  • 🔧Linux服务器(Centos7.9.2009 好像最后一版了吧✨):http://isoredirect.centos.org/centos/7/isos/x86_64/
  • 🔧MySQL(5.7.37-log)根据自己需求装吧,我这是用的之前的,
  • 🔧N9e-v6最新版以是(v6.0.0-ga.6):https://flashcat.cloud/download/nightingale
  • 🔧Categraf(v0.3.2):https://flashcat.cloud/download/categraf
  • 🔧VictoriaMetrics(v1.90.0):https://github.com/VictoriaMetrics/VictoriaMetrics/releases
  • 🔧Redis(v-6.2.6,已出7版本了,我这里用的旧的):https://download.redis.io/releases/redis-6.2.6.tar.gz

开始整活

啥也不说,直接各个程序撸起来;当然了Centos和MySQL我就不写了,网络上很多介绍的自己搜搜就行。

Redis

mkdir /data/monitor/redis
cd redis/
tar zxvf redis-6.2.6.tar.gz
cd redis-6.2.6
# 直接启动即可
nohup ./bin/redis-server &
# 看看起来了吗?
ps aux |grep redis
# 看到下面这么一行说明启动成功,并且端口使用6379
root     15129  0.0  0.0 162516  3340 pts/2    Sl   17:26   0:04 ./bin/redis-server *:6379

注意:我这里测试没有改啥,真正用于生产环境记得修改密码。

VictoriaMetrics

老大推荐的TSDB,可以使用Prometheus也是可以的,n9e配置文件中默认还是用的Prometheus配的,一会儿启动n9e时需要改一下.

mkdir /data/monitor/vm
cd vm/
tar zxvf victoria-metrics-linux-amd64-v1.90.0.tar.gz
# 解压完毕直接启动就可以;
nohup ./victoria-metrics-prod &> stdout.log &
看一下端口8428,看到就可以了
netstat -ntlp|grep 8428
tcp        0      0 0.0.0.0:8428            0.0.0.0:*               LISTEN      18546/./victoria-me 

n9e

主程序来了,启动就可以看到界面了;

mkdir /data/monitor/n9e-v6
tar zxvf n9e-v6.0.0-ga.6-linux-amd64.tar.gz -C /data/monitor/n9e-v6

这个不能直接启动了;需要改下配置文件

vim /etc/config.toml
# 找到82行[DB]下的DSN 将密码改一下;
82 DSN="root:dbn9e.1234@tcp(127.0.0.1:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true" 
# 再找到153行,把9090改为 8428
153 Url = "http://127.0.0.1:8428/api/v1/write"
# 保存修改,启动即可
nohup ./n9e &> stdout.log &

Categraf

话说CategrafTelegraf 类似,反正都没用过,根据老大介绍直接启动就完活.

mkdir /data/monitor/categraf
cd categraf/
tar zxvf categraf-v0.3.2-linux-amd64.tar.gz
cd categraf-v0.3.2-linux-amd64
# 解压完毕直接启动就可以;
nohup ./categraf &> stdout.log &

界面

打开浏览器输入IP:17000就看到如下界面,证明你已经配置好了,如图:
在这里插入图片描述
输入账号密码:
root root.2020
在这里插入图片描述
一进来是啥也没有的,需要我们配置数据源;

注意:我们用了VictoriaMetrics需要选择Prometheus Like
在这里插入图片描述
点击Prometheus Like 下的添加按钮,根据提示添加必填即可;
在这里插入图片描述
看基础的在基础设施> 机器列表中看到你的服务器简单的信息了。
在这里插入图片描述
要看到详细信息;
我们需要看到仪表盘中的 内置仪表盘中,找到Linux下选择Linux Host by Categraf后的查看。
在这里插入图片描述
你的服务器监控信息将映入眼帘;
在这里插入图片描述

总结

总结啥,简单咔咔一顿就出效果了;最初看监控是想着APM去的,后面会介绍``的相关信息;
在这里插入图片描述
查监控的资料找到一堆,PrometheusGrafanaDATADOGZabbix等很多;支持国产;Skywalking夜莺看了一通;

可观测性(Observability)是一种软件开发和系统构建的哲学,是对系统内部状态及行为的度量和推断能力,通常包括日志、指标、链路追踪等多个度量维度。也就是说,在软件开发和运维领域中,可观测性是指对于一个复杂的系统,能够通过监控、日志、指标、追踪等手段,快速地发现、诊断、解决问题的能力。

后期可观测将都会朝朝All-in-one;metrics、logs、 traces都汇总的反向发展;
看到夜莺也是如此就在此尝试了,不止于监控,夜莺 V6 全新升级为开源观测平台
后面会继续跟进课程及时使用出相关博文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这就是阿里巴巴月薪20K+测试岗的面试题吗?让我这个3年的测试工程师看的冷汗直流.....

朋友入职已经两周了,整体工作环境还是非常满意的!所以这次特意抽空给我写出了这份面试题,而我把它分享给伙伴们,面试&入职的经验! 大概是在2月中的时候他告诉我投递了阿里巴巴并且简历已通过,2月23经过…

NPM 包管理器简介

目录 npm 简介 包(Packages) 更新包 版本控制 运行任务 npm 简介 npm 是 Node.js 的标准包管理器。 npm 的快速指南,强大的包管理器是 Node.js 成功的关键。2017 年 1 月,超过 350000 个软件包被报告在 npm 注册表中列出&a…

java中的Servlet对象生命周期以及过滤器监听器

review: Servlet生命周期中的初始化方法: init() , init(config) public void init(ServletConfig config) throws ServletException { this.config config ; init(); } 因此,如果我们需要在初始化时执行一些自定义的操作,那么我…

简单易用又功能强大,来看看Postman接口测试工具怎么用?

一、Postman介绍 Postman官网上这样介绍它:"Manage all of your organizations APIs in Postman, with the industrys most complete API development environment."看的出来Postman是功能强大的API测试的工具 Postman 提供功能强大的 Web API 和 HTTP 请求的调试&a…

【C++】 类练习---封装链表、人物移动

目录 前言 正文 结构体和类的区别 练习1:封装链表 用类封装链表的注意事项 定义一个链表的节点结构 链表类代码 主函数 运行结果 练习2:人物移动 说明 头文件以及宏 人物类 主函数 运行结果 结语 前言 在学完了【C】 类基础汇总&#x…

Java多线程---线程的创建(Thread类的基本使用)

本文主要介绍Java多线程的相关知识, Thread的创建, 常用方法的介绍和使用, 线程状态等. 文章目录 前言 一. 线程和Thread类 1. 线程和Thread类 1.1 Thread类的构造方法 1.2 启用线程的相关方法 2. 创建第一个Java多线程程序 3. 使用Runnable对象创建线程 4. 使用内部类…

【Java笔试强训 31】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥美国节日…

数组传参不理解?(数组传参的本质)

在我们编写程序时,经常需要传递参数给函数,其中一种常见的参数类型就是数组。数组作为一种数据结构,可以存储多个相同类型的数据元素,并按照一定的顺序排列。在函数中传递数组参数,可以方便地对数组进行操作处理。但是…

StarCoder - 源代码大模型

StarCoder 是一种在源代码和自然语言文本上训练的语言模型 (LM)。 它的训练数据包含 80 多种不同的编程语言以及从 github 问题和提交以及笔记本中提取的文本。 StarCoder 是在 github 代码上训练的,因此它可以用来执行代码生成。 更准确地说,模型可以完…

手术麻醉系统源码——业务流程介绍

采用计算机和通信技术,实现监护仪、麻醉机、呼吸机、输液泵等设备输出数据的自动采集,采集的数据能够如实准确地反映患者生命体征参数的变化,并实现信息高度共享,根据采集结果,综合其他患者数据,自动生成手…

在springboot项目中配置数据库下划线命名映射为java的驼峰命名时出错

问题 在使用spirngboot集成mybaits的时候,想要开启命名映射,如图配置 # mybatis配置 mybatis:type-aliases-package: com.zhong.springcloud.pojoconfig-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mapper/*…

4年外包出来,5次面试全挂....

我的情况 大概介绍一下个人情况,男,毕业于普通二本院校非计算机专业,18年跨专业入行测试,第一份工作在湖南某软件公司,做了接近4年的外包测试工程师,今年年初,感觉自己不能够再这样下去了&…

深入理解二分类和多分类CrossEntropy Loss和Focal Loss

深入理解二分类和多分类CrossEntropy Loss和Focal Loss 二分类交叉熵 在二分的情况下,模型最后需要预测的结果只有两种情况,对于每个类别我们的预测得到的概率为 p p p和 1 − p 1-p 1−p,此时表达式为( 的 log ⁡ \log log底数…

如何用ChatGP协助你,从品牌角度对产品提出升级建议?

该场景对应的关键词库(19个): 品牌洋葱图思维模型、产品信息、人群、品类、属性、体验、差异化特征、功效、品牌价值主张、目标用户、需求、痛点、爽点、消费者、外观、功能、结构、产品优化建议、产品开发可行性。 提问模板(3个&#xff09…

《Vue.js 设计与实现》—— 01 权衡的艺术

书籍链接:https://weread.qq.com/web/bookDetail/c5c32170813ab7177g0181ae 框架设计里到处都体现了权衡的艺术。 当我们设计一个框架时,框架本身的各个模块之间并不是相互独立的,而是相互关联、相互制约的。 作为框架设计者,一…

Windows10安装免安装版redis

下载 官方下载地址:github.com/MicrosoftAr…选择版本 解压安装 配置环境变量&注册成服务 配置环境变量 以管理员启动命令行,在redis安装根目录,把redis注册服务 redis-server --service-install redis.windows-service.conf --lo…

Communications chemisty|德睿智药工作-用于分子性质预测的药物约束异构图Transformer模型

德睿智药的分子性质预测任务 题目: Pharmacophoric-constrained heterogeneous graph transformer model for molecular property prediction 文献来源:COMMUNICATIONS CHEMISTRY | (2023) 6:60 | 代码:https://github.com/stardj/PharmHG…

springboot+dubbo+zookeeper 项目实战

现在有一段代码再前台,后台系统中都存在,都需要这段代码,存在这种情况,我们可以选择将这段代码提取出来作为一个服务,让前台和后台系统作为消费者远程调用这段代码,提高了代码的复用性。 springboot集成dub…

Unity Audio -- (2)创建动态音效

评估场景需求 本节的目标是添加脚步声到角色身上,当角色走路时,触发动画事件并播放声音。 脚步声是我们在真实世界中常常被我们所忽视的声音,但脚步声能够传达出许多环境信息。你现在可以花一小段时间绕着你周围的环境走一走并仔细听听脚步声…

CLIP : Learning Transferable Visual Models From Natural Language Supervision

CLIP : Learning Transferable Visual Models From Natural Language Supervision IntroductionApproach Introduction 在raw的数据上自监督的训练模型,已经在NLP领域取得了革命性进展,这种模型需要收到硬件、数据的限制,但是能得到很好的迁…