3 种方式 InfluxDB OSS 补充 InfluxDB Cloud

导航至

正如您可能知道的,InfluxDB 以多种形式提供,包括 InfluxDB 开源版InfluxDB Cloud。客户有时会问我们:“如果我正在使用 InfluxDB Cloud,为什么我还需要考虑使用 InfluxDB 开源版?”

这是一个合理的问题。InfluxDB Cloud 拥有一些 InfluxDB OSS 中没有的功能 (以下链接):InfluxDB Cloud 是无服务器架构,因此无需管理服务器,它可以自动适应流量激增,并且我们持续更新它以自动提供最新的功能。

我们不断从客户那里听到,他们更喜欢 InfluxDB Cloud,因为它使他们免除了繁琐的数据库管理任务,使他们能够专注于代码。尽管如此,仍有少数用例中,InfluxDB Cloud 客户可以使用 InfluxDB 开源版来帮助他们管理时序数据。让我们来看看。

InfluxDB 开发环境

您可以在本地机器上安装 InfluxDB OSS,在任何地方编写代码,而无需担心网络连接。在这些需要居家隔离的日子里,由于 Zoom 导致的带宽饱和,您可能会遇到网络问题。疫情过后,当我们可以回到咖啡馆、火车和飞机上时,拥有一个可以轻松在笔记本电脑上运行的数据库将非常方便。

前几天,我开车带着孩子去加利福尼亚海岸的一个偏远地点冲浪。当我坐在车里看着他时,我能够轻松地将本地 CSV 文件中的样本数据导入到我的本地 InfluxDB 实例中,然后编写一些 Flux 代码 来查询它。在海滩上编码——转向远程工作环境的一个亮点!

InfluxDB OSS lets you work on your time series data even where there's no network

InfluxDB OSS 允许您在没有网络的情况下处理时序数据

由于 InfluxDB OSS 和 Cloud 之间的 UI、CLI、API 和客户端库几乎相同,您可以始终无需修改地将资源如 Flux 脚本、InfluxDB 模板、InfluxDB 仪表板、任务、警报和 Grafana 仪表板从 OSS 移动到 Cloud(反之亦然),从而简化 DevOps 流程。

InfluxDB 开源版和 Cloud 之间的差异很少,在我们的 文档 的左侧导航中进行了突出显示。

Differences between InfluxDB OSS and Cloud are noted in the InfluxData Docs site.

我们在文档中记录了InfluxDB OSS和Cloud之间的差异。

我们还简化了切换你的Telegraf代理、使用InfluxDB客户端库的客户代码和InfluxDB CLI从指向本地InfluxDB开源实例到InfluxDB Cloud实例的过程。只需将你的InfluxDB开源URL从localhost:8086 更改为相应的InfluxDB Cloud URL,更新你的orgtokenbucket,一切就绪。

当使用CLI时,你可以创建连接配置,并在从开源到云和返回的过程中轻松在配置之间切换。此外,我们刚刚为动态设置你的配置文件添加了一个-c 标志。

InfluxDB边缘处理

物联网中的一种常见模式是,人们将Telegraf设置为同时向边缘设备上的本地InfluxDB OSS实例和中心InfluxDB Cloud实例双写。这个边缘设备可能小到Arduino板,大到风车。由于InfluxDB OSS是一个单一轻量级二进制文件,它可以轻松部署在计算资源最少的设备上。

influxdb minimal compute resources

@harrisonbroadbent 通过 Unsplash

在这种情况下,InfluxDB OSS的边缘实例通常只保存边缘设备的全分辨率遥测数据,而中心InfluxDB Cloud实例则保存所有设备的遥测数据。InfluxDB Cloud遥测数据下采样的程度通常是业务需求、边缘设备连接可靠性和带宽的函数。

使用这种方法,负责管理本地环境(如渡轮、油井平台、农田等)的人可以拥有完整的遥测数据来解决问题,无需担心与中心云实例的连接。而总部人员可以使用InfluxDB Cloud分析整个物联网车队的趋势和问题。

例如,我们的一位客户运营海上石油钻井平台。他们收集的所有各种时间序列指标都存储在本地InfluxDB OSS实例中,并且钻井平台的操作员可以通过仪表板访问这些信息。这些信息为钻平台上正在发生的事情提供了关键的近实时可见性。

