跳到主要内容

grafana 12.1.2 升级步骤参考

一、升级说明

本次升级适用于原 grafana 也是通过 .tar.gz 二进制包解压安装的场景。

升级目标包:

https://pdpublic.mingdao.com/private-deployment/offline/common/grafana_12.1.2_17957162798_linux_amd64.tar.gz

升级原则:

  1. 停止旧 grafana 服务
  2. 备份旧 grafana 目录
  3. 解压新 grafana 到原目录
  4. 不直接复制旧版本 conf 配置目录
  5. 按官方安装文档重新修改新版本配置文件
  6. 仅复制旧版本 data 数据目录
  7. 重写 grafana systemd 服务文件
  8. 启动并验证 grafana 服务

注意:conf 目录不能直接从旧版本复制到新版本目录。新版本自带的配置文件可能存在版本差异,直接覆盖可能引入旧版本配置结构或默认项,导致升级后行为异常。因此升级时应基于新版本 conf/defaults.ini 重新写入必要配置。

二、确认当前安装目录

本文以 grafana 安装目录为:

/usr/local/grafana

如实际路径不同,请替换为真实路径。

三、下载升级包

1. 准备下载目录

mkdir -p /root/mdtemp
cd /root/mdtemp

2. 下载升级包

wget https://pdpublic.mingdao.com/private-deployment/offline/common/grafana_12.1.2_17957162798_linux_amd64.tar.gz

3. 确认安装包存在

ls -lh /root/mdtemp/grafana_12.1.2_17957162798_linux_amd64.tar.gz

四、停止 grafana 服务

确认服务已停止:

systemctl stop grafana
systemctl status grafana

确认无 grafana 进程:

ps -ef | grep grafana | grep -v grep

五、备份旧 grafana 目录

进入安装目录上级目录:

cd /usr/local

备份旧目录:

mv grafana grafana_old_$(date +%Y%m%d%H%M%S)

查看备份结果:

ls -ld /usr/local/grafana_old_*

六、解压新版本到原目录

创建新的 grafana 目录:

mkdir -p /usr/local/grafana

解压新版本:

tar -zxvf /root/mdtemp/grafana_12.1.2_17957162798_linux_amd64.tar.gz \
-C /usr/local/grafana \
--strip-components=1

确认新版本文件已解压:

ls -l /usr/local/grafana

确认二进制文件存在:

ls -l /usr/local/grafana/bin/grafana-server

七、确认旧版本备份目录名称

由于备份目录带时间戳,需要先确认旧目录名称:

ls -ld /usr/local/grafana_old_*

假设旧目录为:

/usr/local/grafana_old_20260525163000

后续命令请替换为实际目录名。

八、重新修改 grafana 配置

根据明道云监控部署文档要求,需要修改新版本 /usr/local/grafana/conf/defaults.ini 中的 root_urlserve_from_sub_path

修改 root_url

sed -ri 's#^root_url = .*#root_url = %(protocol)s://%(domain)s:%(http_port)s/privatedeploy/mdy/monitor/grafana/#' /usr/local/grafana/conf/defaults.ini
grep "^root_url" /usr/local/grafana/conf/defaults.ini

修改 serve_from_sub_path

sed -ri 's#^serve_from_sub_path = .*#serve_from_sub_path = true#' /usr/local/grafana/conf/defaults.ini
grep "^serve_from_sub_path" /usr/local/grafana/conf/defaults.ini

如果不通过 nginx 子路径代理访问 grafana,而是直接通过 grafana IP 或域名访问,需要根据实际情况调整 domain 等配置项。

九、复制旧数据目录 data

仅复制旧版本 data 目录,不复制旧版本 conf 目录。

cp -a /usr/local/grafana_old_20260525163000/data/. /usr/local/grafana/data/

说明:

  • data/. 表示复制 data 目录下所有内容,包括隐藏文件
  • 不会额外生成一层 data/data
  • 会保留原文件权限、时间、owner/group
  • data 中通常包含 grafana 数据库、面板数据、数据源数据等运行数据

确认数据已复制:

ls -l /usr/local/grafana/data

十、重写 grafana systemd 服务文件

根据明道云监控部署文档,重新写入 grafana 的 systemd 服务文件:

cat > /etc/systemd/system/grafana.service <<'EOF'
[Unit]
Description=Grafana Dashboard
Documentation=https://grafana.com/docs/
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/grafana
ExecStart=/usr/local/grafana/bin/grafana-server web
User=root
Group=root
Restart=always
RestartSec=10
LimitNOFILE=102400

[Install]
WantedBy=multi-user.target
EOF

重新加载 systemd:

systemctl daemon-reload

设置开机自启:

systemctl enable grafana

十一、启动 grafana 服务

systemctl start grafana

确认服务状态:

systemctl status grafana

十二、验证 grafana 服务

确认端口监听:

ss -lntp | grep 3000

确认版本:

/usr/local/grafana/bin/grafana -v

浏览器访问 grafana,验证以下内容:

验证项检查内容
登录是否可以正常登录
数据源原有数据源是否存在
dashboard原有面板是否存在
查询面板查询是否正常

十三、回滚步骤

如果升级后无法正常使用,按以下步骤回滚。

停止新版本:

systemctl stop grafana

删除新版本目录:

rm -rf /usr/local/grafana

恢复旧版本目录:

mv /usr/local/grafana_old_20260525163000 /usr/local/grafana

重新加载 systemd:

systemctl daemon-reload

启动旧版本:

systemctl start grafana

验证服务:

systemctl status grafana
ss -lntp | grep 3000