当前位置: 首页 > news >正文

nightingale-0-介绍单机二进制部署

(一) 夜莺介绍

Nightingale | 夜莺监控,一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的首个开源项目。
官网链接:快猫星云Flashcat | 云原生监控 | 混合云监控 | 稳定性保障体系
Flashcat平台可以解决的痛点问题:
1、统计监控难:构建统一的观测平台
- 物理机、微服务、云原生架构
- 公有云、私有云、多云
- Metrics、Logging、Tracing
2、故障定位慢:构建实时的故障定位系统
- 总是后于用户反馈发现故障
- 难以快速确认故障影响面
- 难以快速找到故障的直接原因
- 故障处理进度不透明

Categraf:
快猫采集器 Categraf 是一款 MIT 协议的开源软件,支持近百个插件,指标、日志、链路数据均可对接采集,All-in-one,开箱即用。

  • 作为Agent运行采集机器性能指标
  • 中心式探针,作为网络探针,采集各类中间件数据库的指标
  • Sidecar模式采集业务指标

(二) 夜莺部署安装架构

现在夜莺的版本已经更新迭代到V6版本
Ninghtingale下载地址:Nightingale
Categraf下载地址:Categraf
Categraf官方github地址

2.1、部署架构图

比较常用的中心汇聚部署方案
在这里插入图片描述
组件功能介绍

  • MySQL:存储告警信息,配置信息,告警规则,用户信息等;
  • Redis:存储一些验证信息,JWT的token,metadata元信息,元数据,心跳信息等;
  • TSDB:时序数据库(可以支持Prometheus、M3DB、VictoriaMetrics、Thanos等);
  • N9E:Nightingale | 夜莺监控,一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的首个开源项目,Nightingale 可以接收各种采集器上报的监控数据,转存到时序库(可以支持Prometheus、M3DB、VictoriaMetrics、Thanos等),并提供告警规则、屏蔽规则、订阅规则的配置能力,提供监控数据的查看能力,提供告警自愈机制(告警触发之后自动回调某个webhook地址或者执行某个脚本),提供历史告警事件的存储管理、分组查看的能力,n9e可以做集群,多个n9e分担告警规则的处理和压力,n9e也分为无状态和有状态服务。
  • LB:负责多个n9e的负载均衡;使用7层代理;
  • categraf:是夜莺监控的默认的自制的数据采集器;

针对网络链路不好的边缘下沉式混杂部署方案
在这里插入图片描述

2.2、部署n9e+categraf+VictoriaMetrics+mysql+redis中心化二进制单机部署夜莺

1)下载部署N9E:

下载安装部署MySQL和Redis

# INSTALL MySQL 
yum -y install mariadb*
systemctl enable mariadb
systemctl start mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# 权限有问题就执行下这个
mysql -uroot -p1234
grant all on *.* to 'root'@'%';
grant all on *.* to 'root'@'127.0.0.1';# INSTALL Redis
yum -y install redis
systemctl enable redis
systemctl restart redis 

下载N9E部署包并导入sql

mkdir -p /opt/n9e && cd /opt/n9e
wget https://download.flashcat.cloud/n9e-v6.0.0-ga.4.1-linux-amd64.tar.gz
tar -zxf n9e-v6.0.0-ga.4.1-linux-amd64.tar.gz -C /opt/n9e
mysql -uroot -p1234 < n9e.sql
# 启动n9e,并且查看日志,检查启动是否正常,默认端口17000
nohup ./n9e &> n9e.log &
tailf n9e.log
netstat -antp |grep :17000

如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。
配置文件在当前目录 etc/config.toml 中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root,密码是 root.2020

2)下载部署categraf:

mkdir /opt/categraf && cd /opt/categraf
wget https://download.flashcat.cloud/categraf-v0.2.39-linux-amd64.tar.gz
tar -zxf categraf-v0.2.39-linux-amd64.tar.gz -C /opt/categraf/
cp -a conf/categraf.service /usr/lib/systemd/system/
systemctl start categraf
journalctl -efu categraf
systemctl status categraf

