InfluxDB: 快速入门

如何快速配置和管理 InfluxDB,并遵循最佳实践

👋 欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 InfluxDB cloud 环境,专为高效与简便而设计:

  • 无限制的数据写入、查询、仪表盘、任务和 bucket。
  • 无限制的数据保留:根据您的需求,指标数据可长期保存。
  • 无限制的网络与磁盘传输,无任何隐藏限制。
  • 一键升级:始终体验最新功能与修复。
  • 在您专属的私有基础设施上,始终保持高性能强安全性

使用 Stackhero,您可以专注于数据与洞察。仅需几分钟即可开始使用 InfluxDB cloud hosting,每个环境都针对长期稳定性进行了优化。

InfluxDB 并未在其 Web 界面中直接提供用户管理功能。您可以通过 InfluxDB CLI 高效地进行用户创建和管理。

您可以通过 Docker 访问 InfluxDB CLI。例如,您可以运行以下命令:

docker run -it influxdb:2.8 /bin/bash

请务必将 2.8 替换为您的 InfluxDB 实例所使用的正确版本标签。

启动容器后,请创建一个配置。将 <XXXXXX>.stackhero-network.com 替换为您实际的 InfluxDB 域名:

influx config create \
  --config-name adminConfig \
  --active \
  --username-password admin \
  --org admin \
  --host-url https://<XXXXXX>.stackhero-network.com

配置完成后,您可以使用 InfluxDB CLI 管理用户。例如,创建新用户:

influx user create --name <user> --password <password>

InfluxDB 针对大规模时序数据进行了优化。由于其不会自动删除旧数据,如果不加管理,数据库很快会占满所有可用存储空间。Stackhero 支持 InfluxDB 的内置功能,帮助您高效管理数据,避免此类问题。

InfluxDB 提供了两种主要解决方案:

  1. 保留策略(Retention policies): 自动删除超过指定时间(如 365 天)的数据。这样可以让您的存储使用可预测,避免手动清理。
  2. 数据降采样(Downsampling data): 对近期数据保留高分辨率,历史数据则存储聚合结果。例如:
    • 对最近 5 分钟保留 1 秒分辨率的数据。
    • 对过去 24 小时以 1 分钟为间隔,存储最大值、最小值和平均值。
    • 对更早的数据保留每小时的聚合数据。

通过保留策略,您可以在不占用过多磁盘空间的情况下,保留所需的历史数据。关于数据降采样的更多信息,请参阅 InfluxDB 官方降采样文档

默认情况下,InfluxDB 会无限期保留数据。对于大多数时序数据场景,为每个 bucket 设置保留周期,可以确保只保留所需数据,防止存储空间无限增长。

配置保留策略的方法如下:

  1. 打开 InfluxDB Web 界面。
  2. 进入“Data”,然后选择“Buckets”。
  3. 在相关 bucket 旁点击“Settings”。
  4. 在“Delete data older than”下,选择您希望的数据保留周期。

超过所选保留周期的数据将被永久删除。

InfluxDB 以 shard(分片)方式存储数据。仅包含过期数据的 shard 会被自动删除。如果一个 shard 同时包含过期和当前数据,则会一直保留,直到所有数据都过期。默认情况下,每个 shard 覆盖 7 天的数据。当您设置新的保留策略时,最多可能有近 7 天的过期数据会保留到下一个 shard 周期。更多详情请参考 InfluxDB shard 文档

您可以在这个 InfluxDB Getting Started 仓库 中找到从 Node.js 向 InfluxDB 发送数据的实用示例。