一、认识Prometheus
Prometheus是一款开源的、自带时序数据库的监控告警系统。目前,Prometheus已经成为Kubernetes集群中监控告警系统的标配。Prometheus的架构如下图所示:
Prometheus通过规则对Kubernetes集群中的数据源做服务发现(Service Dicovery),再从数据源中抓取数据,保存在它的时序数据库TSDB中,再根据配置的告警规则,将数据推送给AlterManager服务,做告警信息的推送。同时,Prometheus中也暴露了HTTP指标查询接口,通过PromQL(一种特定的查询语法)可以将收集的数据查询并展示出来。
从上图中可以看出,Prometheus主要从两种数据源抓取指标:PushGateway和Exporters。PushGateway指的是服务将指标数据主动推给PushGateway服务,Prometheus再异步从PushGateway服务中抓取。而Exports则主动暴露了HTTP服务接口,Prometheus定时从接口中抓取指标。
在Istio中,各个组件是通过暴露HTTP接口的方式让Prometheus定时抓取的(采用了Exporters的方式)。在Kubernetes集群中,Istio安装完成后,会在istio-system的命名空间中部署Prometheus,并将Istio组件的各相关指标的数据源默认配置在Prometheus中。
二、启动Prometheus
1