解压完毕后会发现有一个可执行文件categraf和一个文件夹conf,conf文件下面有很多input的文件夹,里面都是每一个插件的配置文件(xxx.toml)config.toml是主配置文件,把systemd管理的启动文件直接拷贝过去启动

浏览器访问本机IP:17000端口
在这里插入图片描述

3)安装VictoriaMetrics,配置对接数据源

VictoriaMetrics官方文档
Github下载地址

VictoriaMetrics 架构简单,可靠性高,在性能,成本,可扩展性方面表现出色,社区活跃,且和 Prometheus 生态绑定紧密。如果单机版本的 Prometheus 无法在容量上满足贵司的需求,可以使用 VictoriaMetrics 作为时序数据库。

VictoriaMetrics 提供单机版和集群版[https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html]。如果您的每秒写入数据点数小于100万(这个数量是个什么概念呢,如果只是做机器设备的监控,每个机器差不多采集200个指标,采集频率是10秒的话每台机器每秒采集20个指标左右,100万/20=5万台机器),VictoriaMetrics 官方默认推荐您使用单机版,单机版可以通过增加服务器的CPU核心数,增加内存,增加IOPS来获得线性的性能提升。且单机版易于配置和运维。

  • 它可以用作普罗米修斯的长期储存。
  • 它可以用作 Grafana 中 Prometheus 的直接替代品,因为它支持Prometheus 查询 API。
  • 它可以用作Grafana中Graphite的直接替代品,因为它支持Graphite API。与Graphite相比,VictoriaMetrics允许将基础设施成本降低10倍以上 - 请参阅此案例研究。
  • 易于设置和操作:
    • VictoriaMetrics由一个没有外部依赖关系的小可执行文件组成。
    • 所有配置都是通过具有合理默认值的显式命令行标志完成的。
    • 所有数据存储在命令行标志指向的单个目录中。-storageDataPath
    • 使用vmbackup/vmrestore工具可以轻松快速地从即时快照进行备份。
  • 它实现了类似 PromQL 的查询语言 - MetricsQL,它在 PromQL 之上提供了改进的功能。
  • 它提供全局查询视图。多个 Prometheus 实例或任何其他数据源可能会将数据摄取到 VictoriaMetrics 中。稍后可以通过单个查询查询此数据。
  • 它为数据引入和数据查询提供了高性能以及良好的垂直和水平可扩展性。它的性能比InfluxDB和TimescaleDB高出20倍。
  • 在处理数百万个独特的时间序列(又称高基数)时,它使用的 RAM 比 InfluxDB 少 10 倍,比普罗米修斯、灭霸或 Cortex 少 7 倍。

可以说VictoriaMetrics是企业版的普罗米修斯。

部署安装

mkdir /opt/vm && cd /opt/vm
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.90.0/victoria-metrics-linux-amd64-v1.90.0.tar.gz
tar -zxf victoria-metrics-linux-amd64-v1.90.0.tar.gz -C /opt/vm
## 我们这里因为是单机点所以用的victoriaMetrics是单机版,解压过后只有一个文件victoria-metrics-prod#启动vm
nohup ./victoria-metrics-prod &> vm-prod.log &

他的默认端口是8428 启动后 可以使用命令ss -ntpl查看是否启动,启动成功后如果不指定存储目录他会在当前目录默认创建一个victoria-metrics-data的文件夹来存储数据 如果需要更改存储目录加参数-storageDataPath 即可

修改N9E的配置文件,配置VictoriaMetrics的地址来查看数据

vim /opt/n9e/etc/config.toml
...
[[Pushgw.Writers]] 
# Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
#Url = "http://127.0.0.1:9090/api/v1/write"  ##这里注释掉 这个是普罗米修斯的默认的remote-wirte协议的接口,因为我们安装的是vm所以这里注释掉
Url = "http://127.0.0.1:8428/api/v1/write" ##这里添加为VictoriaMetrics的地址8428的端口
# Basic auth username
BasicAuthUser = ""
# Basic auth password
BasicAuthPass = ""

重启N9E

pkill n9e
nohup ./n9e &> n9e.log &

