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 查看抓取目标的状态。

相关推荐
程序员老赵9 小时前
Docker 部署 Wiki.js:轻松搭建私有化维基知识库
docker·容器·开源
灯澜忆梦11 小时前
【Docker】#5 | 网络配置
网络·docker·容器
刘胡子大叔12 小时前
docker build 跑了 92 分钟还是失败了
docker·容器
她说可以呀12 小时前
Docker 镜像的两种创建方式
java·分布式·docker
虎头金猫13 小时前
从上传PPT到观众远程打开互动页面:Claper在CentOS 7上的Docker部署、互动组件设置与固定访问地址实战
linux·运维·网络·人工智能·docker·centos·powerpoint
东风微鸣13 小时前
把 Tailscale 接进 Prometheus 监控
java·数据库·prometheus
Kendra91914 小时前
运维监控平台(Prometheus + Grafana)部署与维护
运维·grafana·prometheus
%KT%15 小时前
ubuntu系统部署docker
运维·docker·容器
十二同学啊15 小时前
Docker 容器化技术详解:镜像、容器、网络与应用部署设计
网络·docker·eureka
I'mChloe15 小时前
不再逐台装Docker:我用Ansible Playbook批量统一服务器环境
服务器·docker·ansible