开源监控:Prometheus

开源的系统监控及告警工具,适用于以服务器为中心,高动态 面向服务架构 的监控;

架构图:

Prometheus architecture

prometheus server:核心,据配置采集数据,服务发现,数据存储

prometheus targets:探针exporter提供采集接口,或应用本身提供的支持promethenus数据模型采集接口

pushgateway:为部分push场景提供插件,监控数据先推送到pushgateway,再由server采集push

service discover:支持据配置file_sd监控本地配置文件的方式发现服务,支持配置监听kubernetes的api动态发现服务

alertmanager:prometheus告警插件,发送邮件/pagerduty/hipchat等

流程:

server配置探针暴露的端口地址及采集间隔时间,按时间间隔通http访问探针

探针通调用接口的方式获取监控数据并对应指标返回给server存储,如果间隔内没完成采集,这部分数据丢失

据server采集配置指标,分析采集的数据,据情况发送消息到alertmanager

alertmanager据本地配置处理告警信息:告警分组,抑制不重复,沉默

特点:

  • 多维的数据模型(基于时间序列的k/v键值对)

  • 灵活的查询及聚合语句(PromQL)

  • 不依赖分布式存储,节点自治

  • 基于HTTP的pull模式采集时间序列数据

  • 可以使用pushgateway(prometheus的可选中间件)实现push模式

  • 可以使用动态服务发现或静态配置采集的目标机器

  • 支持多种图形及仪表盘

强调可靠性,以可能丢失少量数据为代价保证系统可用性,不适应100%数据准确率的系统

概念:

数据模型:

储存时序数据(按相同时序以时间维度存连续数据集合)

时序time series由名字,一组key/value标签定义,具有相同名字及标签属于相同时序

时序:

counter:收集数据按某趋势(增/减)变化,常记录服务请求总量,错误总数

gauge:搜集数据的一个瞬间,记录内存使用率,磁盘使用率

histogram:由<basename>_bucket{le="<upper inclusive bound>"}<basename>_bucket{le="+Inf"}<basename>_sum<basename>_count 组成,一段时间内对数据采样统计

summary:由<basename>{quantile="<φ>"}<basename>_sum<basename>_count组成,一段时间内采样结果,存了quantile数据

配置文件很重要,监控粒度细,消耗资源

谢谢分享:
https://www.cnblogs.com/yangxiaoyi/p/7398156.html

https://www.liangzl.com/editorImages/cawler/20180719223949_776.jpg

官网https://prometheus.io/docs/introduction/overview/

发布了431 篇原创文章 · 获赞 155 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/ma15732625261/article/details/90678561