3 种方式 InfluxDB OSS 补充 InfluxDB Cloud
作者:Al Sargent / 产品,用例,开发者
2020年11月16日
导航至
正如您可能知道的,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 和 Cloud 之间的 UI、CLI、API 和客户端库几乎相同,您可以始终无需修改地将资源如 Flux 脚本、InfluxDB 模板、InfluxDB 仪表板、任务、警报和 Grafana 仪表板从 OSS 移动到 Cloud(反之亦然),从而简化 DevOps 流程。
InfluxDB 开源版和 Cloud 之间的差异很少,在我们的 文档 的左侧导航中进行了突出显示。
我们还简化了切换你的Telegraf代理、使用InfluxDB客户端库的客户代码和InfluxDB CLI从指向本地InfluxDB开源实例到InfluxDB Cloud实例的过程。只需将你的InfluxDB开源URL从localhost:8086
更改为相应的InfluxDB Cloud URL,更新你的org、token和bucket,一切就绪。
当使用CLI时,你可以创建连接配置,并在从开源到云和返回的过程中轻松在配置之间切换。此外,我们刚刚为动态设置你的配置文件添加了一个-c
标志。
InfluxDB边缘处理
物联网中的一种常见模式是,人们将Telegraf设置为同时向边缘设备上的本地InfluxDB OSS实例和中心InfluxDB Cloud实例双写。这个边缘设备可能小到Arduino板,大到风车。由于InfluxDB OSS是一个单一轻量级二进制文件,它可以轻松部署在计算资源最少的设备上。
在这种情况下,InfluxDB OSS的边缘实例通常只保存边缘设备的全分辨率遥测数据,而中心InfluxDB Cloud实例则保存所有设备的遥测数据。InfluxDB Cloud遥测数据下采样的程度通常是业务需求、边缘设备连接可靠性和带宽的函数。
使用这种方法,负责管理本地环境(如渡轮、油井平台、农田等)的人可以拥有完整的遥测数据来解决问题,无需担心与中心云实例的连接。而总部人员可以使用InfluxDB Cloud分析整个物联网车队的趋势和问题。
例如,我们的一位客户运营海上石油钻井平台。他们收集的所有各种时间序列指标都存储在本地InfluxDB OSS实例中,并且钻井平台的操作员可以通过仪表板访问这些信息。这些信息为钻平台上正在发生的事情提供了关键的近实时可见性。
对于一些正在监控的设备,人们希望能够在公司总部访问这些数据(比本地捕获和存储的数据分辨率低)——总部人员可以分析所有钻井平台的数据,并查看设备操作特性的相似性和差异性。这使得可以进行预测性维护等分析,并将结果发送回钻井平台操作员。
由于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开源版并注册一个免费的InfluxDB云账户。然后查看我们的入门指南,并随时加入我们始终乐于助手的InfluxDB社区、Slack和GitHub仓库提问。祝您使用愉快!