进入n9e的web页面添加数据源
在这里插入图片描述
在这里插入图片描述
验证数据源是否配置成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置告警

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
玩一下钉钉告警在这里插入图片描述

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

加一个测试的告警
在这里插入图片描述
告警来了
在这里插入图片描述
在这里插入图片描述

这里再补充一下n9e配置文件存储日志的字段,切片,类似于ELK里的E做切片存储

vim /opt/n9e/etc/config.toml
.....
.....
.....     找到log字段
[Log]
# log write dir
Dir = "logs"     ##这里的意思是日志写到当前目录的logs目录下
# log level: DEBUG INFO WARNING ERROR
Level = "DEBUG"
# stdout, stderr, file
Output = "stdout"
# # rotate by time
# KeepHours: 4       ##这里的意思是我要保存4个小时的n9e日志         
# # rotate by size
# RotateNum = 3       ##这里是按大小来存储日志 存储3个文件,每个文件有256MB大小这么大来存储日志,对应下面的RotateSize字段来配置启动
# # unit: MB
# RotateSize = 256

引用

相关文章:

nightingale-0-介绍单机二进制部署

(一) 夜莺介绍 Nightingale | 夜莺监控&#xff0c;一款先进的开源云原生监控分析系统&#xff0c;采用 All-In-One 的设计&#xff0c;集数据采集、可视化、监控告警、数据分析于一体&#xff0c;与云原生生态紧密集成&#xff0c;提供开箱即用的企业级监控分析和告警能力。于…...

一个从培训学校走出来的测试工程师自述....

简单介绍一下我自己&#xff0c;1997年的&#xff0c;毕业一年了&#xff0c;本科生&#xff0c;专业是机械制造及其自动化。 在校度过了四年&#xff0c;毕业&#xff0c;找工作&#xff0c;填三方协议&#xff0c;体检&#xff0c;入职。我觉得我可能就这么度过我平平无奇的…...

关于pyqt的一些用法

QT原生是C&#xff0c;pyqt基于python语言。 关于插件&#xff1a; 安装一个PyUIC&#xff0c;一个Qt Designer 点击Qt Designer可以出来ui配置页面&#xff0c;和qt原生IDE基本一样 上面操作会生成.ui文件&#xff0c;选中此文件&#xff0c;点击PyUIC&#xff0c;会生成对…...

【Paper Note】ViViT: A Video Vision Transformer

ViViT: A Video Vision Transformer AbstractOverview of vision transformer 回顾ViTEmbedding video clips 视频编码方式Uniform frame sampling 均匀采样Tubelet embedding 时空管采样初始化3D卷积代码介绍视频编码输入到模型当中 Transformer Models for VideoSpatio-tempo…...

Java入坑之IO操作

目录 一、IO流的概念 二、字节流 2.1InputStream的方法 2.2Outputstream的方法 2.3资源对象的关闭&#xff1a; 2.4transferTo()方法 2.5readAllBytes() 方法 2.6BufferedReader 和 InputStreamReader 2.7BufferedWriter 和 OutputStreamWriter 三、路径&#xff1a;…...

校园小助手【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a; 更多系统资源库地址&#xff1a;骚戴的博客_CSDN_更多系统资源 更多系统…...

String的不可变特性

1 问题 如何理解“String是不可变的&#xff0c;但是可以变”&#xff1f; 2 方法 &#xff08;1&#xff09;String的不可变特性体现在内容和长度 首先在idea中点开查看String这个类是如何定义的 可以看到这样一行代码&#xff1a;private final char value[]; 正是因为这个数…...

使用MMDeploy(预编译包)转换MMxx(MMDeploy支持库均可)pth权重到onnx,并使用python SDK进行部署验证

MMDeploy使用python部署实践记录 准备工作空间所需环境配置使用MMDeploy得到onnx使用MMDeploy加载onnx模型对单张图片进行推理使用python SDK对onnx模型进行验证 注意 mmdeploy C SDK的使用部署和实际操作过程请看本人另外一篇博文使用MMDeploy&#xff08;预编译包&#xff09…...

