官方文档:https://prometheus.io/docs/prometheus/latest/getting_started/
其他参考:CentOS7安装部署Prometheus+Grafana
1.安装Prometheus#
官方网站下载二进制安装包:https://prometheus.io/download/
可以选择mac,linux和Windows版本
1 | https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz |
2.修改prometheus配置#
配置文件为prometheus.yml
prometheus采集数据的方法分成推和拉
1.prometheus定时通过exporter暴露的HTTP端口主动去采集监控数据的方式就是拉#
下面就是配置一个exporter采集任务的例子
1 | scrape_configs: |
2.程序主动上报metrics给prometheus的pushgateway则是推#
要主动上报metrics首先要安装pushgateway,参考:prometheus-pushgateway安装
在官方的文档当中,pushgateway唯一推荐使用的场景是在批处理作业运行结果的采集上,其他的建议使用exporter:when-to-use-the-pushgateway
官方地址
1 | https://prometheus.io/download/#pushgateway/ |
下载和安装
1 | wget https://github.com/prometheus/pushgateway/releases/download/v1.4.3/pushgateway-1.4.3.linux-amd64.tar.gz |
启动
1 | ./pushgateway |
然后在prometheus的配置文件中添加pushgateway,注意:需要把pushgateway添加到prometheus的配置中并启动,pushgateway才会正常工作
1 | -job_name: 'pushgateway' |
原生的pushgateway会存储最后上报的指标,不会进行删除,当prometheus过来取数据的时候,会默认取最后上报的数据,也就是即使不上报指标了,在图上也会一直有一条直线存在
如果要支持pushgateway数据自动过期的话,可以使用下面的pushgateway镜像
1 | docker run -d -p 9091:9091 dmathai/prom-pushgateway-ttl:latest --metric.timetolive=60s |
效果如下,如果不上报,过了60s,数据就会中断
也可以使用curl命令上报指标
1 | echo "logic_cpu 5" |curl --data-binary @- http://xx:9091/metrics/job/my_test_job/role/driver/app_name/my+test+job/instance/xxxdeMacBook-Pro.local |
3.启动Prometheus#
1 | ./prometheus --config.file=prometheus.yml |
其默认的存储目录在data目录下
1 | /Users/lintong/software/prometheus-2.36.1.darwin-amd64/data $ ls |
如果要修改的话,可以添加如下配置
1 | ./prometheus --config.file=prometheus.yml --storage.tsdb.path=/data/prometheus |
之后访问9090端口就可以查看dashboar,启动instance和job是配置文件中采集的exporter的地址和名字
也可以在target中看到添加的exporter