下载docker镜像
docker pull prom/prometheus
docker pull prom/node-exporter
启动
node-exporter
该程序用以采集机器内存等数据
启动脚本
docker run -d -p 9100:9100 prom/node-exporter
ss -anptl | grep 9100
启动截图
prometheus
启动脚本
# 3b907f5313b7 为镜像id
docker run -d --name prometheus -p 9090:9090 3b907f5313b7
启动截图
映射配置文件及自定义配置
复制配置文件
配置存放路径此处以/opt/start/prometheus/conf/prometheus为例
cd /opt/start/prometheus/conf/prometheus
# 进入容器
docker exec -it prometheus /bin/sh
# 到目的文件夹下执行命令进行复制
docker cp grafana:/usr/share/grafana/conf/defaults.ini ./
停止任务并删除容器
docker stop prometheus
docker rm prometheus
修改配置prometheus.yml
- 查看node-exporter网络地址
docker inspect node-exporter |grep Address
- 修改配置
vim /opt/start/prometheus/conf/prometheus/prometheus.yml
修改配置(job_name和targets),其中targets为为上面安装的node-exporter对应的网络地址
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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: ["172.17.0.4:9100"]
创建容器(带文件映射,方便后续修改配置)
# 最后面为镜像id,也可以通过REPOSITORY:TAG来替换
docker run -d --name prometheus -v /opt/start/prometheus/conf/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -p 9090:9090 3b907f5313b7# 查看运行状态
docker ps
检查状态
- 登录prometheus界面(ip:9090)
- 点击status -> targets, 查看Status, Up表示正常