zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Docker 部署 Prometheus

Docker部署 Prometheus
2023-09-11 14:18:11 时间

1.下载镜像

  1.Prometheus

docker pull prom/prometheus

  2.Node Exporter【负责收集 host 硬件和操作系统数据。它将以容器方式运行在所有 host 上】

docker pull prom/node-exporter

2.部署Node Exporter

docker run -d --name=node-exporter \
    -v "/proc:/host/proc" \
    -v "/sys:/host/sys" \
    -v "/:/rootfs" \
    --net=host \
    prom/node-exporter \
    --path.procfs /host/proc \
    --path.sysfs /host/sys \
    --path.rootfs=/rootfs \
    --collector.filesystem.ignored-mount-points="^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"

注意:

  1.这里我们使用了 --net=host,这样 Prometheus Server 可以直接与 Node Exporter 通信

  2.在Docker容器中运行Prometheus Node Exporter,并希望它报告Docker容器主机上文件系统的文件系统空间使用信息,要从Docker容器中的Node Exporter发出主机文件系统信息,容器需要将主机的/路径绑定挂载到容器路径,如/rootfs。然后,需要使用命令行参数--path.rootfs=/rootfs启动节点导出器,以便它知道在哪里可以找到文件系统。

3.部署Prometheus

  1.新建配置文件

mkdir -p /mnt/docker/prometheus
cd /mnt/docker/prometheus/
vi prometheus.yml
global:
  # 设置抓取数据的时间间隔,间隔设置为每15秒一次。默认为每1分钟。
  scrape_interval:     15s
  # 设定抓取数据的超时时间,默认为10s
  scrape_timeout: 15s
  # 设置规则刷新,每15秒刷新一次规则。默认值为每1分钟。
  evaluation_interval: 60s

# 监控报警配置(需要额外安装 alertmanager组件)
alerting:
  alertmanagers:
  - static_configs:
    # 设定alertmanager和prometheus交互的接口,即alertmanager监听的ip地址和端口
    #- targets: ["localhost:9093"]

# 报警规则文件
rule_files:
  #- '/home/deploy/alertmanager/rules/*.yml'

# 普罗米修斯与抓取模块交互的接口配置
scrape_configs:
  # 一定要全局唯一, 采集 Prometheus 自身的 metrics
  - job_name: prometheus
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.1.109:9100']
        labels:
          instance: localhost

  2.部署

docker run -d -p 9090:9090  \
  -v /mnt/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  -v "/etc/localtime:/etc/localtime" \
  --name prometheus \
  --net=host \
  --restart always \
  prom/prometheus