【夜莺监控】初识夜莺,还是强!
前言
可观测性是大部分中小公司比较头疼的问题,主要表现以下几个方面:
- 需要不同的开源软件来组装以实现不同的功能,比如使用 Skywalking 实现链路监控,使用 ELK 实现日志收集监控,使用 Grafana Prometheus 来实现指标监控。
- 每个开源软件背后都是独立的一套体系,它们之前是相互独立的(Grafana 全家桶已经实现组合)。
- 数据孤岛,链路、日志、指标各玩各的,没有建立联系。目前市面上的解决方案要么是商业化产品,要么是自研。
本文的主角其实也没有做大一统,目前阶段依然是不同的开源组件实现不同的功能,只不过N9e可以在同一个主面板查看它们,但是数据之间的联系依然没有实现。
那为什么还要学习研究N9e呢?
因为它正在向这方面发展。
上面提到 Grafana 其实已经在做了,基于 Grafana Loki Tempo Prometheus 组合可以实现监控、指标、链路的联动,N9e 和 Grafana 有什么不同呢?
用秦总的话说:Grafana更擅长监控面板的管理,N9e更擅长告警规则的管理。
N9e 可以将不同的告警规则发送到不同的业务组,不同的群体,避免在一个群里产生大量的告警信息,久而久之就上演了狼来了的故事。
说了这么多,N9e到底长啥样?
下面是我部署好的一套系统。
可以看到,在该面板上,我们可以实现:
- 告警管理
- 时序指标查询
- 日志分析
- 链路追踪
- 告警自愈
- 人员管理
- .....
这样就不用几个应用来回切了,方面快捷。
系统架构
说一千到一万,架构不懂都白干。
现在我们来看看 N9e 的架构到底是什么样的,只有从架构逻辑上理清楚 N9e 是怎么玩的,不论是对部署还是维护都大有裨益。
N9e 主要有中心汇聚式部署方案以及边缘下沉式混杂部署方案,下面会分别做解释。
中心汇聚式部署方案
先上图:
这种方案就是建立一个 N9e 集群,其他 region 的监控数据都往这一个集群发送数据,这要求中心集群和其他 region 要有很好的网络连接。
对于中心集群来说,主要包括以下组件:
- MySQL:用于存放配置信息以及告警事件。
- Redis:用于存储 JWT Token,机器元信息等数据。
- TSDB:时序数据库,存放监控指标。
- N9e:核心服务,处理 Web 请求、提供告警引擎
- LB:为多个 N9e 提供负载功能。
对于其他 Region,只需要部署 Categraf 即可,它会将本地的监控数据推送到中心集群。
这个架构的特点是简单,维护成本比较低。前提是要求机房之间的网络链路要比较好,如果网络不好就要用下面的方案了。
边缘下沉式混杂部署方案
这种架构是对中心式部署方案的补充,主要是针对网络不好的情况:
- 把时序数据库 TSDB、转发网关、告警引擎都下沉到具体的 Region,由 Region 自己的来处理。不过 Region 依然需要和中心集群建立心跳连接,用户还是可以通过中心集群的监控面板查看其他 Region 的监控信息。
- 对于已有 Prometheus 的情况,也可以直接将 Prometheus 作为数据源接入即可。
边缘机房,下沉部署时序库、告警引擎、转发网关的时候,要注意,告警引擎需要依赖数据库,因为要同步告警规则,转发网关也要依赖数据库,因为要注册对象到数据库里去,需要打通相关网络。
!! PS:对于这种方案,本身网络不好,还要打通网络,可能还是会受网络问题影响。
单机部署
为什么这里要选择单机部署呢?
其实我是想挨着部署各个组件,这样对于理解整个 N9e 的运行模式有一定的帮助。
!! Tips:我这里使用的是 Ubuntu 22.04.1 系统
安装 MySQL
!! Tips:为了快速我安装的是 Mariadb
# 更新镜像源 $ sudo apt-get update # 更新软件 $ sudo apt-get upgrade # 安装Mariabd $ sudo apt-get install mariadb-server-10.6
安装完成后会自动启动。然后为数据库设置一个用户密码。
# 连接数据库 $ sudo mysql # 设置权限和密码 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234'; >flush privileges;
安装 Redis
# 更新镜像源 $ sudo apt-get update # 更新软件 $ sudo apt-get upgrade # 安装Redis $ sudo apt install redis-server
默认会自动启动。
安装 TSDB
N9e 的 TSDB 有多种选择:
- Prometheus
- M3DB
- VictoriaMetrics
- InfluxDB
- Thanos
这里我选择的是 VictoriaMetrics。
# 下载二进制包 $ wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.90.0/victoria-metrics-linux-amd64-v1.90.0.tar.gz # 解压 $ tar xf victoria-metrics-linux-amd64-v1.90.0.tar.gz # 启动 $ nohup ./victoria-metrics-prod &>victoria.log &
观察8428是否启动。
安装 N9e
# 下载最新版本的二进制包 $ wget https://github.com/ccfos/nightingale/releases/download/v6.0.0-ga.3/n9e-v6.0.0-ga.3-linux-amd64.tar.gz # 解压 $ mkdir n9e $ tar xf n9e-v6.0.0-ga.3-linux-amd64.tar.gz -C n9e/ # 检验目录如下 $ ll total 35332 drwxrwxr-x7 jokerbai jokerbai 40964月 12 14:05 ./ drwxr-xr-x4 jokerbai jokerbai 40964月 12 14:05 ../ drwxrwxr-x3 jokerbai jokerbai 40964月 12 14:05 cli/ drwxrwxr-x 10 jokerbai jokerbai 40964月 12 14:05 docker/ drwxrwxr-x4 jokerbai jokerbai 40964月 12 14:09 etc/ drwxrwxr-x 20 jokerbai jokerbai 40964月 12 14:05 integrations/ -rwxr-xr-x1 jokerbai jokerbai 252805124月6 19:05 n9e* -rwxr-xr-x1 jokerbai jokerbai 108380164月6 19:05 n9e-cli* -rw-r--r--1 jokerbai jokerbai297844月6 19:04 n9e.sql drwxrwxr-x6 jokerbai jokerbai 40964月 12 14:05 pub/
然后导入 N9e 的数据库。
# 导入数据库 $ mysql -uroot -p <n9e.sql
修改 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:8428/api/v1/write"
然后启动 N9e 服务。
# 启动服务 $ nohup ./n9e &>n9e.log & # 检测17000端口是否启动 $ ss -ntl | grep 17000 LISTEN 04096 *:17000*:*
在浏览器输入http://127.0.0.1:17000,然后输入用户名root,密码root.2020即可登录系统。
安装 Categraf
Categraf 是一个监控采集 Agent,会将采集到的信息推送到 TSDB。
# 下载 $ wget https://download.flashcat.cloud/categraf-v0.2.38-linux-amd64.tar.gz # 解压 $ tar xf categraf-v0.2.38-linux-amd64.tar.gz # 进入目录 $ cd categraf-v0.2.38-linux-amd64/
修改配置文件,在 conf/config.toml 中,修改的部分如下:
[[writers]] url = "http://127.0.0.1:17000/prometheus/v1/write" [heartbeat] enable = true
然后启动 Categraf。
$ nohup ./categraf &>categraf.log &
然后就可以在主界面看到基础信息。
添加数据源
现在如果去查看时序数据指标,是查询不到的,因为没有添加数据源。
在系统配置->数据源处添加数据源,如下:
然后就能看到对应的指标数据了。
也可以通过内置的仪表盘查看主机的监控数据,如下:
总结
这篇文章主要是带搭建对夜莺(Nightingale )有一个初步的印象,对它的整体架构做了简单的介绍,然后带大家从 0 到 1 安装了一遍,旨在让大家对夜莺的组件有一个清晰的认识。
目前夜莺已经更新迭代到 V6 版本,该版本有许多新的功能尝试,比如接入 ELK,接入 Jaeger 等,后续会持续对这个系列进行更新。
以上是【夜莺监控】初识夜莺,还是强!的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

