在Ubuntu上安装和使用VictoriaMetrics时间序列数据库|
时间序列数据库是一种针对处理时间戳或时间序列数据进行优化的数据库。时间序列数据是随时间记录的数据,例如股票价格、传感器读数或应用程序日志。它们旨在处理高频连续生成的大量数据,并实现对这些数据的高效查询和分析。它们通常以压缩和优化的格式存储数据,以便快速有效地检索和分析数据。
时间序列数据库提供了多种功能和优点,包括:
- 时间戳:时间序列数据库针对处理时间戳数据进行了优化,可以根据时间戳高效地存储和检索数据。
- 可扩展性:时序数据库可以水平扩展以处理大量数据,并且可以跨多个节点或集群部署。
- 聚合和查询:时间序列数据库提供有效查询和聚合时间序列数据的功能,例如给定时间段内的滚动平均值或最小值和最大值。
- 高写入速率:时间序列数据库旨在处理高写入速率,能够以高频率摄取和存储大量数据。
常用的时序数据库有InfluxDB、Prometheus、OpenTSDB、TimescaleDB。
什么是维多利亚指标?
VictoriaMetrics 是一款开源、高性能且经济高效的时间序列数据库和监控解决方案。它旨在处理由应用程序、服务和设备生成的大量时间序列数据,并实现对这些数据的高效查询和分析。
它快速且可扩展,能够每秒处理数百万个数据点,并跨多个节点或集群水平扩展。它使用面向列的存储格式,优化时间序列数据的数据压缩和检索。
与 VictoriaMetrics 相关的主要功能和优势包括:
- 高性能:VictoriaMetrics 针对高写入和查询速率进行了优化,能够每秒处理数百万个数据点。它非常适合处理来自 APM、Kubernetes、物联网传感器、联网汽车、工业遥测、财务数据和各种企业工作负载的大量时间序列数据。
- 低资源使用:VictoriaMetrics 使用列式存储格式来优化数据压缩并减少存储和内存使用。
- 可扩展性:VictoriaMetrics可以跨多个节点或集群部署,并且可以水平扩展以处理大量数据。
- 查询和分析:VictoriaMetrics 提供了灵活高效的查询语言来分析时间序列数据,并与 Grafana 等流行的可视化工具集成。
- 监控和警报:VictoriaMetrics 包含用于实时跟踪指标和事件的内置监控和警报功能。
- 类似 PromQL 的查询语言:MetricsQL 在 PromQL 之上提供改进的功能。
- 它支持指标重新标记。
步骤1:安装VictoriaMetrics时间序列数据库
VictoriaMetrics 可以通过多种方式安装。这些包括:
- 二进制文件
- VictoriaMetrics 的单节点和集群版本的 Helm 图表。
- Docker 镜像
- VictoriaMetrics 的 Kubernetes 运算符。
- 用于安装集群 VictoriaMetrics 的 Ansible 角色(由 VictoriaMetrics 提供)。
- 用于安装集群 VictoriaMetrics 的 Ansible 角色(由社区)。
- 用于安装单节点 VictoriaMetrics 的 Ansible 角色(由社区提供)。
- VictoriaMetrics 的 Snap 包。
在本指南中,为了更简单,我们将使用 Snap 在 Ubuntu 上安装 VictoriaMetrics。首先,您需要确保 snapd 已安装并在您的 Ubuntu 系统上运行。
这可以使用以下指南中提供的帮助来完成:
- 如何在 Ubuntu/Debian Linux 上安装 Snap
安装并运行 Snap 后,您可以轻松安装 VictoriaMetrics。检查可用的包信息:
$ snap info victoriametrics
summary: VictoriaMetrics is fast, cost-effective and scalable time-series
database.
publisher: VictoriaMetrics (f41gh7)
store-url: https://snapcraft.io/victoriametrics
contact: [email
license: Apache-2.0
description: |
* VictoriaMetrics can be used as long-term storage for Prometheus or for
....
channels:
latest/stable: v1.89.1 2023-03-14 (220) 9MB -
latest/candidate: v1.89.1 2023-03-14 (220) 9MB -
latest/beta: v1.89.1 2023-03-14 (220) 9MB -
latest/edge: v1.89.1 2023-03-14 (220) 9MB -
使用以下命令安装 VictoriaMetrics:
$ sudo snap install victoriametrics
2023-04-18T18:34:25Z INFO Waiting for automatic snapd restart...
victoriametrics v1.90.0 from VictoriaMetrics (f41gh7) installed
完成后,使用以下命令检查端口 8428 上的运行状况来验证安装:
$ curl http://localhost:8428/metrics
.....
flag{name="snapshotAuthKey", value="secret", is_set="false"} 1
flag{name="snapshotCreateTimeout", value="0s", is_set="false"} 1
flag{name="snapshotsMaxAge", value="0", is_set="false"} 1
flag{name="sortLabels", value="false", is_set="false"} 1
flag{name="storage.cacheSizeIndexDBDataBlocks", value="0", is_set="false"} 1
flag{name="storage.cacheSizeIndexDBIndexBlocks", value="0", is_set="false"} 1
flag{name="storage.cacheSizeIndexDBTagFilters", value="0", is_set="false"} 1
flag{name="storage.cacheSizeStorageTSID", value="0", is_set="false"} 1
flag{name="storage.maxDailySeries", value="0", is_set="false"} 1
flag{name="storage.maxHourlySeries", value="0", is_set="false"} 1
flag{name="storage.minFreeDiskSpaceBytes", value="10000000", is_set="false"} 1
flag{name="storageDataPath", value="/var/lib/victoriametrics", is_set="true"} 1
flag{name="streamAggr.config", value="", is_set="false"} 1
flag{name="streamAggr.dedupInterval", value="0s", is_set="false"} 1
flag{name="streamAggr.keepInput", value="false", is_set="false"} 1
flag{name="tls", value="false", is_set="false"} 1
flag{name="tlsCertFile", value="", is_set="false"} 1
flag{name="tlsCipherSuites", value="", is_set="false"} 1
flag{name="tlsKeyFile", value="secret", is_set="false"} 1
flag{name="tlsMinVersion", value="", is_set="false"} 1
flag{name="usePromCompatibleNaming", value="false", is_set="false"} 1
flag{name="version", value="false", is_set="false"} 1
flag{name="vmalert.proxyURL", value="", is_set="false"} 1
flag{name="vmui.customDashboardsPath", value="", is_set="false"} 1
现在有了这个输出,我们就已经安装并运行了 VictoriaMetrics。
步骤2:配置VictoriaMetrics时间序列数据库
使用此方法安装后,您可以对 VictoriaMetrics 时间序列数据库进行所需的配置。 VictoriaMetric 允许在命令行上使用 %{ENV_VAR} 语法的变量。
但对于 Snap 安装,我们可以使用以下命令设置抓取间隔等变量:
echo 'FLAGS="-selfScrapeInterval=10s -search.logSlowQueryDuration=20s"' | sudo tee $SNAP_DATA/var/snap/victoriametrics/current/extra_flags
这会将标志添加到 /var/snap/victoriametrics/current/extra_flags 文件中。在这里,我们不会更改 -storageDataPath 标志,因为 snap 包对主机文件系统的访问受到限制。数据文件夹位于/var/snap/victoriametrics/current/var/lib/victoriametrics
要使所做的更改生效,请重新启动服务:
$ sudo snap restart victoriametrics
Restarted.
您还可以通过编辑以下文件来更改crape配置:
sudo vim /var/snap/victoriametrics/current/etc/victoriametrics-scrape-config.yaml
完成所需的更改后,您可以使用以下命令重新读取配置:
curl 127.0.0.1:8428/-/reload
第三步:安装并配置Prometheus
Prometheus 是一款免费开源的事件监控和警报工具。它由 SoundCloud 于 2012 年开发,并于 2016 年晚些时候晋升为云原生计算基金会。它的工作原理是收集指标并将其存储为时间序列数据。为了演示 VictoriaMetrics 数据库是否正常工作,我们将从 Prometheus 向其发送一些指标。
要安装 Prometheus,请使用以下指南:
- 在 Ubuntu 上安装 Prometheus 服务器
一旦 Prometheus 安装并运行,我们将对配置文件进行调整:
sudo vim /etc/prometheus/prometheus.yml
要允许 Prometheus 向 VictoriaMetrics 发送数据,请添加以下行:
remote_write:
- url: http://127.0.0.1:8428/api/v1/write
如果 VictoriaMetrics 服务器在单独的主机上运行,则需要将 127.0.0.0.1 替换为 VictoriaMetrics 服务器的 IP 地址。
要应用配置,请使用以下命令:
sudo kill -HUP `pidof prometheus`
sudo systemctl restart prometheus.service
现在,Prometheus 会将传入数据写入本地存储,并并行将其复制到远程存储。这意味着即使远程存储不可用,数据也将在 set –storage.tsdb.retention.time 持续时间内在本地存储中保持可用。
如果您从多个 Prometheus 实例向 VictoriaMetrics 发送数据,则需要在 Global 部分下添加以下行。
global:
external_labels:
datacenter: dc-123
这将告诉 Prometheus 在将每个样本发送到远程存储之前为其添加 datacenter=dc-123 标签。标签 datacenter 是一个示例,您需要将其设置为跨 Prometheus 实例的唯一变量。
现在加载 VictoriaMetrics VMUI 并查看是否已收到 Prometheus 指标。为此,请使用 URL http://IP_Address:8428
加载 VMUI 页面后,执行查询以验证 Prometheus 数据是否已存储。例如:
scrape_samples_scraped
示例输出:
您还可以探索其他 Prometheus 指标,如下所示:
步骤 4:安装和配置 Grafana
Grafan 可用于可视化仪表板
- 如何在 Ubuntu 上安装 Grafana
安装 Grafana 后,使用 URL http://IP_Address:3000 访问它。登录后,将 Prometheus 添加为您的数据源。
如果一切正常,你应该会看到这个。
现在对添加的 Prometheus 数据源运行查询并查看图形输出。出于测试目的,我们将执行与 VictoriaMetrics VMUI 中类似的命令。
scrape_samples_scraped
运行查询后,您应该看到以下输出:
从上面的输出来看,我们都同意 VictoriaMetrics 运行得非常完美
判决
这标志着关于如何在 Ubuntu 上安装和使用 VictoriaMetrics 时间序列数据库的详细指南的结束。我希望这是有用的。
有兴趣了解更多吗?
- 在 Rocky Linux 9/AlmaLinux 9 上安装 InfluxDB 2 和 Telegraf
- 如何在 Debian 上安装 InfluxDB
- 如何在 Ubuntu 上安装 TimescaleDB
- 如何在 Kubernetes 上安装 QuestDB 数据库