Docker-compose 实现Prometheus+Grafana监控MySQL及Linux主机

.
├── Grafana
│   ├── data
│   └── docker-compose.yaml
├── Mysql
│   ├── conf
│   ├── data
│   ├── docker-compose.yaml
│   └── logs
├── Mysqld_exporter
│   ├── conf
│   └── docker-compose.yaml
├── node-exporter
│   └── docker-compose.yaml
└── Prometheus
    ├── data
    ├── docker-compose.yaml
    └── yml
Prometheus
# Docker Compose 版本声明
version: '3'

# 定义服务列表,这里定义了一个名为 prometheus 的服务
services:
  # 服务名称:prometheus
  prometheus:
    # 使用的Docker镜像,这里是 Prometheus 监控系统的官方镜像
    image: prom/prometheus:v2.38.0
    # 为容器指定一个名称
    container_name: prometheus
    # 定义卷挂载,将主机目录挂载到容器内的目录
    volumes:
      # 挂载 Prometheus 配置文件到容器内
      - ./yml/prometheus.yml:/etc/prometheus/prometheus.yml
      # 挂载数据目录,用于存储 Prometheus 的数据
      - ./data:/prometheus
    # 自定义命令来启动 Prometheus 容器
    command:
      # 指定 Prometheus 配置文件的位置
      - '--config.file=/etc/prometheus/prometheus.yml'
      # 指定 Prometheus 数据存储的路径
      - '--storage.tsdb.path=/prometheus'
      # 指定控制台库的目录
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      # 指定控制台模板的目录
      - '--web.console.templates=/usr/share/prometheus/consoles'
      # 启用 Prometheus 的生命周期功能
      - '--web.enable-lifecycle'
    # 端口映射,将容器的9090端口映射到宿主机的9090端口
    ports:
      - "9090:9090"
    # 定义重启策略,除非明确停止,否则总是尝试重启容器
    restart: unless-stopped
global:
  scrape_interval: 15s

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

  - job_name: 'grafana'                                                                                                                                                                        
    static_configs:
      - targets: ['192.168.88.128:3000']

  # 采集MySQL监控数据
  - job_name: 'mysqld_exporter'
    static_configs:
      - targets: ['192.168.88.128:9104']

  # 采集node exporter监控数据,即linux
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['192.168.88.128:9100']
Grafana

Grafana做持久化操作,使用MySQL,如果已有数据库直接使用,只需创建grafana库即可。

# Docker Compose 版本声明
version: '3'

### 使用 PrometheusGrafana 实现数据库监控 #### 配置环境准备 为了实现MySQL 或其他数据库的高效监控,在 Docker 环境下部署 Prometheus 及其 exporter 是一种常见做法。mysqld_exporter 被用于抓取 MySQL 的内部指标并暴露给 Prometheus 服务器采集[^1]。 ```yaml version: '3' services: prometheus: image: prom/prometheus:v2.38.0 ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml mysqld-exporter: image: prom/mysqld-exporter:v0.14.0 environment: DATA_SOURCE_NAME: "user:password@(host:port)/dbname?parseTime=true&tls=false" depends_on: - prometheus ``` 此 `docker-compose` 文件片段展示了如何启动 Prometheusmysqld_exporter,其中需替换具体的 MySQL 连接参数以匹配实际环境设置。 #### 设置 Prometheus 抓取目标 编辑 Prometheus 的配置文件 (`prometheus.yml`) 来定义要从 mysqld_exporter 收集的数据端点: ```yaml scrape_configs: - job_name: 'mysql' static_configs: - targets: ['localhost:9104'] ``` 这里假设 mysqld_exporter 正在监听默认端口 9104;如果实际情况不同,则应相应调整该地址。 #### 构建 Grafana 监控面板 完成以上步骤之后,转向 Grafana 平台来创建直观易懂的图表展示所收集的信息。登录至 Grafana Web UI 后,添加 Prometheus 作为新的数据源,并利用官方提供的 MySQL Overview 模板 (ID: 7362),这能帮助快速建立一套全面覆盖各项性能指标的视图,如连接池状态、查询效率统计等[^2]。 通过上述方法可以构建起一个完整的基于 PrometheusGrafanaMySQL 性能监测体系,不仅限于查看当前运行状况,还支持历史趋势分析等功能,有助于及时发现潜在问题并采取预防措施[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值