夜莺监控初识
夜莺监控( Nightingale )是一款国产、开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体。于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 60 多个版本。从 v5 版本开始与 Prometheus、VictoriaMetrics、Grafana、Telegraf、Datadog 等生态紧密协同集成,提供开箱即用的企业级监控分析和告警能力,已有众多企业选择将 Prometheus + AlertManager + Grafana 的组合方案升级为使用夜莺监控。
1. 夜莺的架构介绍
2.部署架构
2.1 中心汇聚式
服务端主模块n9e:可以部署多个 n9e 实例组成集群,n9e 依赖 2 个存储,数据库、Redis,可以使用 MySQL 或 Postgresql,自己按需选用。
n9e:提供的是 HTTP 接口,前面负载均衡可以是 4 层的,也可以是 7 层的,选用 Nginx 就可以了。
n9e 这个模块接收到数据之后,需要转发给后端的时序库,时序库可以 Prometheus或者VictoriaMetrics(推荐)
mysql:用来存放用户配置信息,如告警规则,用户信息,监控大盘等。
数据采集agent:可以是Categraf、Telegraf、 Grafana-agent、Datadog-agent,exporter,部署直接使用Categraf,原来已使用 Prometheus通过exporter采集的可以直接将 Prometheus数据源接入n9e
这种方案就是建立一个 N9e 集群,其他 region 的监控数据都往这一个集群发送数据,这要求中心集群和其他 region 要有很好的网络连接,这个架构的特点是简单,维护成本比较低。
2.2 边缘下沉式混杂部署方案
这种架构主要是针对网络不好的情况:
- 把时序数据库 TSDB、转发网关、告警引擎都下沉到具体的 Region,由 Region 自己的来处理。不过 Region 依然需要和中心集群建立心跳连接,用户还是可以通过中心集群的监控面板查看其他 Region 的监控信息。
- 对于已有 Prometheus 的情况,也可以直接将 Prometheus 作为数据源接入即可。
3. 夜莺server部署
3.1 redis部署
[root@rocky8 ~]#yum install -y redis
[root@rocky8 ~]#systemctl enable --now redis.service
Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
3.2 Victoria-Metrics时序库部署
[root@rocky8 ~]#wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.90.0/victoria-metrics-linux-amd64-v1.90.0.tar.gz
[root@rocky8 ~]#tar xf victoria-metrics-linux-amd64-v1.90.0.tar.gz
[root@rocky8 ~]#nohup ./victoria-metrics-prod &>vm.log &
3.3 安装 N9e
# 下载最新版本的二进制包
wget https://github.com/ccfos/nightingale/releases/download/v6.0.0-ga.3/n9e-v6.0.0-ga.3-linux-amd64.tar.gz
# 安装
[root@rocky8 ~]#mkdir /app/n9e
[root@rocky8 ~]#tar -xf n9e-v6.0.0-ga.3-linux-amd64.tar.gz -C /app/n9e
# 修该配置文件
[root@rocky8 etc]#vim config.toml
[[Pushgw.Writers]]
Url = "http://127.0.0.1:8428/api/v1/write"
# 启动
[root@rocky8 n9]#nohup ./n9e &>n9e.log &
在浏览器输入http://127.0.0.1:17000
,然后输入用户名root
,密码root.2020
即可登录系统
3.4 安装 Categraf
Categraf 是一个监控采集 Agent,会将采集到的信息推送到 TSDB
[root@rocky8 app]#mkdir /app/categraf
[root@rocky8 app]#wget https://download.flashcat.cloud/categraf-v0.2.38-linux-amd64.tar.gz
[root@rocky8 app]#tar xf categraf-v0.2.38-linux-amd64.tar.gz -C /app/categraf/
# 修改配置文件
[root@rocky8 conf]#vim config.toml
[[writers]]
url = "http://127.0.0.1:17000/prometheus/v1/write"
[heartbeat]
enable = true
# 启动
[root@rocky8 categraf-v0.2.38-linux-amd64]#nohup ./categraf &>categraf.log &
添加数据源
看时序数据指标,是查询不到的,因为没有添加数据源
在系统配置->数据源处添加数据源
最后可以通过内置的仪表盘查看主机的监控数据