参考文章:从零搭建Prometheus监控报警系统
具体参考《基于docker搭建Prometheus+Grafana监控报警系统_风情客家__的博客-CSDN博客》中Prometheus的安装。
运行3个示例metrics接口
然后把这两些接口再次配置到prometheus.yml, 重新载入配置curl -X POST http://localhost:9090/-/reload
pushgateway是为了允许临时作业和批处理作业向普罗米修斯公开他们的指标。
由于这类作业的存在时间可能不够长, 无法抓取到, 因此它们可以将指标推送到推网关中。
Prometheus采集数据是用的pull也就是拉模型,这从我们刚才设置的5秒参数就能看出来。但是有些数据并不适合采用这样的方式,对这样的数据可以使用Push Gateway服务。
它就相当于一个缓存,当数据采集完成之后,就上传到这里,由Prometheus稍后再pull过来。
我们来试一下,首先启动Push Gateway
使用Pushgateway原因:
Prometheus采用pull模式,可能由于不在一个子网或防火墙导致无法直接拉取各target数据
需要将不同数据汇总后,再由Prometheus统一收集
其缺点:
pushgateway宕机影响范围会更大。
prometheus拉取状态up只针对pushgateway,无法做到对每个节点有效。
pushgateway可以持久化推送给它的所有监控数据
prometheus提供了多种语言的sdk,最简单的方式就是通过shell
- 向pushgateway推送数据:
1. 使用Client SDK
2. 直接使用API
3.2.1 直接使用API进行数据推送:
发送更复杂的数据,可以还上instance,表示来源位置:
删除数据:如果某个监控数据不再需要,则只有手动删除才生效,否则仍然采集的为旧值
- 推送一个指标
- 推送多个指标
3.2.3 使用Client SDK向Pushgateway推数据
通过Client SDK推送metric信息到Pushgateway:
1.添加pom依赖:
2.添加配置:在Prometheus的配置文件中配置,让其从Pushgateway上进行数据采集,这里为我Pushgateway的地址端口。配置完后需要重启使其配置生效
3.代码:
具体参考《基于docker搭建Prometheus+Grafana监控报警系统》中Grafana的安装。
Pormetheus的警告由独立的两部分组成。
Prometheus服务中的警告规则发送警告到Alertmanager。
然后这个Alertmanager管理这些警告。包括silencing, inhibition, aggregation,以及通过一些方法发送通知,例如:email,PagerDuty和HipChat。
建立警告和通知的主要步骤:
- 创建和配置Alertmanager
- 启动Prometheus服务时,通过-alertmanager.url标志配置Alermanager地址,以便Prometheus服务能和Alertmanager建立连接。
创建和配置Alertmanager
创建配置文件alertmanager.yml
这里配置成了web.hook的方式,当server通知alertmanager会自动调用webhook http://10.211.55.2:8888/open/test
下面运行altermanager
接下来修改Server端配置报警规则和altermanager地址
修改规则/home/chenqionghe/promethues/server/rules.yml
这条规则的意思是,硬拉超过150公斤,持续一分钟,就报警通知
然后再修改prometheus添加altermanager配置