赞
踩
夜莺监控( Nightingale )是一款国产、开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体。于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 60 多个版本。从 v5 版本开始与 Prometheus、VictoriaMetrics、Grafana、Telegraf、Datadog 等生态紧密协同集成,提供开箱即用的企业级监控分析和告警能力,已有众多企业选择将 Prometheus + AlertManager + Grafana 的组合方案升级为使用夜莺监控。
夜莺监控,由滴滴开发和开源,并于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的第一个开源项目。夜莺监控的核心开发团队,也是Open-Falcon项目原核心研发人员
官网链接:快猫星云Flashcat | 云原生监控 | 混合云监控 | 稳定性保障体系
现在夜莺的版本已经更新迭代到V6版本
Ninghtingale下载地址:Nightingale - 快猫星云 (flashcat.cloud)
Categraf下载地址:Categraf - 快猫星云 (flashcat.cloud)
Categraf官方github地址:https://github.com/flashcatcloud/categraf
最新版本V6架构图:
这个中心汇聚式是最常用的
还有一种是针对如果网络链路不好,则要使用下面的部署方式:
Mysql:所有的告警信息,配置信息(比如普罗米修斯的),告警规则等等都存储在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:nginx做7层代理
categraf: 是夜莺监控的默认的自制的数据采集器
name | 系统 | 配置 |
flashcat | Centos7.9 | 2核4G 磁盘100G |
Ninghtingale下载地址:Nightingale - 快猫星云 (flashcat.cloud)
下载安装部署配置mysql和redis :
- # install mysql
- yum -y install mariadb*
- systemctl enable mariadb
- systemctl restart mariadb
- mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
-
- # install redis
- yum install -y redis
- systemctl enable redis
- systemctl restart redis
下载n9e包并且导入sql表
- mkdir -p /opt/n9e && cd /opt/n9e
- wget wget https://download.flashcat.cloud/n9e-v6.0.0-ga.3-linux-amd64.tar.gz
- tar zxvf n9e-v6.0.0-ga.3-linux-amd64.tar.gz
- mysql -uroot -p1234 < n9e.sql
启动n9e,并且查看是否启动,n9e启动的默认端口是17000
- nohup ./n9e &> n9e.log &
- ss -ntpl | grep 17000
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。
配置文件在当前目录 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
Categraf官方github地址:https://github.com/flashcatcloud/categraf
解压categraf
- tar xf categraf-v0.2.38-linux-amd64.tar.gz -C /opt
- cd /opt
解压完毕后会发现有一个可执行文件categraf和一个文件夹conf,conf文件下面有很多input的文件夹,里面都是每一个插件的配置文件(xxx.toml)config.toml是主配置文件
打开config.toml进行配置
- ......
- ...... ##第一步 找到[[writers]]字段
- [writer_opt]
- batch = 1000
- chan_size = 1000000
-
- [[writers]]
- url = "http://127.0.0.1:17000/prometheus/v1/write" ##这里的端口要改成你n9e启动的端口,默认的就是17000,其实就是你n9e的地址
-
- # Basic auth username
-
-
- ......
- ...... ##第二步 找到[heartbeat]字段
- [ibex]
- enable = false
- ## ibex flush interval
- interval = "1000ms"
- ## n9e ibex server rpc address
- servers = ["127.0.0.1:20090"]
- ## temp script dir
- meta_dir = "./meta"
-
- [heartbeat]
- enable = true ##这里的false改为ture 启动heartbeat功能来收集本台主机的信息
-
- # report os version cpu.util mem.util metadata
- url = "http://127.0.0.1:17000/v1/n9e/heartbeat"
然后直接启动categraf
nohup ./categraf &>stdout.log &
然后可以查看本台主机状态在n9e的web页面查看
VictoriaMetrics官方文档:VictoriaMetrics: Simple & Reliable Monitoring for Everyone
Github下载地址:Releases · VictoriaMetrics/VictoriaMetrics (github.com)
VictoriaMetrics 架构简单,可靠性高,在性能,成本,可扩展性方面表现出色,社区活跃,且和 Prometheus 生态绑定紧密。如果单机版本的 Prometheus 无法在容量上满足贵司的需求,可以使用 VictoriaMetrics 作为时序数据库。
VictoriaMetrics 提供单机版和集群版。如果您的每秒写入数据点数小于100万(这个数量是个什么概念呢,如果只是做机器设备的监控,每个机器差不多采集200个指标,采集频率是10秒的话每台机器每秒采集20个指标左右,100万/20=5万台机器),VictoriaMetrics 官方默认推荐您使用单机版,单机版可以通过增加服务器的CPU核心数,增加内存,增加IOPS来获得线性的性能提升。且单机版易于配置和运维,
可以说VictoriaMetrics是企业版的普罗米修斯。
部署安装解压
- cd /opt
- mkdir vm && cd vm
- tar xf victoria-metrics-linux-amd64-v1.90.0.tar.gz
- ## 我们这里因为是单机点所以用的victoriaMetrics是单机版,解压过后只有一个文件victoria-metrics-prod
直接启动VictoriaMetrics
nohup ./victoria-metrics-prod &> stdout.log &
他的默认端口是8428 启动后 可以使用命令ss -ntpl查看是否启动,启动成功后如果不指定存储目录他会在当前目录默认创建一个victoria-metrics-data的文件夹来存储数据 如果需要更改存储目录加参数-storageDataPath 即可
修改n9e的配置文件,配置VictoriaMetrics的地址来查看数据
- vim /opt/n9e/etc/config.toml
- .....
- .....
- ..... ##在最后找到 [[Pushgw.Writers]]字段
- [[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 = ""
- # timeout settings, unit: ms
- Headers = ["X-From", "n9e"]
- Timeout = 10000
- DialTimeout = 3000
- TLSHandshakeTimeout = 30000
- ExpectContinueTimeout = 1000
- IdleConnTimeout = 90000
- # time duration, unit: ms
- KeepAlive = 30000
- MaxConnsPerHost = 0
- MaxIdleConns = 100
- MaxIdleConnsPerHost = 100
- ## Optional TLS Config
- # UseTLS = false
- # TLSCA = "/etc/n9e/ca.pem"
- # TLSCert = "/etc/n9e/cert.pem"
- # TLSKey = "/etc/n9e/key.pem"
- # InsecureSkipVerify = false
- # [[Writers.WriteRelabels]]
- # Action = "replace"
- # SourceLabels = ["__address__"]
- # Regex = "([^:]+)(?::\\d+)?"
- # Replacement = "$1:80"
- # TargetLabel = "__address__"
重启n9e
- pkill n9e
- nohup ./n9e &> n9e.log &
进入n9e的web页面17000端口添加数据源
然后保存 验证是否配置数据源成功
这样就可以通过sql语句查询本机的一些数据信息
还可以创建一些内置的告警规则来告警判断
点击批量克隆
在这里也可以自己新增加告警规则来判断告警
至此部署完成
这里再补充一下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
-
-
- 如果需要实现日志的存储其他功能 把前面的注释取消掉就可以连通
后面还会每周更新这个夜莺系列 还有很多用法,告警,还有一些案列来做,后面的详细的页面功能也会一一介绍,可以多看一下n9e的config.toml的配置文件来了解更多夜莺的功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。