1 . Prometheus是什么
Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。可以胜任运维工作中最重要的一个环节。
架构图
从架构图中可以看出,Prometheus数据采集的方式比较特别,exporters作为Prometheus的数据采集员,将在特定服务器上采集需要的指标,然后通过特定的端口将其暴露供Prometheus采集。
2 组件介绍
- Prometheus Server:Prometheus的主服务,会拉取并存储时间序列数据,通过http方式管理
- Exporter: 负责收集指标推送至pushgateway或者Prometheus server,exporter有很多种,可以自行开发。
- Alertmanager :负责发送报警信息,但规则要在Prometheus上定义。
- Grafana: 负责图形化展示,通过PromQL查询语言展示监控系统状态。
- Push Gateway : 负责接收汇总exporter发送过来的数据,或者接收一次性metrics。
3 Prometheus优缺点
- PromSQL虽然可以实现复杂的逻辑,但是写法也复杂,入门门槛比较高
- Prometheus设计中没有考虑数据持久化的问题。
- Prometheus提供的UI十分简陋,通常要配合Grafana使用
- Prometheus可实现高精度查询,但是要消耗不小的计算资源
- 由于Prometheus是TSDB,所以非常适合存储纯数字类型的时间序列数据,对指标收集性能非常高,但是不适合存储文本类型日志。
后面继续记录完整的Prometheus使用心得