VictoriaMetrics 中文教程(02)安装
在国内 IT 监控领域,上规模的公司极大概率会选型 VictoriaMetrics 作为时序存储,但是 VictoriaMetrics 中文教程较少,我们希望通过这个系列文章,帮助大家更好的了解 VictoriaMetrics,希望对大家有所帮助。本文是 VictoriaMetrics 中文教程第 02 篇,讲解如何安装 VictoriaMetrics。历史文章:
VictoriaMetrics 安装部署
VictoriaMetrics 支持多种不同的安装方式,可以采用二进制安装,或者 Docker 镜像安装,社区还提供了 Kubernetes operator、Helm chart、Ansible playbook 等方式,极为方便。初学者可以选择单机版本的二进制安装,简单到令人发指。
VictoriaMetrics 的发布包可以到它的 Github releases 页面查找:
https://github.com/VictoriaMetrics/VictoriaMetrics/releases
写这个文章的时候,最新的版本是 v1.104.0,我们就以这个版本为例来做介绍。releases 页面下除了 VictoriaMetrics,还有 victorialogs,咱们要下载的是 VictoriaMetrics,注意别搞错了。
总共有 94 个发布包,注意选择适合自己的平台的发布包,我是 Macbook M1 芯片,所以选择 darwin-arm64 的,下载普通版就行,不用下载 enterprise 版本。一键启动,如下:
ulric@ulric-flashcat tgz % ls -al victoria-metrics-darwin-arm64-v1.104.0.tar.gz
-rw-r--r--@ 1 ulric staff 10854063 10 18 13:08 victoria-metrics-darwin-arm64-v1.104.0.tar.gz
ulric@ulric-flashcat tgz % mkdir victoria-metrics-darwin-arm64-v1.104.0
ulric@ulric-flashcat tgz % tar zxvf victoria-metrics-darwin-arm64-v1.104.0.tar.gz -C victoria-metrics-darwin-arm64-v1.104.0
x victoria-metrics-prod
ulric@ulric-flashcat tgz % cd victoria-metrics-darwin-arm64-v1.104.0
ulric@ulric-flashcat victoria-metrics-darwin-arm64-v1.104.0 % ls -al
total 41288
drwxr-xr-x 3 ulric staff 96 10 18 13:09 .
drwxr-xr-x@ 101 ulric staff 3232 10 18 13:09 ..
-rwxr-xr-x 1 ulric staff 21137410 10 2 19:31 victoria-metrics-prod
ulric@ulric-flashcat victoria-metrics-darwin-arm64-v1.104.0 % ./victoria-metrics-prod
2024-10-18T05:10:14.101Z info VictoriaMetrics/lib/logger/flag.go:12 build version: victoria-metrics-20241002-113036-tags-v1.104.0-0-g0d4f4b8f7d
2024-10-18T05:10:14.101Z info VictoriaMetrics/lib/logger/flag.go:13 command-line flags
...
2024-10-18T05:10:14.220Z info VictoriaMetrics/lib/httpserver/httpserver.go:121 starting server at http://127.0.0.1:8428/
2024-10-18T05:10:14.220Z info VictoriaMetrics/lib/httpserver/httpserver.go:122 pprof handlers are exposed at http://127.0.0.1:8428/debug/pprof/
VictoriaMetrics 会在 8428 端口启动一个 HTTP 服务,可以通过浏览器访问 http://IP:8424
来查看 VictoriaMetrics 的 Web 界面。
我上面是在前台启动的,当然,我们可以把 VictoriaMetrics 作为一个后台服务来启动,这样更加稳定,可以使用 nohup
或者 systemd
来启动。这是 Linux 基础知识,这里就不展开了。
另外,命令行启动 VictoriaMetrics 时,可以传入一些参数,如下参数极为关键:
-storageDataPath
- VictoriaMetrics 将所有数据存储在此目录中。默认路径是当前工作目录中的victoria-metrics-data
-retentionPeriod
- 存储数据的保留。较旧的数据将被自动删除。默认保留期为 1 个月(31 天)。最短保留期限为24小时或1天。很多人说,我的数据为啥没有一直保存,历史数据怎么被删了,就是因为默认 VictoriaMetrics 只存储 1 个月的数据,如果你想保存更长时间的数据,可以通过这个参数来设置。
更多参数,可以通过 ./victoria-metrics-prod -help
来查看。
VictoriaMetrics 使用环境变量
VictoriaMetrics 的各种配置基本都是通过命令行参数的方式,命令行参数支持引用环境变量,另外 VictoriaMetrics 指定的一些配置文件里,也支持引用环境变量。引用环境变量的写法是:%{ENV_VAR}
,比如 -metricsAuthKey=%{METRICS_AUTH_KEY}
。如果 VictoriaMetrics 启动时存在 METRICS_AUTH_KEY=top-secret
环境变量,则自动扩展为 -metricsAuthKey=top-secret
。此扩展由 VictoriaMetrics 本身执行。
VictoriaMetrics 在启动时递归扩展环境变量中的 %{ENV_VAR}
引用。例如,如果 BAR=a%{BAZ}
且 BAZ=bc
,则 FOO=%{BAR}
环境变量将扩展为 FOO=abc
。此外,所有 VictoriaMetrics 组件都允许根据以下规则通过环境变量设置参数:
- 必须设置
-envflag.enable
标志 - 命令行 flag 中的
.
要被替换为_
(例如-insert.maxQueueDuration <duration>
将翻译为insert_maxQueueDuration=<duration>
) - 对于重复的 flag,可以使用逗号分隔的值列表(例如
-storageNode <nodeA> -storageNode <nodeB>
将转换为storageNode=<nodeA>,<nodeB>
) - 环境变量前缀可以通过
-envflag.prefix
标志设置。例如,如果-envflag.prefix=VM_
,则环境变量必须以VM_
开头。
作为 Windows 服务运行
为了将 VictoriaMetrics 作为 Windows 服务运行,需要为 WinSW
创建服务配置,然后根据以下指南将其安装为服务:
- 创建服务配置:
<service>
<id>VictoriaMetrics</id>
<name>VictoriaMetrics</name>
<description>VictoriaMetrics</description>
<executable>%BASE%\victoria-metrics-windows-amd64-prod.exe</executable>
<onfailure action="restart" delay="10 sec"/>
<onfailure action="restart" delay="20 sec"/>
<resetfailure>1 hour</resetfailure>
<arguments>-envflag.enable</arguments>
<priority>Normal</priority>
<stoptimeout>15 sec</stoptimeout>
<stopparentprocessfirst>true</stopparentprocessfirst>
<startmode>Automatic</startmode>
<waithint>15 sec</waithint>
<sleeptime>1 sec</sleeptime>
<logpath>%BASE%\logs</logpath>
<log mode="roll">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<env name="loggerFormat" value="json" />
<env name="loggerOutput" value="stderr" />
<env name="promscrape_config" value="C:\Program Files\victoria-metrics\promscrape.yml" />
</service>
-
按照本文档安装 WinSW。
-
在 PowerShell 中运行以下命令以安装服务:
winsw install VictoriaMetrics.xml
Get-Service VictoriaMetrics | Start-Service
请参阅此 issue 了解更多详细信息。