docker构建Prometheus监控系统

请注意,本文章只提供如何使用docker部署prometheus,使用prometheus请查看其他章节。

部署Prometheus

创建持久存储目录:

mkdir -p /data/prometheus/config
mkdir -p /data/prometheus/data
mkdir -p /data/prometheus/rules

准备prometheus.yml文件:

cat /data/prometheus/config/prometheus.yml
global:
  scrape_interval: 15s 
  evaluation_interval: 15s
alerting:
  alertmanagers:
    - static_configs:
        - targets: ['10.0.0.38:9093']
rule_files:
  - "/usr/local/prometheus/rules/*.yml"
scrape_configs:
  - job_name: "node_exporter"
    static_configs:
      - targets: ["10.0.0.38:9100"]

使用docker运行Prometheus:

docker run -d \
--privileged=true \
-u root \
--restart=always \
-p 9090:9090 \
-v /data/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /data/prometheus/data:/prometheus \
-v /data/prometheus/rules:/usr/local/prometheus/rules \
--name prometheus \
prom/prometheus:latest \
--storage.tsdb.retention.time=100d \
--config.file=/etc/prometheus/prometheus.yml

docker ps 
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                       NAMES
407f3c48bfe5   prom/prometheus:latest   "/bin/prometheus --s…"   31 seconds ago   Up 31 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus

20250825184728

部署Grafana

创建持久存储目录:

mkdir -p /data/grafana/data
chmod 777 /data/grafana/data

使用docker运行Grafana:

docker run -d \
-p 3000:3000 \
--name grafana \
-v /data/grafana/data:/var/lib/grafana \
-v /etc/localtime:/etc/localtime \
grafana/grafana:latest

docker ps 
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                       NAMES
779f3452a486   grafana/grafana:latest   "/run.sh"                6 seconds ago    Up 5 seconds    0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana

20250825185623

部署Alertmanager

创建持久存储目录:

mkdir -p /data/alertmanager
chmod 777 /data/alertmanager

准备alertmanager.yml文件:

vim /data/alertmanager/alertmanager.yml
global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.126.com:25'
  smtp_from: 'nextgo@126.com'
  smtp_auth_username: 'nextgo@126.com'
  smtp_auth_password: 'RXGFEHFQCLXAMFTP'
  smtp_require_tls: false
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 5m
  repeat_interval: 1m
  receiver: 'mail'
receivers:
- name: 'mail'
  email_configs:
  - to: 'nextgo@126.com'

使用Docker运行Alertmanager:

docker run -d \
-p 9093:9093 \
--name alertmanager \
-v /data/alertmanager/:/etc/alertmanager/ \
-v /etc/localtime:/etc/localtime \
prom/alertmanager:latest \
--config.file=/etc/alertmanager/alertmanager.yml

docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                                       NAMES
8c635f547d4f   prom/alertmanager:latest   "/bin/alertmanager -…"   4 seconds ago    Up 3 seconds    0.0.0.0:9093->9093/tcp, :::9093->9093/tcp   alertmanager

20250825190105

部署node_exporter

docker run -d \
-p 9100:9100 \
--restart=always \
--name node-exporter \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter:latest

docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                       NAMES
3b3cf227bb80   prom/node-exporter:latest   "/bin/node_exporter"     45 seconds ago   Up 44 seconds   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node-exporter
posted @ 2025-07-31 22:16  阿峰博客站  阅读(15)  评论(0)    收藏  举报