Grafana

概述

Grafana 是一个开源的可视化和分析平台,主要用于监控和数据展示。它支持多种数据源,允许用户通过动态仪表板实时查看和分析数据。

核心能力

  • 支持 Prometheus、MySQL、Elasticsearch、InfluxDB 等 30+ 种数据源
  • 丰富的图表类型和可视化面板
  • 灵活的告警规则配置与通知
  • 支持用户权限管理和团队协作

典型应用场景

  • IT 基础设施监控(结合 Prometheus)
  • 业务数据分析和运营大屏
  • 日志分析可视化(结合 Elasticsearch)
  • 应用程序性能监控(APM)

部署准备

1. 系统要求

项目 最低配置 推荐配置
CPU 1 核 2 核+
内存 512 MB 2 GB+
硬盘 5 GB 20 GB+

2. 创建 Docker Compose 编排文件

docker-compose.yaml

services:
  grafana:
    image: grafana/grafana:10.1.2
    container_name: grafana
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - GF_SECURITY_ADMIN_PASSWORD=admin
    ports:
      - "3000:3000"
    volumes:
      - grafana_conf:/etc/grafana
      - grafana_data:/var/lib/grafana
    deploy:
      resources:
        limits:
          cpus: "1"
          memory: "2G"
volumes:
  grafana_data:
  grafana_conf:

3. 环境变量说明

变量 说明
TZ 设置时区为 Asia/Shanghai
GF_SECURITY_ADMIN_PASSWORD 设置管理员初始密码(默认用户名为 admin

启动服务

docker compose up -d

查看启动日志:

docker logs grafana -f --tail=50

验证访问

curl http://127.0.0.1:3000

在浏览器中打开 http://<服务器IP>:3000 即可访问 Grafana。

默认登录信息

  • 用户名:admin
  • 密码:admin(或环境变量中配置的密码)

首次登录后会提示修改密码,建议立即修改。


常用数据源配置

Prometheus

Name: Prometheus
Type: Prometheus
URL: http://prometheus:9090
Access: Server (default)

MySQL

Name: MySQL
Type: MySQL
Host: mysql:3306
Database: grafana
User: root
Password: your_password

Elasticsearch

Name: Elasticsearch
Type: Elasticsearch
URL: http://elasticsearch:9200
Index name: [logstash-]YYYY.MM.DD
Time field: @timestamp
Version: 7.x

常用管理命令

操作 命令
启动 Grafana docker compose up -d
停止 Grafana docker compose stop
重启 Grafana docker compose restart
查看状态 docker compose ps
查看日志 docker logs grafana -f --tail=100
进入容器 docker exec -it grafana /bin/bash
重置管理员密码 docker exec -it grafana grafana-cli admin reset-admin-password newpassword

配置持久化

数据存储于 Docker Volume 中,如需备份或迁移数据:

# 查看 Volume 位置
docker volume inspect grafana_grafana_data
docker volume inspect grafana_grafana_conf

# 备份数据
docker run --rm -v grafana_grafana_data:/data alpine tar czf /tmp/grafana_data.tar.gz -C /data .

# 恢复数据
docker run --rm -v grafana_grafana_data:/data alpine tar xzf /tmp/grafana_data.tar.gz -C /data

常见问题

Q:登录时提示用户名或密码错误?

  1. 确认默认密码是否正确(初始密码为 adminGF_SECURITY_ADMIN_PASSWORD 设置的值)
  2. 如忘记密码,可通过命令行重置:
docker exec -it grafana grafana-cli admin reset-admin-password new_password

Q:如何添加告警通知?

  1. 进入 Alerting > Contact points 创建通知渠道
  2. 支持 Email、Webhook、钉钉、企业微信、Slack 等
  3. 在面板配置中设置告警规则并关联通知渠道

Q:Grafana 启动慢或内存占用高?

检查以下几点:

  1. 确认 docker-compose.yaml 中内存限制是否合理
  2. 初次启动需要初始化数据库,需等待片刻
  3. 如数据源配置过多,建议分批加载

Q:如何备份仪表板配置?

进入 Dashboard > Share > Export 可导出 JSON 配置文件。

批量导出所有仪表板:

# 通过 API 导出
curl -u admin:admin http://localhost:3000/api/search?type=dash-db | jq '.[] | .uri'

Q:如何更换管理员密码?

# 方式一:通过命令行重置
docker exec -it grafana grafana-cli admin reset-admin-password your_new_password

# 方式二:在配置文件初始化时设置
# docker-compose.yaml 中添加
# - GF_SECURITY_ADMIN_PASSWORD=your_new_password

参考链接