夜莺(Flashcat)V6监控(一):介绍及其摆设

立山  金牌会员 | 2024-6-22 12:58:49 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 579|帖子 579|积分 1737

(一): 夜莺介绍

    夜莺监控( 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

1.架构分析:

最新版本V6架构图:
这个中心汇聚式是最常用的
还有一种是针对假如网络链路欠好,则要利用下面的摆设方式:

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



2.摆设n9e+categraf+VictoriaMetrics+mysql+redis中心化二进制单机摆设夜莺

name系统配置
flashcatCentos7.92核4G 磁盘100G
(1):下载摆设n9e:  

 Ninghtingale下载地址:Nightingale - 快猫星云 (flashcat.cloud)

下载安装摆设配置mysql和redis :
  
  1. # install mysql
  2. yum -y install mariadb*
  3. systemctl enable mariadb
  4. systemctl restart mariadb
  5. mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
  6. # install redis
  7. yum install -y redis
  8. systemctl enable redis
  9. systemctl restart redis
复制代码

下载n9e包而且导入sql表
  
  1. mkdir -p /opt/n9e && cd /opt/n9e
  2. wget wget https://download.flashcat.cloud/n9e-v6.0.0-ga.3-linux-amd64.tar.gz
  3. tar zxvf n9e-v6.0.0-ga.3-linux-amd64.tar.gz
  4. mysql -uroot -p1234 < n9e.sql
复制代码
 启动n9e,而且查看是否启动,n9e启动的默认端口是17000
  
  1. nohup ./n9e &> n9e.log &
  2. ss -ntpl | grep 17000
复制代码
假如启动成功,n9e 默认会监听在 17000 端口。上面利用 nohup 简单演示,生产环境发起用 systemd 托管。
 配置文件在当前目录 etc/config.toml 中含有 mysql 的连接地址配置,假如连接数据库报错,可以检查一下用户名和密码
夜莺服务端摆设好之后,欣赏器访问 17000 就可以体验相关功能了,默认用户是 root,密码是 root.2020

(2):下载摆设categraf:

 Categraf官方github地址:https://github.com/flashcatcloud/categraf
解压categraf
  1. tar xf categraf-v0.2.38-linux-amd64.tar.gz -C /opt
  2. cd /opt
复制代码
解压完毕后会发现有一个可执行文件categraf和一个文件夹conf,conf文件下面有很多input的文件夹,内里都是每一个插件的配置文件(xxx.toml)config.toml是主配置文件

打开config.toml举行配置
  1. ......
  2. ......                   ##第一步  找到[[writers]]字段
  3. [writer_opt]
  4. batch = 1000
  5. chan_size = 1000000
  6. [[writers]]
  7. url = "http://127.0.0.1:17000/prometheus/v1/write"  ##这里的端口要改成你n9e启动的端口,默认的就是17000,其实就是你n9e的地址
  8. # Basic auth username
  9. ......
  10. ......                  ##第二步  找到[heartbeat]字段
  11. [ibex]
  12. enable = false
  13. ## ibex flush interval
  14. interval = "1000ms"
  15. ## n9e ibex server rpc address
  16. servers = ["127.0.0.1:20090"]
  17. ## temp script dir
  18. meta_dir = "./meta"
  19. [heartbeat]
  20. enable = true                 ##这里的false改为ture 启动heartbeat功能来收集本台主机的信息
  21. # report os version cpu.util mem.util metadata
  22. url = "http://127.0.0.1:17000/v1/n9e/heartbeat"
复制代码
然后直接启动categraf 
  1. nohup ./categraf &>stdout.log &
复制代码
然后可以查看本台主机状态在n9e的web页面查看


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

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来得到线性的性能提拔。且单机版易于配置和运维,



  • 它可以用作普罗米修斯的长期储存。
  • 它可以用作 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是企业版的普罗米修斯。

摆设安装解压
  1. cd /opt
  2. mkdir vm && cd vm
  3. tar xf victoria-metrics-linux-amd64-v1.90.0.tar.gz
  4. ## 我们这里因为是单机点所以用的victoriaMetrics是单机版,解压过后只有一个文件victoria-metrics-prod
复制代码
直接启动VictoriaMetrics
  1. nohup ./victoria-metrics-prod &> stdout.log &
复制代码
他的默认端口是8428 启动后 可以利用下令ss -ntpl查看是否启动,启动成功后假如不指定存储目录他会在当前目录默认创建一个victoria-metrics-data的文件夹来存储数据 假如需要更改存储目录加参数-storageDataPath 即可

修改n9e的配置文件,配置VictoriaMetrics的地址来查看数据
  1. vim /opt/n9e/etc/config.toml
  2. .....
  3. .....
  4. .....      ##在最后找到 [[Pushgw.Writers]]字段
  5. [[Pushgw.Writers]]
  6. # Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
  7. #Url = "http://127.0.0.1:9090/api/v1/write" ##这里注释掉 这个是普罗米修斯的默认的remote-wirte协议的接口,因为我们安装的是vm所以这里注释掉
  8. Url = "http://127.0.0.1:8428/api/v1/write"  ##这里添加为VictoriaMetrics的地址8428的端口
  9. # Basic auth username
  10. BasicAuthUser = ""
  11. # Basic auth password
  12. BasicAuthPass = ""
  13. # timeout settings, unit: ms
  14. Headers = ["X-From", "n9e"]
  15. Timeout = 10000
  16. DialTimeout = 3000
  17. TLSHandshakeTimeout = 30000
  18. ExpectContinueTimeout = 1000
  19. IdleConnTimeout = 90000
  20. # time duration, unit: ms
  21. KeepAlive = 30000
  22. MaxConnsPerHost = 0
  23. MaxIdleConns = 100
  24. MaxIdleConnsPerHost = 100
  25. ## Optional TLS Config
  26. # UseTLS = false
  27. # TLSCA = "/etc/n9e/ca.pem"
  28. # TLSCert = "/etc/n9e/cert.pem"
  29. # TLSKey = "/etc/n9e/key.pem"
  30. # InsecureSkipVerify = false
  31. # [[Writers.WriteRelabels]]
  32. # Action = "replace"
  33. # SourceLabels = ["__address__"]
  34. # Regex = "([^:]+)(?::\\d+)?"
  35. # Replacement = "$1:80"
  36. # TargetLabel = "__address__"
复制代码
重启n9e
  1. pkill n9e
  2. nohup ./n9e &> n9e.log &
复制代码
进入n9e的web页面17000端口添加数据源

 

然后保存 验证是否配置数据源成功
如许就可以通过sql语句查询本机的一些数据信息
还可以创建一些内置的告警规则来告警判断

 

 
点击批量克隆

 

 在这里也可以自己新增加告警规则来判断告警

至此摆设完成
这里再补充一下n9e配置文件存储日志的字段,切片,类似于ELK里的E做切片存储
  1. vim /opt/n9e/etc/config.toml
  2. .....
  3. .....
  4. .....     找到log字段
  5. [Log]
  6. # log write dir
  7. Dir = "logs"     ##这里的意思是日志写到当前目录的logs目录下
  8. # log level: DEBUG INFO WARNING ERROR
  9. Level = "DEBUG"
  10. # stdout, stderr, file
  11. Output = "stdout"
  12. # # rotate by time
  13. # KeepHours: 4       ##这里的意思是我要保存4个小时的n9e日志         
  14. # # rotate by size
  15. # RotateNum = 3       ##这里是按大小来存储日志 存储3个文件,每个文件有256MB大小这么大来存储日志,对应下面的RotateSize字段来配置启动
  16. # # unit: MB
  17. # RotateSize = 256
  18. 如果需要实现日志的存储其他功能 把前面的注释取消掉就可以连通
复制代码

后面还会每周更新这个夜莺系列 还有很多用法,告警,还有一些案列来做,后面的详细的页面功能也会逐一介绍,可以多看一下n9e的config.toml的配置文件来了解更多夜莺的功能。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表