大家好,我是小白。今天给大家讲解一下云原生界的监控扛把子普罗米修斯Prometheus。
一、开源监控方案
开源监控系统种类繁多,随着这么多年技术的革新,云计算大数据等技术的发展, 目前还比较流行的是Prometheus、Nightingale、Open-falcon、Zabbix.
大家感兴趣可以自行Google了解一下这些监控系统,我理解各有利弊吧,根据实际场合选择最合适的吧 ,总而言之,Prometheus更适合云场景下吧。
二、Prometheus简介
Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。
Prometheus作为新一代的云原生监控系统,目前已经有超过650+位贡献者参与到Prometheus的研发工作上,并且超过120+项的第三方集成。
三、Prometheus优缺点
优点:
*自定义多维数据模型(时序列数据由metric名和一组key/value标签组成)
*非常高效的存储 平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。
*在多维度上灵活且强大的查询语言(PromQl), 数据查询语句表现力更强大,内置更强大的统计函数。
*不依赖分布式存储,支持单主节点工作
*通过基于HTTP的pull方式采集时序数据
*可以通过push gateway进行时序列数据推送(pushing)
*可以通过服务发现或者静态配置去获取要采集的目标服务器
*多种可视化图表及仪表盘支持
*支持对云或容器的监控,其他大多数监控系统主要对主机监控。
缺点:
*Prometheus 是基于 Metric 的监控,不适用于日志(Logs)、事件(Event)、调用链(Tracing)。
*Prometheus 默认是 Pull 模型,HTTP请求 target的url 地址, 合理规划你的网络,尽量不要转发。
*Prometheus不提供持久的长期存储、异常检测、自动水平缩放和用户管理,需要合理选择 Federate、Cortex、Thanos等方案。
四、Prometheus监控全家桶
Prometheus主要由Prometheus Server、Pushgateway、Job/Exporter、Service Discovery、Alertmanager、Dashboard这6个核心模块构成。Prometheus通过服务发现机制发现target,这些目标可以是长时间执行的Job,也可以是短时间执行的Job,还可以是通过Exporter监控的第三方应用程序。被抓取的数据会存储起来,通过PromQL语句在仪表盘等可视化系统中供查询,或者向Alertmanager发送告警信息,告警会通过页面、电子邮件、钉钉信息或者其他形式呈现。
看下效果~
网友评论