prometheus 监控磁盘容量:深入浅出监控神器Prometheus
prometheus 监控磁盘容量:深入浅出监控神器Prometheus静态注册:静态的将服务的IP和抓取指标的端口号配置在Prometheus yaml文件的scrape_configs配置下:和动态注册。Prometheus的从被监控服务的注册到指标抓取到指标查询的流程分为五个步骤:(一)服务注册被监控服务在Prometheus中是一个Job存在,被监控服务的所有实例在 Prometheus中是一个target的存在,所以被监控服务的注册就是在 Prometheus中注册一个Job和其所有的target,这个注册分为:静态注册
对于Prometheus中的指标抓取,采用的是Pull模型,默认是一分钟去拉取一次指标,通过Prometheus.yaml配置文件中的scrape_interval配置项配置,Prometheus对外都是用的Pull模型,一个是Pull Exporter的暴露的指标,一个是Pull PushGateway暴露的指标。
(三)指标存储和查询指标抓取后会存储在内置的时序数据库中,Prometheus也提供了PromQL 查询语言给我们做指标的查询,我们可以在Prometheus的WebUI上通过 PromQL,可视化查询我们的指标,也可以很方便的接入第三方的可视化工具,例如grafana。
(四)监控告警prometheus提供了alertmanageer基于promql来做系统的监控告警,当promql查询出来的指标超过我们定义的阈值时,prometheus会发送一条告警信息到alertmanager,manager会将告警下发到配置好的邮箱或者微信。
三、工作原理
Prometheus的从被监控服务的注册到指标抓取到指标查询的流程分为五个步骤:
(一)服务注册
被监控服务在Prometheus中是一个Job存在,被监控服务的所有实例在 Prometheus中是一个target的存在,所以被监控服务的注册就是在 Prometheus中注册一个Job和其所有的target,这个注册分为:静态注册
和动态注册。
静态注册:静态的将服务的IP和抓取指标的端口号配置在Prometheus yaml文件的scrape_configs配置下:
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
以上就是注册了一个名为prometheus的服务,这个服务下有一个实例,暴露的抓取地址是localhost:9090。
动态注册:动态注册就是在Prometheus yaml文件的scrape_configs配置下配置服务发现的地址和服务名,Prometheus会去该地址,根据你提供的服务名动态发现实例列表,在Prometheus中,支持consul,DNS,文件,K8s等多种服务发现机制。基于consul的服务发现:
- job_name: "node_export_consul"
metrics_path: /node_metrics
scheme: http
consul_sd_configs:
- server: localhost:8500
services:
- node_exporter
我们consul的地址就是:localhost:8500,服务名是node_exporter,在这个服务下有一个exporter实例:localhost:9600。
注意:如果是动态注册,最好加上这两个配置,静态注册指标拉取的路径会默认地帮我们指定为 metrics_path:/metrics,所以如果暴露的指标抓取路径不同或者是动态的服务注册,最好加上这两个配置。不然会报错“INVALID“ is not a valid start token,演示下,百度了一下,这里可能是数据格式不统一导致。
metrics_path: /node_metrics
scheme: http
最后可以在webUI中查看发现的实例: