Prometheus 介绍
Prometheus监控报警
什么是Prometheus以及prometheus的特点?
1、是由SoundCloud开发的开源监控报警系统
2、使用的是时间序列数据库TSDB,golang实现的
时间序列数据库:
以时间维度存储连续的数据的集合,由指标(Metric)和一组key/value标签定义的
<metric name>{<label name>=<label value>, ............} |
3、拉模式(PULL-based)
4、白盒&黑盒监控都支持,对DevOps友好
5、社区生态丰富(多语言,各种exporters)
6、单机性能较好
(每秒消费百万级别时间序列,上千个targets)
7、PromQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询
8、不依赖分布式存储,单个服务节点可直接工作
9、通过服务发现或者静态配置发现目标
10、多图形模式以及仪表盘支持(grafana)
prometheus运行流程
组件:
Server:主要负责数据采集和存储,提供的是PromQL查询语句的支持
Alertmanager:警告管理器,用来进行报警的
Pushgetway:支持临时job主动推动指标的中间网关
基本原理
Prometheus server通过HTTP协议周期性抓取被监控组件的状态,在监控主机的时候,由被监控端通过HTTP接口(exporter)发送信息,临时性的job通过中间网关(pushgetway)推送到Prometheus server,其余周期性长的job则使用静态方式直接推送metrics给Prometheus serve,其间可通过多图形界面支持展示,如触发告警,则通过告警管理器(Alertmanager)发送报警。
监控目的:
1、根据历史监控数据,对未来做出预测
2、发生异常时,可以及时报警,可做出相应的措施
3、更加直观的通过可视化图表,做出数据展示