tonglin0325的个人主页

Prometheus使用教程

官方文档:https://prometheus.io/docs/prometheus/latest/getting_started/

其他参考:CentOS7安装部署Prometheus+Grafana
 

1.安装Prometheus#

官方网站下载二进制安装包:https://prometheus.io/download/

可以选择mac,linux和Windows版本

1
2
3
https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz
tar -zxvf prometheus-2.36.1.linux-amd64.tar.gz

  

2.修改prometheus配置#

配置文件为prometheus.yml

prometheus采集数据的方法分成推和拉

1.prometheus定时通过exporter暴露的HTTP端口主动去采集监控数据的方式就是拉#

下面就是配置一个exporter采集任务的例子

1
2
3
4
5
6
7
8
9
10
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ["xx:xx"]

2.程序主动上报metrics给prometheus的pushgateway则是推#

要主动上报metrics首先要安装pushgateway,参考:prometheus-pushgateway安装

在官方的文档当中,pushgateway唯一推荐使用的场景是在批处理作业运行结果的采集上,其他的建议使用exporter:when-to-use-the-pushgateway

官方地址

1
2
https://prometheus.io/download/#pushgateway/

下载和安装

1
2
3
wget https://github.com/prometheus/pushgateway/releases/download/v1.4.3/pushgateway-1.4.3.linux-amd64.tar.gz
tar -zxvf pushgateway-1.4.3.linux-amd64.tar.gz

启动 

1
2
./pushgateway

然后在prometheus的配置文件中添加pushgateway,注意:需要把pushgateway添加到prometheus的配置中并启动,pushgateway才会正常工作

1
2
3
4
5
6
7
8
-job_name: 'pushgateway'
scrape_interval: 30s
honor_labels: true #加上此配置exporter节点上传数据中的一些标签将不会被pushgateway节点的相同标签覆盖
static_configs:
- targets: ['localhost:9091']
labels:
instance: pushgateway

原生的pushgateway会存储最后上报的指标,不会进行删除,当prometheus过来取数据的时候,会默认取最后上报的数据,也就是即使不上报指标了,在图上也会一直有一条直线存在

如果要支持pushgateway数据自动过期的话,可以使用下面的pushgateway镜像

1
2
docker run -d -p 9091:9091 dmathai/prom-pushgateway-ttl:latest --metric.timetolive=60s

效果如下,如果不上报,过了60s,数据就会中断

也可以使用curl命令上报指标

1
2
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
2
./prometheus --config.file=prometheus.yml

其默认的存储目录在data目录下

1
2
3
/Users/lintong/software/prometheus-2.36.1.darwin-amd64/data $ ls
chunks_head lock queries.active wal

如果要修改的话,可以添加如下配置

1
2
./prometheus --config.file=prometheus.yml --storage.tsdb.path=/data/prometheus

之后访问9090端口就可以查看dashboar,启动instance和job是配置文件中采集的exporter的地址和名字

也可以在target中看到添加的exporter