监控软件 - 初识 Nightingale

夜莺是什么

夜莺监控(Nightingale)是一款开箱即用、默认中文、界面美观的开源监控系统。

夜莺监控是一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析、权限管理于一体,拥有企业级的监控分析和告警能力。夜莺集合了 Prometheus 和 Grafana 的优点,你可以在 UI 上管理和配置告警策略,也可以对分布在多个 Region 的指标、日志、链路追踪数据进行统一的可视化和分析。

夜莺是一个服务端组件,类似 Grafana,可以对接不同的TSDB时序数据库作为数据源,支持的TSDB时序数据库如Prometheus、VictoriaMetrics、Thanos等等,只要数据进到这些库里了,夜莺就可以对数据源的数据进行分析、告警、可视化,以及后续的事件处理、告警自愈。

架构介绍

中心机房部署架构

对于中心集群来说,主要包括以下组件:

MySQL:用于存放配置信息以及告警事件。
Redis:用于存储 JWT Token,机器元信息等数据。
TSDB:时序数据库,存放监控指标。
N9e:核心服务,处理 Web 请求、提供告警引擎。

中间的飞鸟代表夜莺的核心进程 n9e ,它的集群方式非常简单只需部署多节点即可实现。

对于 n9e 来说,它本身依赖的存储有两个:

Mysql : 存放配置类别信息,如用户,监控大盘,告警规则等。
Redis : 存放访问令牌(JWT Token),心跳信息,如机器列表中CPU、内存、时间偏移、核数、操作系统、CPU架构等。

从 v6 版本开始,夜莺尝试转型为统一可观测性平台,n9e 不再仅支持接入时序数据源(Prometheus、Victoriametrics、M3DB、Thanos),也可以接入日志类数据源(Elasticsearch,Loki),链路追踪数据源(Jaeger)。

Categraf是夜莺团队开发维护的监控采集侧核心组件,类似Telegraf、Grafana-Agent、Datadog-Agent,希望对所有常见监控对象提供监控数据采集能力,采用All-in-one的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。Categraf采集器采集了数据推送给夜莺,然后转存到后端数据源,如TSDB、ElasticSearch等。

特点是简单,维护成本比较低。

缺点:前提是要求机房之间的网络链路要比较好。

边缘下沉式混杂部署方案

主要是针对网络不好的情况:

把时序数据库 TSDB、转发网关、告警引擎都下沉到具体的 Region,由 Region 自己的来处理。不过 Region 依然需要和中心集群建立心跳连接,用户还是可以通过中心集群的监控面板查看其他 Region 的监控信息。

从 v6.0.0.ga.9 开始,合并了 n9e-alert、n9e-pushgw 模块为 n9e-edge,应对边缘机房的场景。n9e-edge 不依赖 mysql、redis,只依赖中心端的 n9e,所以 edge.toml 配置文件里,需要配置中心端 n9e 的地址。

[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000

部署夜莺

使用 Docker compose 的方式一键部署夜莺

先去 github releases 页面下载最新的 release 包,或者从 flashcat 下载中心下载最新的发布包。

下载完成后解压缩,可以看到三个目录:

compose-bridge:bridge 网络模式的 docker compose 部署方式,数据库使用 MySQL。
compose-host-network:host 网络模式的 docker compose 部署方式,数据库使用 MySQL。
compose-postgres: bridge 网络模式的 docker compose 部署方式,数据库使用 PostgreSQL。

MacOS 不支持 host network,所以,MacOS 用户只能使用 bridge 模式。

进入 compose-bridge 目录,执行 docker-compose up -d 即可启动。

# docker compose V2版本执行 docker compose up -d (https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command)
docker-compose up -d
# 正常会有以下输出
# Creating mysql      ... done
# Creating redis      ... done
# Creating prometheus ... done
# Creating ibex       ... done
# Creating agentd     ... done
# Creating n9e        ... done
# Creating telegraf   ... done
# docker compose V2版本执行 docker compose ps (https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command)
docker-compose ps
# 正常情况会有以下输出
# NAME                IMAGE                              COMMAND                  SERVICE             CREATED             STATUS              PORTS
# categraf            flashcatcloud/categraf:latest      "/entrypoint.sh"         categraf            2 days ago          Up 2 days
# ibex                ulric2019/ibex:0.3                 "sh -c '/wait && /ap…"   ibex                2 days ago          Up 2 days
# mysql               mysql:5.7                          "docker-entrypoint.s…"   mysql               2 days ago          Up 2 days
# n9e                 flashcatcloud/nightingale:latest   "sh -c '/wait && /ap…"   n9e                 2 days ago          Up 2 days
# prometheus          prom/prometheus                    "/bin/prometheus --c…"   prometheus          2 days ago          Up 2 days
# redis               redis:6.2                          "docker-entrypoint.s…"   redis               2 days ago          Up 2 days

在浏览器输入http://127.0.0.1:17000,默认用户是root,密码是root.2020。

基本使用

添加数据源

在即时查询可以查到 Prometheus 的数据或者直接查看 node-exporter 的仪表盘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值