热点聚焦:国产监控之光-夜莺监控(Nightingale)
国产监控之光-夜莺监控(Nightingale)
夜莺是什么?
夜莺是一个服务端组件,类似 Grafana
,可以对接不同的TSDB时序数据库
作为数据源,支持的TSDB时序数据库
如Prometheus
、VictoriaMetrics
、Thanos
等等,只要数据进到这些库里了,夜莺就可以对数据源的数据进行分析、告警、可视化,以及后续的事件处理、告警自愈。
【资料图】
当然,夜莺也有端口接收监控数据,可以跟开源社区常见的各种监控采集器打通,比如Telegraf
、Categraf
、Grafana-agent
、Datadog-agent
、Prometheus
生态的各类Exporter
等等。这些agent
采集了数据推给夜莺,夜莺适配了这些agent
的数据传输协议,所以可以接收这些agent
上报的监控数据,转存到后端对接的数据源,之后就可以对这些数据做告警分析、可视化。
夜莺部署架构
根据生产网络环境,夜莺可以实现中心汇聚式部署方案和边缘下层式混杂部署方案。
对于网络结构简单或小规模网络场景下,采用中心汇聚式部署方案实施比较简单,可以n9e
核心组件采用单机或集群方式搭建,集群模式下前端需架设Nginx
作为软负载或F5
进行硬件设备负载,同时依赖MySQL
和Redis
中间件存储基础的元数据、用户信息等,不存在大数据量问题,因此,不用太考虑性能瓶颈。
Categraf
是夜莺团队开发维护的监控采集侧核心组件,类似Telegraf
、Grafana-Agent
、Datadog-Agent
,希望对所有常见监控对象提供监控数据采集能力,采用All-in-one
的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。Categraf
采集器采集了数据推送给夜莺,然后转存到后端数据源,如TSDB
、ElasticSearch
等。
注意:Categraf不属于夜莺监控系统组件,夜莺定位是服务端组件,不侧重监控数据采集侧。
所有机房网络域下监控数据采集器都直接推数据给n9e
,这个架构最为简单,维护成本最低。当然,前提是要求机房网络域结构简单、规模不大场景,即不太关注跨网络域访问安全问题和大规模跨网络域传输数据网络带宽限制等。
如果非上述场景,则要使用下面的边缘下沉式混杂部署方案:
这个图尝试解释 3 种不同的情形,比如 A 机房和中心网络链路很好,Categraf
可以直接汇报数据给中心n9e
模块,另一个机房网络链路不好,就需要把时序库下沉部署,时序库下沉了,对应的告警引擎和转发网关也都要跟随下沉,这样数据不会跨机房传输,比较稳定。但是心跳还是需要往中心心跳,要不然在对象列表里看不到机器的 CPU、内存使用率。还有的时候,可能是接入的一个已有的Prometheus
,数据采集没有走Categraf
,那此时只需要把Prometheus
作为数据源接入夜莺即可,可以在夜莺里看图、配告警规则,但是就是在对象列表里看不到,也不能使用告警自愈的功能,问题也不大,核心功能都不受影响。
边缘下沉式混杂部署方案中涉及到两个核心组件:n9e-pushgw组件和n9e-alert组件。
n9e-pushgw组件提供类似于remote_write
和remote_read
功能,categraf
采集器将数据通过remote_write
推送给n9e-pushgw
组件,然后转存到tsdb
时序数据,n9e
服务端查询检索数据时通过remote_read
讲求转发到对应机房下的n9e-pushgw
组件。n9e-alert
组件提供基于tsdb
时序库中的指标数据告警功能。
一键部署
笔者已经在公有云上搭建了一套临时环境,可以先登录体验下:
http://124.222.45.207:17000/login 账号:root/root.2020
下面介绍下使用docker-compose
快速一键部署。
1、代码在这里: https://github.com/ccfos/nightingale 。如果有 docker 和 docker-compose 环境,我们就可以一键安装了:
git clone https://github.com/ccfos/nightingale.git cd nightingale/docker docker-compose up -d
2、安装完成之后,查看组件部署运行情况:
[root@VM-4-14-centos docker]# docker-compose ps Name Command State Ports -------------------------------------------------------------------------------------------------------- categraf /entrypoint.sh Up ibex sh -c /wait && /app/ibex s ... Up 0.0.0.0:10090->10090/tcp, 0.0.0.0:20090->20090/tcp mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3406->3306/tcp, 33060/tcp n9e sh -c /wait && /app/n9e Up 0.0.0.0:17000->17000/tcp prometheus /bin/prometheus --config.f ... Up 0.0.0.0:9090->9090/tcp redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
注意,docker中不能有同名组件,比如我在安装过程中出现:ERROR: for prometheus Cannot create container for service prometheus: Conflict. The container name "/prometheus" is already in use by container xxx. You have to remove (or rename) that container to be able to reuse that name。
3、浏览器访问n9e组件暴露的17000端口,即可看到页面,默认账号密码如下:
username = "root" password = "root.2020"
4、访问prometheus组件暴露的9090端口,可以打开Prometheus WebUI:
从Targets界面显示Prometheus接入2个目标采集点,从端口可以识别一个抓取n9e组件监控指标,另一个就是抓取prometheus组件自身指标。
基本使用
1、打开【基础设施】/【机器列表】菜单,该界面提供Categraf
采集点机器管理,在【未归组对象】下就可以看到刚才部署的一个Categraf
采集点:
Categraf 是一个监控采集 Agent,类似 Telegraf、Grafana-Agent、Datadog-Agent,希望对所有常见监控对象提供监控数据采集能力,采用 All-in-one 的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。
Categraf通过Heartbeat心跳服务将节点的状态、内存、CPU、时间偏移、核数、OS等信息上报给n9e组件,进而Web上方便查看。
方便机器列表管理,可以进行分组,如下图我们对机器按照机房地域划分,并创建chengdu业务组:
这里我打开【作为标签使用】开关,该业务组下机器采集数据推送TSDB库时会自动打上busigroup=英文标识标签,方便基于该维度进行数据聚合统计。
【团队】这栏用于权限控制,比如控制哪个团队成员可以对该业务组下机器具有读写权限,或者只读权限等。【人员管理】/【团队管理】页面可以创建、管理团队。
选中机器,点击【批量操作】下【修改业务组】,将机器移入到新创建的业务组里:
还可以选中机器,选择【批量操作】/【绑定标签】,手工为机器打上指定标签,则关联机器指标存储到TSDB时序数据库时会带上这些标签:
2、配置数据源
打开【系统配置】/【数据源】菜单,进入数据源管理界面,选择添加Prometheus数据源:
我这里采用docker compose一键部署,所以这里url可以填写http://prometheus:9090。
2、添加好数据源,打开【时序指标】/【即时查询】菜单:
这个查询基本类似于Prometheus WebUI查询页面,关联数据源,输入PromQL即可查询指标数据,点击Graph还可以展示对应的区间趋势图。
指标cpu_usage_active{busigroup="chengdu",cpu="cpu-total",env="test",ident="categraf01",source="categraf"}
标签说明:
1、busigroup="chengdu"
:这个就是刚才创建业务组时打开【作为标签使用】开关配置的标签;
2、cpu="cpu-total"
:组件暴露指标自身业务标签;
3、env="test"
:刚才在机器上手工绑定标签配置;
4、ident="categraf01"
:机器标识,即Categraf
组件所属主机名;
当然也可以在Categraf
组件config.toml
配置文件中指定hostname
:
5、source="categraf":Categraf组件config.toml配置文件中global.labels配置信息:
[global.labels] source="categraf" # region = "shanghai" # env = "localhost"
总结
夜莺监控系统部署架构简单,对于小规模监控场景下快速搭建一套监控系统来说是比较值得推荐的方式,整体体验也比较友好。但对于大规模监控场景,可能还不是那么的足够完善。
Categraf采集组件
1、categraf
采集器采用推送模式(push),而不是Prometheus
的拉(pull)模式,push模式导致采集器存在状态,即采集器要知道自己要推送给哪个服务后端的配置,少量categraf采集器来说无所谓,但是一旦成千上万采集点,甚至几百采集点,维护成本都是比较高的,特别是后端地址发生变更等。
2、push模式还存在接入权限问题,因为往往服务后端和采集器维护是两拨人,服务后端是运维人员,而采集器是项目组人员维护,比较难于控制接入,可能个别项目组大量接入采集点造成服务端压力过大奔溃,从而影响整个系统运行稳定。
3、push模式还存在推送频率问题,categraf
组件可以配置推送频率,但是只能在采集器端控制,不同项目组运维人员可能配置不同推送频率,难以从全局控制,或者这么个场景:前期采集点少,数据量不大,推送频率5s,但是后面接入的越来越多,存储不够用,需要下调推送频率15s,没有统一修改调整方式。
部署架构优化
边缘下沉式混杂部署方案中categraf
采集器还需要和夜莺后端n9e
组件进行heartbeat
心跳交互,这里可能会存在问题,对于大规模网络下,categraf
会部署成千上万个实例,服务后端n9e
组件维护这些心跳性能:
1、服务后端n9e
组件维护这些心跳对服务性能和网络IO都存在损耗问题,一个心跳交互影响微乎其微,但是放到成千上万个节点心跳这个影响就会扩大;
2、边缘下沉式混杂部署方案往往就是由于网络环境复杂,为了heartbeat
需要打通服务后端和那么多categraf组件网络连通性,可能影响是致命的;
3、n9e
服务后端和categraf
组件心跳传递数据主要:在线状态、CPU%、内存、CPU核数、CPU架构等,这个在线状态更多的是反映后端和categraf
组件连通性,我觉得在线状态应该反映categraf
有没有正常采集指标数据并推送到tsdb
库可能更加合理,查看categraf
采集组件历史一段区间内的在线状态、CPU、内存等,后端还需要考虑存储这些指标数据;
所以,categraf
心跳交互这个逻辑应该移除,将心跳数据以指标方式暴露,并增加一个up指标反映在线状态,在categraf
向n9e-pushgw
组件推送数据时一并存储到tsdb
时序库中。n9e
后端在查询categraf
当前状态或某历史区间在线情况时,都可以通过n9e-pushgw
从tsdb
时序库中拉取展示。
比如中心网络和边缘下沉网络可能有一段时间网络断开,这种只会影响后端过来的查询不能执行,categraf
采集组件本身依然可以正常采集数据并推送到tsdb
时序库,对于categraf
采集器组件来说依然是正常在线的,因为网络域内部是正常的,待网络恢复后,n9e
服务端就可以通过n9e-pushgw
组件从tsdb
时序库中查询出这段时间categraf
是否正常采集、CPU使用率等等情况。
边缘下沉式混杂部署方案不同网络域下TSDB
时序库是割裂的,全局聚合汇总数据暂未发现如何实现:
标签:
-
2022-05-23 16:13:32
上海奉贤等区开展常态化防疫压力测试 有序开放公交、公园、公共服务场所、公共街区商区<
本报上海5月21日电 (记者刘士安、曹玲娟)上海正在奉贤等区开展常态化防疫压力测试。在21日召开的上海市疫情防控工作新闻发布会上,奉
-
2022-05-23 16:13:32
“抗疫 宅家云课堂”,吸引沪上老同志观看50万人次<
由上海市委老干部局主办,上海市老干部大学、市科技助老服务中心承办的“抗疫 宅家云课堂”系列直播讲座自4月12日启动以来,深受老同
-
2022-05-23 16:13:32
“代跑腿”买药、开通绿色通道 丰台为管控区居民提供便捷医疗服务<
“真是太感谢了,解决了我的燃眉之急!”家住假日万恒社区的杨女士对前来送药的居委会工作人员说。 自5月17日6时起,丰台区对青塔街...
-
2022-05-23 16:13:32
上海嘉定:儿童计划免疫接种全部恢复,实行预约制<
在5月22日召开的上海市新冠肺炎疫情防控新闻发布会上,嘉定区副区长王浩介绍,从4月28日开始,嘉定在防范区逐步有序恢复老年人疫苗接种
-
2022-05-23 16:13:32
乡村振兴看新疆 | 种下红樱桃 结出“致富果”<
央广网阿图什5月22日消息(记者 罗成 通讯员 杨林)乡村振兴靠产业,产业发展靠特色。新疆阿图什市阿扎克镇麦依村积极引导农民因地制
-
2023-04-17 17:38:10
热点聚焦:国产监控之光-夜莺监控(Nightingale)
夜莺是一个服务端组件,类似Grafana,可以对接不同的TSDB时序数据库作为数据源,支持的TSDB时序数据库如Pro
-
2023-04-17 16:59:56
足疗机和泡脚桶哪个好?
泡脚桶的好处要比足疗机多些。泡脚桶的主要功能有中药泡脚,按摩脚,臭氧杀菌,促进血液循环,消除疲劳等。
-
2023-04-17 16:02:18
智禹天成环安科技 天津有限公司_对于智禹天成环安科技 天津有限公司简单介绍
1、智禹天成环安科技(天津)有限公司于2018年07月23日成立。2、法定代表人刘振亮,公司经营范围包括:安全技
-
2023-04-17 14:59:56
2022-2023青少年科创精英挑战赛总决赛圆满落幕
为进一步促进全省人工智能教育和普及,由辽宁省人工智能学会和东北大学创新创业学院联合主办的青少年科创精
-
2023-04-17 14:00:27
纯种阿拉斯加犬多少钱一只_阿拉斯加犬幼崽多少钱-全球热头条
1、1、不同地区,不同价格。2、从目前的市场情况来看,不同地区经济发展不同,物价和消费水平不同,阿拉斯
-
2023-04-17 12:51:15
科技大佬上海开聊 张朝阳对话宝马研发董事韦博凡
超乎想象的未来数字情感体验,锁定4月17日21:05,张朝阳对话宝马研发董事韦博凡,更多精彩等你解锁 与BMWDe
-
2023-04-17 11:46:07
“激情国寿 活力绽放”中国人寿东莞分公司举办2023年员工趣味运动会-每日时讯
为认真贯彻落实“全民健身”精神,进一步丰富员工文体活动,培养团队精神,增强公司凝聚力,4月15日,中国
-
2023-04-17 10:54:38
资讯推荐:CBA:深圳马可波罗队将晋级半决赛
4月17日,据CBA联赛微博:依照CBA联赛相关管理规定,CBA公司即日起执行中国篮协相关处罚决定。原定自2023年4月
-
2023-04-17 10:19:52
微擎科技完成1500万Pre-A轮融资
微擎科技是一家软件开发及网络宣传服务提供商,专注于面向全国企业提供软件开发和网络宣传服务。其推出的明
-
2023-04-17 09:29:17
2023年住房公积金缴费标准是多少 来看看住房公积金缴费基数和比例一览 热文
2023公积金缴存基数和比例是多少公积金缴存标准如下社保网小编带您一起来看看最新相关资讯吧。大家都知道,
-
2023-04-17 08:45:15
19条重磅政策 10亿元资金补贴!常州加快推进文商旅融合发展
近日,常州市委、市政府印发了《关于加快推进文商旅融合发展的实施意见》(简称《实施意见》),这是江苏省
-
2023-04-17 07:15:33
违规“老年代步车”禁行禁停进入倒计时 市场有何变化?
违规“老年代步车”禁行禁停倒计时有商家拿“新国标”“代上牌”忽悠人电动三四轮车常被人称作“老年代步车
-
2023-04-17 04:56:36
香农芯创:2022年净利润3.14亿元|世界速讯
香农芯创:2022年净利润3 14亿元,校对,卢茜,香农芯创,公司股东
-
2023-04-16 23:03:31
海口登上五一热门目的地TOP10,游玩攻略→-环球通讯
本月末就要迎来五一假期啦大家安排好出游计划了吗?一些旅游平台的“五一”假日旅游前瞻数据显示国内游订单
-
2023-04-16 20:55:59
京津冀中小学生主题演讲比赛决赛落幕
4月15日,“冰雪向未来”——京津冀中小学生主题演讲比赛决赛在国家游泳中心“水立方”成功举办。本次主题
-
2023-04-16 19:09:24
广东省丧葬抚恤待遇新标准?可以领多少钱?_世界头条
广东省丧葬抚恤待遇新标准?可以领多少钱?社保网小编整理如下。依照相关法律法定,参与企业职工基本养老保
-
2023-04-16 17:06:46
贝瑞基因(000710.SZ):控股股东高扬及其一致行动人拟转让所持3.8085%股份予黄麒玮 天天观焦点
格隆汇4月16日丨贝瑞基因公布,公司于近日收到公司控股股东高扬及其一致行动人侯颖的通知,高扬及侯颖于202
-
2023-04-16 15:40:51
名人传贝多芬传内容概括_名人传之贝多芬传的内容梗概-环球热点
1、贝多芬作为人类历史上最伟大的音乐家之一,集古典音乐之大成,开创了浪漫主义音乐的先河。2、贝多芬的童
-
2023-04-16 15:33:30
给 17 岁男孩的圣诞礼物创意
即使是17岁的男孩也喜欢收礼物。考虑到您的节日礼物清单上所有难以购买的人,您可能最容易为十几岁的男孩挑
-
2023-04-16 13:47:15
2023年公司人力资源部工作计划(十四篇)_天天时快讯
人生天地之间,若白驹过隙,忽然而已,我们又将迎来新的喜悦、新的收获,一起对今后的学习做个计划吧。大家
-
2023-04-16 11:51:33
youraisemeup是什么意思呀_you raise me up是什么意思
1、歌名:Youraisemeup歌手:westlife作曲:RolfLøvland作词:Brendan
-
2023-04-16 10:00:59
未来2年,城市“新型穷人”越来越多,有车有房的也在其中?
文|拆东墙编辑|布泉在阅读此文前,诚邀您点击一下“关注”,既方便您进行讨论与分享,又给您带来不一样的参
-
2023-04-16 08:39:19
全球焦点!微软叫停新版xboxhome测试:玩家反馈称太拥挤
微软今天发布新闻稿,面向Alpha和AlphaSkip频道的XboxInsider项目玩家,宣布停止XboxHomeExperience测试。
-
2023-04-16 03:00:16
心底
1、心底,是汉语词语,拼音是xīndǐ。2、意思是指心里,内心深处,出处《爱远山》。本文到此分享完毕,希
-
2023-04-15 22:25:48
前瞻|山东泰山明晚战申花,两队均折损锋线大将,谁更胜一筹?
记者季禹4月15日发自上海4月16日晚19:35,泰山队即将开启全新2023赛季,球队将在客场对阵上海申花。冬窗期间
-
2023-04-15 20:27:39
月薪8万招老板 当事员工回应:没开玩笑 相当于找投资人
月薪8万招老板当事员工回应:没开玩笑相当于找投资人
-
2023-04-15 18:43:29
智己汽车与斑马智行签署战略合作协议 共创下一代智能座舱
【智己汽车与斑马智行签署战略合作协议共创下一代智能座舱】记者获悉,今日,智己汽车携手车载操作系统科技
-
2023-04-15 17:09:42
【直击引领区】浦东“一网统管”城市大脑上线五周年,“十大标杆场景”揭榜挂帅启动_全球热点
今年是浦东开发开放33周年,浦东“一网统管”城市大脑也迎来了上线五周年。过去5年,城市大脑实现从1 0到4
-
2023-04-15 15:52:27
TCL 推出 C12G 系列电视:可选 98 英寸,2000 尼特亮度-天天热闻
IT之家4月15日消息,TCL今日推出C12G系列QD-MiniLED电视,65英寸售价10999元,75英寸售价13999元,85英寸售
-
2023-04-15 13:58:42
明年起违规电动车禁止上路!合规电动三、四轮车尽快办理注册登记 环球时讯
工人日报-中工网记者周倩4月15日是第八个全民国家安全教育日,4月14日,北京市公安局召开主题发布会,通报
-
河钢股份董秘回复:公司一直严格按照证监会及交易所的相关规定履行信息披露义务
2022-12-30 09:12:58 -
借呗逾期28天影响征信吗
2022-12-30 00:38:36 -
河南少林寺门票日常免票政策|前沿热点
2022-12-29 19:05:32 -
张新成:以青春之我、奋斗之我书写光影华章-通讯
2022-12-29 17:33:48 -
今日看点:嘉祥新冠疫苗第四针在哪打?地址及电话一览表
2022-12-29 15:33:17 -
ETH-USDT:区间震荡,等待流动性回归-热点聚焦
2022-12-29 13:10:39 -
全球即时看!招商宏观:美国经济的韧性及对中国放开后的启示
2022-12-29 11:10:39