文本标注工作是将标签或标记与文本中特定内容相对应的工作。其主要目的是为文本提供额外的信息,以便进行更深入的分析和处理,尤其是在人工智能领域。文本标注对于人工智能应用中的监督机器学习任务至关重要。用于训练AI模型,有助更准确地理解自然语言文本信息,提高文本分类、情感分析和语言翻译等任务的性能。通过文本标注,我们可以教AI模型识别文本中的实体、理解上下文,并在出现新的类似数据时做出准确的预测。本文主要推荐一些较好的开源文本标注工具。1.LabelStudiohttps://github.com/Hu

图像标注是将标签或描述性信息与图像相关联的过程,以赋予图像内容更深层次的含义和解释。这一过程对于机器学习至关重要,它有助于训练视觉模型以更准确地识别图像中的各个元素。通过为图像添加标注,使得计算机能够理解图像背后的语义和上下文,从而提高对图像内容的理解和分析能力。图像标注的应用范围广泛,涵盖了许多领域,如计算机视觉、自然语言处理和图视觉模型具有广泛的应用领域,例如,辅助车辆识别道路上的障碍物,帮助疾病的检测和诊断通过医学图像识别。本文主要推荐一些较好的开源免费的图像标注工具。1.Makesens

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

熟悉《西部世界》的观众都了解,这部剧设定在未来世界的一个巨大高科技成人主题乐园中,机器人们具备与人类相似的行为能力,能够记忆所见所闻,重复核心故事情节。每天,这些机器人都会被重置,回到初始状态在斯坦福论文《GenerativeAgents:InteractiveSimulacraofHumanBehavior》发布后,这种情景不再仅限于影视剧中,AI已经成功复现了这一场景Smallville的「虚拟小镇」概览图论文地址:https://arxiv.org/pdf/2304.03442v1.pdf

