安装

docker-compose.yml

version: '3.8'

services:
  # Prometheus 监控服务
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    volumes:
      - ./conf/prometheus.yml:/etc/prometheus/prometheus.yml
      - ./prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
      - '--web.enable-lifecycle'
    ports:
      - "9090:9090"
    networks:
      - monitoring

  # Grafana 可视化平台
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    volumes:
      - ./grafana_data:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_USERS_ALLOW_SIGN_UP=false
    ports:
      - "3000:3000"
    networks:
      - monitoring
    depends_on:
      - prometheus

  # Node Exporter (可选,用于收集主机指标)
  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    restart: unless-stopped
    command:
      - '--path.rootfs=/host'
    network_mode: host
    pid: host
    volumes:
      - '/:/host:ro,rslave'
    deploy:
      mode: global

volumes:
  prometheus_data:
  grafana_data:

networks:
  monitoring:
    driver: bridge

prometheus.yml

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node-exporter'
    static_configs:
      - targets: ['ip:9100']

监控服务访问信息

服务地址

  • Prometheus: http://localhost:9090
  • Grafana: http://localhost:3000
    (默认用户名/密码: admin/admin)

配置 Grafana

添加 Prometheus 数据源

  1. 登录 Grafana
  2. 点击左侧齿轮图标 → Data Sources → Add data source
  3. 选择 Prometheus
  4. URL: http://prometheus:9090
  5. 点击 Save & Test

导入仪表板

方法一:从 Grafana 官方库导入
  1. 登录 Grafana
  2. 点击左侧菜单的 “+” → “Import”
  3. 在 “Import via grafana.com” 输入框中输入以下常用仪表板 ID:
    • Node Exporter Full: 1860
    • Linux Hosts Metrics: 10180
    • Node Exporter Server Metrics: 11074
  4. 点击 “Load”
  5. 选择数据源(如 Prometheus)
  6. 点击 “Import”
方法二:手动导入 JSON 文件
  1. Grafana 仪表板库 下载 JSON 文件
  2. 在 Grafana 中点击 “+” → “Import”
  3. 点击 “Upload JSON file” 上传下载的文件
  4. 选择数据源并导入

可选配置

持久化数据

已配置数据卷,确保 Prometheus 和 Grafana 的数据在容器重启后不会丢失。

添加更多监控目标

编辑 prometheus.yml 文件,添加更多的 scrape_configs 部分来监控其他服务。

配置告警

可以添加 Alertmanager 服务来配置告警规则和通知。

效果图

仪表板 ID:1860
在这里插入图片描述

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