对于一些正在监控的设备,人们希望能够在公司总部访问这些数据(比本地捕获和存储的数据分辨率低)——总部人员可以分析所有钻井平台的数据,并查看设备操作特性的相似性和差异性。这使得可以进行预测性维护等分析,并将结果发送回钻井平台操作员。

oil rig predictive maintenance

由于InfluxDB OSS和Cloud共享相同的UI、API和CLI,并且都使用Flux,现场和中央办公室的团队成员可以轻松地相互共享结果和发现。

要实现此模式,您需要同时向InfluxDB Cloud和InfluxDB OSS进行双写,以实现本地备份。为此,您需要将类似以下文本放入Telegraf配置文件中(通常称为telegraf.conf):

# Write to InfluxDB open source
[[outputs.influxdb_v2]] # For InfluxDB 2.0
 urls = ["http://127.0.0.1:8086"]
token = "your-token"
organization = "your-organization-name"
bucket = "your-bucket-name"

# Write to InfluxDB Cloud
[[outputs.influxdb_v2]]
# Write to AWS Oregon instance.
# Other cloud URLs: https://docs.influxdb.org.cn/influxdb/cloud/reference/regions/
urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
token = "your-token"
organization = "email-you-use-to-sign-into-influxdb-cloud"
bucket = "your-bucket-name"

使用此配置,每次写入都会同时发送到您本地的InfluxDB OSS实例和InfluxDB Cloud实例。因此,两个实例中的数据都保持同步,实时更新;无需定期运行备份的批量处理。

现在InfluxDB OSS 2.0已正式发布,我们将进一步投资于边缘处理领域,简化并支持这些版本之间的边缘到云连接。

断网监控

但是,对于那些无法进行双写的场景,因为它们没有互联网连接。这包括出于安全目的而断开互联网连接的服务器和设备(或“空气隔离”),因此无法将监控遥测数据发送到InfluxDB Cloud。例如,发电厂通常断开连接以防止广泛的威胁向量。

如果您的服务器或设备处于空气隔离状态,您可以在它们上安装InfluxDB OSS并使用它来收集监控数据,以提供本地可观察性和控制。但是,如果您需要比单个InfluxDB OSS节点提供的可扩展性或可靠性更高的级别,您应考虑InfluxDB Enterprise。InfluxDB Enterprise提供横向扩展和高度可用性配置。

那么,InfluxDB OSS的这种使用方式如何补充InfluxDB Cloud呢?由于云和OSS共享相同的API、CLI、Web用户界面和客户端库,您可以将仪表板、任务和警报等资产轻松地在您的空气隔离InfluxDB OSS实例和InfluxDB Cloud实例之间共享。例如,如果您的公司已经将Kubernetes标准化,您将构建一套用于空气隔离和互联网连接位置的k8s监控仪表板。

InfluxDB Cloud与InfluxDB OSS的比较

以下是InfluxDB Cloud与InfluxDB开源版本详细比较。

 

InfluxDB Cloud
InfluxDB开源版本
免费计划
数据探索器
仪表板
任务
警报
通用客户端库
统一REST API
InfluxQL查询
Flux查询
多个 用户
本地开发实例 X
边缘部署 X
实时本地备份 X
断网监控 X
Prometheus爬虫 X
无服务器(无需管理服务器) X
自动应对流量激增 X
高度可用性 X
内置灾难恢复 X
容错 X
自动升级 X
集成Google社交登录(Oauth X

结论

InfluxDB为我们提供了多种数据库部署选项,包括轻量级、自管理的InfluxDB开源版本,您可以在任何地方部署,以及全托管、无服务器的InfluxDB Cloud,让您从数据库基础设施的担忧中解放出来,从而有更多时间专注于您的代码。

我们还要感谢我们的开源社区中的近400位InfluxDB贡献者,他们为共享的InfluxDB开源和云代码库带来创新。与他们一起,我们能为所有提供满足您需求的多种选项。

influxdb contributors

要开始使用上面的模式,请下载InfluxDB开源版并注册一个免费的InfluxDB云账户。然后查看我们的入门指南,并随时加入我们始终乐于助手的InfluxDB社区SlackGitHub仓库提问。祝您使用愉快!