多模态文档理解能力新SOTA!阿里mPLUG团队发布最新开源工作mPLUG-DocOwl1.5,针对高分辨率图片文字识别、通用文档结构理解、指令遵循、外部知识引入四大挑战,提出了一系列解决方案。话不多说,先来看效果。复杂结构的图表一键识别转换为Markdown格式:不同样式的图表都可以:更细节的文字识别和定位也能轻松搞定:还能对文档理解给出详细解释:要知道,“文档理解”目前是大语言模型实现落地的一个重要场景,市面上有很多辅助文档阅读的产品,有的主要通过OCR系统进行文字识别,配合LLM进行文字理

FP8和更低的浮点数量化精度,不再是H100的“专利”了!老黄想让大家用INT8/INT4,微软DeepSpeed团队在没有英伟达官方支持的条件下,硬生生在A100上跑起FP6。测试结果表明,新方法TC-FPx在A100上的FP6量化,速度接近甚至偶尔超过INT4,而且拥有比后者更高的精度。在此基础之上,还有端到端的大模型支持,目前已经开源并集成到了DeepSpeed等深度学习推理框架中。这一成果对大模型的加速效果也是立竿见影——在这种框架下用单卡跑Llama,吞吐量比双卡还要高2.65倍。一名

论文地址:https://arxiv.org/abs/2307.09283代码地址:https://github.com/THU-MIG/RepViTRepViT在移动端ViT架构中表现出色,展现出显着的优势。接下来,我们将探讨本研究的贡献所在。文中提到,轻量级ViTs通常比轻量级CNNs在视觉任务上表现得更好,这主要归功于它们的多头自注意力模块(MSHA)可以让模型学习全局表示。然而,轻量级ViTs和轻量级CNNs之间的架构差异尚未得到充分研究。在这项研究中,作者们通过整合轻量级ViTs的有效

向大家介绍一个最新的AIGC开源项目——AnimagineXL3.1。这个项目是动漫主题文本到图像模型的最新迭代,旨在为用户提供更加优化和强大的动漫图像生成体验。在AnimagineXL3.1中,开发团队着重优化了几个关键方面,以确保模型在性能和功能上达到新的高度。首先,他们扩展了训练数据,不仅包括了之前版本中的游戏角色数据,还加入许多其他知名动漫系列的数据纳入训练集中。这一举措丰富了模型的知识库,使其能够更全面地理解各种动漫风格和角色。AnimagineXL3.1引入了一组新的特殊标签和美学标