Shiro安全框架简介

一、权限管理 1.1 什么是权限管理 基本上只要涉及到用户参数的系统都要进行权限管理&#xff0c;使用权限管理实现了对用户访问系统的控制&#xff0c;不同的用户访问不同的资源。按照安全规则或者安全策略控制用户访问资源&#xff0c;而且只能访问被授权的资源 权限管理包括认…...

三行Python代码,让数据处理速度提高2到6倍

本文可以教你仅使用 3 行代码&#xff0c;大大加快数据预处理的速度。 Python 是机器学习领域内的首选编程语言&#xff0c;它易于使用&#xff0c;也有很多出色的库来帮助你更快处理数据。但当我们面临大量数据时&#xff0c;一些问题就会显现…… 在默认情况下&#xff0c;…...

空间向量模长

// 空间向量模长 #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char **argv) { float x, y, z; float mochang 0.0; x y z 0.0; if (argc ! 4) { printf("usage:%s x y z\n", argv[1]); …...

活动需求中灵活使用Redis提升生产力

抽奖 一堆用户参与进来&#xff0c;然后随机抽取几个幸运用户给予实物/虚拟的奖品&#xff1b;此时&#xff0c;开发人员就需要写上一个抽奖的算法&#xff0c;来实现幸运用户的抽取&#xff1b;其实我们完全可以利用Redis的集合&#xff08;Set&#xff09;&#xff0c;就能轻…...

Java知识点学习(第16天)

Innodb是如何实现事务的&#xff1f; innodb通过Buffer Pool&#xff0c;LogBuffer&#xff0c;Redo Log&#xff0c;Undo Log来实现事务&#xff0c;以一个update语句为例&#xff1a; innodb在收到一个update语句后&#xff0c;会先根据条件找到数据所在的页&#xff0c;并…...

ORA-1688: unable to extend table AUDSYS.AUD$UNIFIED

昨晚正在外滩玩&#xff0c;有个客户发过来一段报错&#xff0c;已经影响到业务了。一看就是12C以后版本才有的问题&#xff0c;&#xff0c;赶紧在手机中收到临时解决办法 报错如下 ORA-1688: unable to extend table AUDSYS.AUD$UNIFIED partition SYS_P42549 by 1024 in t…...

抖音滑块以及轨迹分析

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 我们在web端打开用户主页的时候,时不时的会出现滑…...

C#生成单色bmp图片,转为单色bmp图片 任意语言完全用字节拼一张单色图,LCD取模 其它格式图片转为单色图

最终效果&#xff1a; V1.8.2 20230419 文字生成单色BMP图片4.exe 默认1280*720 如果显示不全&#xff0c;请把宽和高加大 字体加大。 首先&#xff0c;用windows画板生成一张1*1白色单色图作为标准&#xff0c;数据如下&#xff1a; 数据解析参考&#xff1a;BMP图像文件完…...

【瑞吉外卖】002 -- 后台登录功能开发

本文章为对 黑马程序员Java项目实战《瑞吉外卖》的学习记录 目录 一、需求分析 1、页面原型展示 2、登录页面展示 3、查看登录请求信息 4、数据模型 二、代码开发 1、创建实体类Employee&#xff0c;和employee表进行映射 2、创建包结构&#xff1a;&#xff08;Controller、Se…...

【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

java IO流_1

目录 分类 字节流 InputStream OutputStream 文件拷贝 字符流 FileReader FileWriter 处理流 BufferedReader BufferedWriter 文本拷贝 流是从起源到接受的有序数据&#xff0c;通过流的方式允许程序使用相同的方式来访问不同的输入/输出源。 分类 按数据…...

【回忆 总结】我的大学四年

大学四年关键词速览 如果穿越回大一&#xff0c;你想对大一的你提什么最重要的建议&#xff1f;同样是上网课&#xff0c;我为何能比大多数同学学的更好&#xff1f;回到学校&#xff0c;我的大二似乎一帆风顺&#xff1f;在不断的迷茫和徘徊中&#xff0c;大三的我做出的决定&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...