跳转至

DataKit 更新


DataKit 支持手动更新和自动更新两种方式。

前置条件

  • 远程更新要求 DataKit 版本 >= 1.5.9
  • 自动更新要求 DataKit 版本 >= 1.1.6-rc1
  • 手动更新暂无版本要求

手动更新

直接执行如下命令查看当前 DataKit 版本。如果线上有最新版本,则会提示对应的更新命令,如:

$ datakit version

       Version: 1.2.8
        Commit: e9ccdfbae4
        Branch: testing
 Build At(UTC): 2022-03-11 11:07:06
Golang Version: go version go1.18.3 linux/amd64
      Uploader: xxxxxxxxxxxxx/xxxxxxx/xxxxxxx
ReleasedInputs: all
---------------------------------------------------

Online version available: 1.2.9, commit 9f5ac898be (release at 2022-03-10 12:03:12)

Upgrade:
DK_UPGRADE=1 bash -c "$(curl -L https://static.guance.com/datakit/install.sh)"
$ datakit.exe version

       Version: 1.2.8
        Commit: e9ccdfbae4
        Branch: testing
 Build At(UTC): 2022-03-11 11:07:36
Golang Version: go version go1.18.3 linux/amd64
      Uploader: xxxxxxxxxxxxx/xxxxxxx/xxxxxxx
ReleasedInputs: all
---------------------------------------------------

Online version available: 1.2.9, commit 9f5ac898be (release at 2022-03-10 12:03:12)

Upgrade:
Remove-Item -ErrorAction SilentlyContinue Env:DK_*;
$env:DK_UPGRADE="1";
Set-ExecutionPolicy Bypass -scope Process -Force;
Import-Module bitstransfer;
start-bitstransfer  -source https://static.guance.com/datakit/install.ps1 -destination .install.ps1;
powershell ./.install.ps1;

如果当前 DataKit 处于被代理模式,自动更新的提示命令中,会自动加上代理设置:

HTTPS_PROXY=http://10.100.64.198:9530 DK_UPGRADE=1 ...
$env:HTTPS_PROXY="http://10.100.64.198:9530"; $env:DK_UPGRADE="1" ...

远程更新服务

Version-1.5.9 · Experimental

注意:伺服服务不支持 k8s 中安装的 DataKit。

在 DataKit 安装过程中,默认会安装一个升级管理服务,专用于管理和升级 DataKit 版本。如果是较老的 DataKit 版本,则在 DataKit 升级命令中,可以额外指定参数来安装该服务:

DK_UPGRADE=1 \
  DK_UPGRADE_MANAGER=1 \
  bash -c "$(curl -L https://static.guance.com/datakit/install.sh)"

Version-1.38.0

如果已经线下同步了 DataKit 的安装包,假定线下安装包地址是 http://my.static.com/datakit,则此处的升级命令是

DK_UPGRADE=1 \
  DK_UPGRADE_MANAGER=1 \
  DK_INSTALLER_BASE_URL="http://my.static.com/datakit" \
  bash -c "$(curl -L https://static.guance.com/datakit/install.sh)"

我们可以通过 DCA 来实现远程更新,具体参见 DCA 文档


Info
  • 升级过程根据网络带宽情况,可能耗时较长(基本等同于手动调用 DataKit 升级命令),请耐心等待。
  • 自版本 Version-1.91.1 开始,移除了直接通过 HTTP 服务升级 DataKit 的功能。

离线更新

参见离线安装相关的章节。

更新到指定版本

如果需要升级或回退到指定版本,可以通过如下命令进行操作:

DK_UPGRADE=1 bash -c "$(curl -L https://static.guance.com/datakit/install-3.4.5.sh)"
Remove-Item -ErrorAction SilentlyContinue Env:DK_*;
$env:DK_UPGRADE="1";
Set-ExecutionPolicy Bypass -scope Process -Force;
Import-Module bitstransfer;
start-bitstransfer  -source https://static.guance.com/datakit/install-3.4.5.ps1 -destination .install.ps1;
powershell ./.install.ps1;

上述命令中的 <版本号>,可以从 DataKit 的发布历史页面找到。

若要回退 DataKit 版本,目前只支持退回到 1.2.0 以后的版本,之前的 rc 版本不建议回退。

额外支持的环境变量

目前在升级命令中也支持和安装命令一致的环境变量安装命令支持的环境变量,从 1.62.1 版本开始支持。

FAQ

更新和安装的差异

如果要升级较新版本的 DataKit,可以通过:

在已经安装好 DataKit 的主机上,建议通过升级命令来升级到较新的版本,而不是重新安装。如果重新安装,所有 datakit.conf 里面的配置都会被重置为默认设置,比如全局 tag 配置、端口设置等等。这可能不是我们所期望的。

不过,不管是重新安装,还是执行升级命令,所有采集相关的配置,都不会因此变更。

版本检测失败的处理

在 DataKit 安装/升级过程中,安装程序会对当前运行的 DataKit 版本进行检测,以确保当前运行的 DataKit 版本就是升级后的版本。

但是某些情况下,老版本的 DataKit 服务并未卸载成功,导致检测过程中中发现,当前运行的 DataKit 版本号还是老的版本号:

2022-09-22T21:20:35.967+0800    ERROR   installer  installer/main.go:374  checkIsNewVersion: current version: 1.4.13, expect 1.4.16

此时我们可以强制停止老版本的 DataKit,并重启 DataKit:

datakit service -T # 停止服务
datakit service -S # 启动新的服务

# 如若不行,可以先卸载 DataKit 服务,并重装服务
datakit service -U # 卸载服务
datakit service -I # 重装服务

# 以上操作完成后,再确认下 DataKit 版本是否是最新版本

datakit version # 确保当前运行的 DataKit 已经是最新的版本

       Version: 1.4.16
        Commit: 1357544bd6
        Branch: master
 Build At(UTC): 2022-09-20 11:43:20
Golang Version: go version go1.18.3 linux/amd64
      Uploader: zy-infra-gitlab-prod-runner/root/xxx
ReleasedInputs: checked

文档评价

文档内容是否对您有帮助? ×