Docker-compose Prometheus Grafana 安装

环境准备

复制代码
#要在 Vim 中默认启用 set paste 和 set number,
vim ~/.vimrc
#在 .vimrc 文件中添加以下内容:
set paste
set number

安装 Docker Compose

复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/2.31.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

目录

复制代码
/usr/prometheus-grafana

配置 Prometheus

创建 Prometheus 配置文件

vim prometheus.yml

复制代码
global:
  scrape_interval: 15s  # 默认抓取间隔

scrape_configs:
  # 监控 Prometheus 自身
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  # 监控 Node Exporter
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9910']

配置 Docker Compose

vim docker-compose.yml

复制代码
version: '3.8'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - /usr/prometheus-grafana/data:/prometheus
    ports:
      - "9090:9090"
    restart: always

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    volumes:
      - grafana-data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
    ports:
      - "3000:3000"
    restart: always

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    ports:
      - "9910:9910"
    restart: always

volumes:
  grafana-data:

说明

  • Prometheus 运行在端口 9090

  • Grafana 运行在端口 3000,默认用户名和密码为 admin

  • node-exporter 用于监控主机系统的硬件和操作系统指标。

启动服务

复制代码
#目录
/usr/prometheus-grafana
#权限
sudo chmod -R 777 /usr/prometheus-grafana
#启动
docker-compose up -d
docker ps
#停止所有服务
docker-compose down

验证服务

复制代码
#prometheus url
http://127.0.0.1:9090
点击 Status -> Targets,查看 node-exporter 是否处于 UP 状态

#Grafana
http://127.0.0.1:3000,默认用户名和密码为 admin/admin
账户
admin
密码
n0R35C42os1dlSkJ

配置添加代码端口4000

vim prometheus.yml

复制代码
global:
  scrape_interval: 15s  # 默认抓取间隔

scrape_configs:
  # 监控 Prometheus 自身
  - job_name: 'prometheus'
    static_configs:
      - targets:
          - 'localhost:9090'  # Prometheus 自身的地址,通常是 localhost:9090

  # 监控 Node Exporter
  - job_name: 'node-exporter'
    static_configs:
      - targets:
          - 'node-exporter:9100'  # Node Exporter 地址,默认端口是 9100

  # 监控 go-zero 应用 - API
  - job_name: 'go-zero-api'
    static_configs:
      - targets:
          - '127.0.0.1:4000'  # go-zero API 服务地址

  # 监控 go-zero 应用 - RPC
  - job_name: 'go-zero-rpc'
    static_configs:
      - targets:
          - '127.0.0.1:4001'  # go-zero RPC 服务地址

  # 监控 etcd 服务
  - job_name: 'etcd'
    metrics_path: '/metrics'  # etcd 默认的 metrics 路径
    static_configs:
      - targets:
          - '127.0.0.1:2379'  # etcd 服务的地址

  # 监控 Apollo 配置中心
  - job_name: 'apollo'
    metrics_path: '/prometheus'  # Apollo 暴露的 metrics 路径
    static_configs:
      - targets:
          - '127.0.0.1:8088'  # Apollo 的地址和端口

重启

复制代码
docker-compose restart prometheus

查看go-zero端口

复制代码
#端口查看
sudo lsof -i :4000
#查看进程
ps -p 1343489 -f

验证配置是否生效:

  • 健康检查 : 访问 http://localhost:9090/-/healthy 查看 Prometheus 是否正常。

  • 查看抓取目标 : 访问 http://localhost:9090/targets 查看抓取目标的状态。

相关推荐
牛奶咖啡1319 分钟前
Prometheus+Grafana构建云原生分布式监控系统(十三)_Prometheus数据模型及其PromQL
云原生·prometheus·prometheus数据类型·promql使用场景·promql表达式解析·promql数据类型·监控系统的方法论与指标
等什么君!1 小时前
Docker 数据卷:MySQL 数据同步实战
运维·docker·容器
礼拜天没时间.1 小时前
《Docker实战入门与部署指南:从核心概念到网络与数据管理》:环境准备与Docker安装
运维·网络·docker·容器·centos
风流倜傥唐伯虎2 小时前
Windows 版 Docker 的 Linux 环境(docker-desktop)与 builder-jammy-base:latest 镜像核心区别
linux·docker·容器
Ha_To2 小时前
2026.1.30 搭建docker仓库
运维·docker·容器
lpfasd1232 小时前
Docker Desktop 在国内使用的囧境:镜像拉取失败、加速器失效与破局之道
运维·docker·容器
江湖有缘2 小时前
Docker部署SurveyKing调查问卷系统和考试系统
运维·docker·容器
啦啦啦小石头15 小时前
Docker 换源
docker
等什么君!17 小时前
docker -数据卷技术
运维·docker·容器
上天_去_做颗惺星 EVE_BLUE18 小时前
Docker高效使用指南:从基础到实战模板
开发语言·ubuntu·docker·容器·mac·虚拟环境