本文介绍如何在一台 CentOS Stream 9 服务器上安装 Grafana。Grafana 是一套开源的监控可视化平台,可以接入 Prometheus、InfluxDB、MySQL 等多种数据源,用来画仪表盘、做告警。本文覆盖:添加官方软件源、安装、启动、开放防火墙、访问 Web 界面,以及关键配置文件和常用管理命令,每一步都有解释。
示例面向 CentOS Stream 9 的 x86_64 主机。文章核对时 Grafana OSS 最新稳定版是 v13.2.3(2026 年 10 月 13 日),版本会随官方发布更新,具体以 grafana.com 为准。
一、确认环境和资源
cat /etc/os-release | grep VERSION_ID
free -h
ss -lntp | grep 3000
cat /etc/os-release | grep VERSION_ID 确认是 CentOS Stream 9;free -h 查看内存,Grafana 本身很轻量,默认单机几百 MB 内存即可;ss -lntp | grep 3000 检查 3000 端口(Grafana 默认 Web 端口)是否已被占用,有输出说明被别的程序占用,需要先处理或改端口。
二、选择安装方式
| 方式 | 优点 | 缺点 |
|---|---|---|
| 官方 YUM 源 | 自动跟随升级、配置简单 | 需要先添加仓库 |
| 直接下载 RPM | 不依赖仓库、可指定版本 | 升级要手动换包 |
| Docker 镜像 | 隔离干净、便于迁移 | 需要先有 Docker 环境 |
服务器长期使用推荐官方 YUM 源,这也是 Grafana 官方文档的标准做法。下文按这种方式展开。
三、添加官方软件源并安装
3.1 添加 Grafana 软件源
sudo tee /etc/yum.repos.d/grafana.repo <<-'EOF'
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
tee ... <<-'EOF' ... EOF 把中间内容写入 /etc/yum.repos.d/grafana.repo 这个软件源定义文件。文件里各字段含义:
| 字段 | 含义 |
|---|---|
[grafana] |
软件源 ID,dnf 用方括号里的名字标识这个源 |
name=grafana |
源的显示名称 |
baseurl=https://rpm.grafana.com |
软件包下载地址 |
enabled=1 |
是否启用(1 启用,0 禁用) |
gpgcheck=1 |
是否校验 RPM 包的 GPG 签名 |
repo_gpgcheck=1 |
是否校验仓库元数据的签名 |
gpgkey=https://rpm.grafana.com/gpg.key |
GPG 公钥地址 |
sslverify=1 + sslcacert=... |
启用 HTTPS 校验并指定系统 CA 证书包 |
3.2 安装 Grafana
sudo dnf install -y grafana
dnf install 从刚添加的源安装 grafana 包,-y 自动确认。首次执行会提示导入 Grafana 的 GPG 公钥,输入 y 即可。安装完成后,主程序在 /usr/sbin/grafana-server,并会自动创建 grafana 系统用户、配置文件和 systemd 服务。
四、启动并设置开机自启
sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server --no-pager
服务名是 grafana-server(不是 grafana)。systemctl enable --now grafana-server 同时完成”设为开机自启”(enable)和”立即启动”(--now);status 确认服务状态,看到 active (running) 表示启动成功。
五、开放防火墙端口
Grafana 默认监听 3000 端口。本机访问无需开防火墙;如果要让内网其他机器通过浏览器访问,需要放行:
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
--permanent 把规则写入持久配置(重启仍有效),--add-port=3000/tcp 放行 TCP 3000,--reload 立即生效,--list-ports 确认规则已加。不建议直接把 3000 端口暴露到公网;跨公网访问应走 VPN、SSH 隧道或反向代理加 HTTPS。
六、访问 Web 界面
浏览器打开:
http://服务器IP:3000
首次登录的默认账号密码都是 admin:
用户名:admin
密码:admin
登录后 Grafana 会强制要求设置一个新密码,按提示改掉即可。admin 是内置管理员,拥有全部权限,生产环境务必改用强密码并给普通用户单独建账号、按需授权。
七、关键配置与数据位置
| 内容 | 位置 |
|---|---|
| 主配置文件 | /etc/grafana/grafana.ini |
| 数据目录(含内置 SQLite 数据库 grafana.db) | /var/lib/grafana |
| 插件目录 | /var/lib/grafana/plugins |
| 日志目录 | /var/log/grafana/grafana.log |
| 主程序 | /usr/sbin/grafana-server |
| 命令行工具 | /usr/bin/grafana-cli |
| systemd 服务单元 | /usr/lib/systemd/system/grafana-server.service |
| 运行用户 | grafana |
grafana.ini 是核心配置,用 [section] 加 key = value 的格式组织,行首带 ; 的是注释(表示使用默认值)。改完配置要重启服务才生效:
sudo systemctl restart grafana-server
几个常用配置(在 grafana.ini 里找到对应项取消注释并修改):
[server]的http_port:改 Web 端口,默认 3000。改端口后还要同步放行防火墙,并注意 SELinux 对端口的要求。[server]的root_url:对外访问地址。放在反向代理(如 nginx)后面时,把它设成完整的域名,否则登录跳转、回调可能出错。[auth.anonymous]的enabled:是否允许匿名访问,默认关闭。[users]的allow_sign_up:是否允许访客自行注册,默认关闭。
安装插件用 grafana-cli:
sudo grafana-cli plugins install 插件名
例如 sudo grafana-cli plugins install grafana-clock-panel。装完同样要重启服务。命令行工具的另一种用途是重置管理员密码:sudo grafana-cli admin reset-admin-password 新密码。
八、常用管理命令
| 操作 | 命令 |
|---|---|
| 启动 / 停止 / 重启 / 状态 | sudo systemctl start/stop/restart/status grafana-server |
| 开机自启 / 取消自启 | sudo systemctl enable/disable grafana-server |
| 查看日志 | sudo journalctl -u grafana-server -f 或 tail -f /var/log/grafana/grafana.log |
| 查看版本 | grafana-server -v |
| 安装插件 | sudo grafana-cli plugins install 插件名 |
| 重置管理员密码 | sudo grafana-cli admin reset-admin-password 新密码 |
九、卸载
sudo systemctl stop grafana-server
sudo dnf remove -y grafana
dnf remove 卸载软件包。如果要连数据一起删(仪表盘、数据源配置都在 /var/lib/grafana/grafana.db 里),再执行:
sudo rm -rf /var/lib/grafana
sudo rm -f /etc/yum.repos.d/grafana.repo
注意:rm -rf /var/lib/grafana 会永久删除所有仪表盘、数据源和用户配置,确认已备份再执行。
十、常见问题
浏览器打不开 3000 端口
按顺序排查:服务是否 active (running)(systemctl status grafana-server)、是否监听 3000(ss -lntp | grep 3000)、防火墙是否放行(firewall-cmd --list-ports)、云安全组是否放行。本机测试用 curl http://127.0.0.1:3000 最快。
改端口后访问不了
除了改 grafana.ini 的 http_port 和放行防火墙,CentOS Stream 9 默认开启 SELinux,新端口可能没有正确标签。可用 sudo semanage port -a -t http_port_t -p tcp 新端口 打标签(没有 semanage 先 dnf install policycoreutils-python-utils),再重启服务。
忘了管理员密码
用命令行重置:sudo grafana-cli admin reset-admin-password 新密码,然后重启服务。
添加数据源报连接失败
确认 Grafana 所在机器能连通数据源地址和端口(如 Prometheus 的 9090、InfluxDB 的 8086),并检查数据源自己的防火墙/认证。同一台机器上的数据源优先用 127.0.0.1。
放在 nginx 反代后面登录跳转异常
把 grafana.ini 里 [server] 的 root_url 设成完整域名(如 https://grafana.example.com/),并在 nginx 侧正确转发 Host 头和 WebSocket,然后重启 Grafana。
官方文档
命令和配置依据 Grafana 官方文档整理,版本核对日期:2026 年 10 月 13 日。软件源地址、版本号可能随官方更新变化,具体以 grafana.com 当前页面为准。