Skip to content

1.运行 node-exporter

shell
# 编写文件 node-exporter.yml
cat <<EOL > /data/docker-compose/node-exporter.yml
version: '3.1'
services:
  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    ports:
      - "39100:9100"
    volumes:
      - "/proc:/host/proc:ro"
      - "/sys:/host/sys:ro"
      - "/:/rootfs:ro"
    restart: always
EOL

# 启动
docker compose -f /data/docker-compose/node-exporter.yml up -d

2.部署 Prometheus

shell
# 创建目录
mkdir /data/prometheus
# 创建配置文件
cat <<EOF > /data/prometheus/prometheus.yml
global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: hart
    metrics_path: /actuator/prometheus
    scheme: http
    static_configs:
      - targets:
        - 127.0.0.1:8080
    relabel_configs:
      - source_labels:
          - __address__
        target_label: instance

  - job_name: linux
    static_configs:
      - targets: ['127.0.0.1:39100']
        labels:
          instance: localhost
EOF
# 编写文件 prometheus.yml
cat <<EOL > /data/docker-compose/prometheus.yml
version: '3.1'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "39090:9090"
    volumes:
      - /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--storage.tsdb.retention.time=5d'
      - '--config.file=/etc/prometheus/prometheus.yml'
    restart: always
EOL
# 启动
docker compose -f /data/docker-compose/prometheus.yml up -d

3.部署 Grafana

shell
# 创建目录
mkdir -p /data/grafana/data
# 权限
chmod 777 -R /data/grafana
# 编写文件 grafana.yml
cat <<EOL > /data/docker-compose/grafana.yml
version: '3.1'
services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "33000:3000"
    volumes:
      - /data/grafana/data:/var/lib/grafana
    restart: always
EOL
# 启动
docker compose -f /data/docker-compose/grafana.yml up -d