一、什么是 Grafana
Grafana 是一个开源的可视化分析平台,专注于将时间序列数据以图表、仪表盘的形式展示。它不存储数据,而是作为“前端”连接各种数据源(如 Prometheus、InfluxDB、MySQL、Elasticsearch 等),帮助用户构建交互式监控看板。
核心定位
📈 数据可视化:将指标转化为直观的图表
🖼️ 仪表盘(Dashboard):支持拖拽式编辑,自定义布局
🔔 告警系统:支持基于面板的告警规则(从 v7.0 起内置)
🧩 插件生态:支持数百种数据源和面板插件
🌐 多租户支持:适用于企业级多团队协作
二、核心功能特性
功能 | 说明 |
---|---|
多数据源支持 | Prometheus、InfluxDB、MySQL、PostgreSQL、Elasticsearch、Loki(日志)、Tempo(链路追踪)等 |
可视化能力强 | 支持折线图、柱状图、热力图、表格、状态图、Worldmap 等 30+ 面板类型 |
仪表盘共享 | 支持导出为 JSON、分享链接、嵌入网页 |
告警系统 | 支持基于面板的告警规则,可发送邮件、钉钉、Webhook 等通知 |
用户与权限管理 | 支持角色(Viewer、Editor、Admin)、组织(Organization)、LDAP/SSO 集成 |
插件机 | 可扩展数据源、面板、应用程序 |
API 与自动化 | 提供完整 REST API,支持 CI/CD 自动化部署仪表盘 |
三、使用 Docker 安装 Grafana(本次演示环境是版本号:v11.2.0)
1. 创建项目目录结构
mkdir -p /opt/grafana/{data,config,plugins}
cd /opt/grafana
目录说明:
data/:Grafana 数据存储目录(数据库、会话、日志)
config/:配置文件目录(可挂载 grafana.ini)
plugins/:第三方插件安装目录
2. 编写 docker-compose.yml
version: '3.8'
services:
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/var/lib/grafana
- ./config:/etc/grafana
- ./plugins:/var/lib/grafana/plugins
- /etc/localtime:/etc/localtime:ro
networks:
- monitoring
networks:
monitoring:
driver: bridge
四、首次启动
# 在 /opt/grafana 目录下执行
docker-compose up -d
验证服务状态:
docker-compose ps
输出应类似:
Name Command State Ports
------------------------------------------------------------------------
grafana /run.sh Up 0.0.0.0:3000->3000/tcp
五、访问与登录
浏览器访问:http://{ip}>:3000
首次登录
默认账号:admin
默认密码:admin
登录后系统会提示修改密码
用户名密码也可以在 docker-compose.yml 中通过 GF_SECURITY_ADMIN_PASSWORD 设置
在volumes同级的上方添加以下代码即可。
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=securepassword123
- GF_USERS_ALLOW_SIGN_UP=false
- GF_AUTH_ANONYMOUS_ENABLED=false
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
六、添加数据源(以 Prometheus 为例)
Grafana 从 9.5.2 版本开始支持中文界面,可直接在设置中切换语言为中文(简体)本次以中文展示。
1.切换中文界面
右上角头像→Profile→Language→中文简体
2.添加数据源
左侧导航“连接”→数据源→添加新数据源→选择Prometheus
填写名称和地址,地址前边必须有http或者https不能直接写ip
七、创建仪表盘
左侧导航→仪表板→新建→导入
我们直接使用现成的仪表盘(当然动手能力强或者定制化要求高的也可以自己创建仪表盘的)
更多仪表盘请参考https://grafana.com/grafana/dashboards/
输入仪表盘的ID:8919(node_exporter),1860(node_exporter),12239(dcgm_exporter),点击加载后进入选择数据源页面,可修改仪表盘名称,选择数据源后点击导入即可。
返回到仪表板即可看到刚刚导入的仪表板