InfluxDB如何帮助业余爱好者改善家庭和职业
作者 Caitlin Croft / 产品,用例,开发者
2020年1月27日
导航至
Caitlin:Matt 请告诉我们一些关于你的情况。
Matt:我最初想成为一名林业工程师,但搬家到另一个省份后错过了报名。我加入了当地大学的科技项目(电子数据开发)。我一直热爱科技,但并不一定是我想追求的职业。我结识了一位当地开发者,加入了一家小型设计公司,开始了设计和前端开发。我逐渐转型做更多后端和电子商务工作,后来加入了一家名为Radian6的初创公司,该公司后被Salesforce收购。我在Salesforce工作了大约八年,期间从初级开发者(AMTS)晋升为软件工程总监。离开Salesforce后,我加入了前同事在另一家初创公司——Rise,担任首席技术官(CTO)。
凯特琳:你为什么加入Rise,作为CTO你的职责是什么?
马特:在Salesforce,我从社交媒体监测和参与开始。当我离开时,我在为他们的Marketing Cloud产品“旅程构建器”进行客户旅程营销。由于之前与Rise的一些团队合作过,这次转换变得容易得多。我期待加入一个新行业、面对新挑战的公司。在Rise,我玩得很开心,我也在学习很多!作为一个做过很多家庭装修和DIY项目的人,我对Rise的雄心壮志充满热情和动力。
作为CTO,当有东西坏了的时候,就得找我来解决(哈哈)。由于我们没有官方的产品管理团队,我还要负责我们的产品路线图,包括设计和规划大型功能推出。我与客户合作帮助他们解决问题,帮助我的团队处理bug和设计新功能。软件开发的所有方面都在我的职责范围内,包括:冲刺交付成果、待办事项优先级排序、监控和仪表化、部署和软件质量,包括测试自动化。
凯特琳:你最初是如何发现InfluxDB的?
马特:我在2016年发现InfluxDB,当时我在我的HomeLab的服务器中处理一个问题。我在家里创建了自己的数据备份基础设施,有过几次DIY数据备份尝试失败。我两次丢失了所有数据——由于灾难性故障在瞬间丢失多年的数据令人心碎。我知道我需要一个比我的硬件RAID5实现更好的解决方案。我为我的服务器和备份解决方案选择了Unraid。一个subreddit是灵感来源;我发现了自己HomeLab的可能性以及如何管理该基础设施而不会让它变成另一份全职工作。
在我从eBay购买服务器后,我发现了一些问题。存在性能问题,如慢速文件传输,我的Mac的Time Machine备份也慢。我需要深入问题,找出原因。提供的开箱即用的工具没有帮助。
我并没有特别寻找时间序列数据库——我知道我需要一个全面的监控解决方案。我需要从整个基础设施中收集指标和事件,存储、分析和绘制数据。我曾考虑过Logstash、Kibana和ElasticSearch。我发现ELK堆栈难以实施和理解。
有人在Reddit上推荐了InfluxDB和Grafana,用于可视化。我发现可以在Docker容器中运行InfluxDB和Telegraf,并能够快速配置它。阅读了一些文档后,我开始尝试InfluxDB和Telegraf,并将指标推送到InfluxDB。我开始使用Grafana中可用的现成仪表板。从学习InfluxDB到拥有仪表板不到一小时!
通过监控CPU、内存、磁盘和网络使用等指标,我发现性能问题的根源。我的一个硬盘正在慢慢损坏,导致我的整个基础设施受到影响。这种快速定位问题的洞察力让我意识到InfluxDB和Telegraf是我的HomeLab架构的支柱。我喜欢它的易用性,以及文档和在线社区如何使我能够轻松编写自己的解决方案,以将更多数据放入InfluxDB。
在研究InfluxDB和其他工具时,我发现了我最适合我的用例的组件。我查看不同编程语言的文档,并非常喜欢我找到的Node.js内容。
Unraid服务器仪表板
我还将所有物联网设备、服务器和Docker指标记录到InfluxDB。当我得知我的Unraid服务器附带了智能平台管理接口(IPMI)协议时,我感到很愉快。这允许我通过网络访问我的服务器以获取多个指标。以下是我在监控服务器和我的Docker容器的一般健康状况时使用的仪表板截图。
凯特琳:你在家还如何使用InfluxDB?
马特:我儿子出生时,我有不少漫长的夜晚空闲时间(感谢产假!)。我享受实验,看看我能在仪表板上实现什么。我休了12周的产假。对我而言很有趣——可能对我的妻子来说不是那么有趣...
鉴于之前的挑战,我决定我需要一台不间断电源(UPS)作为备用电池。我对电力故障期间可能发生的情况感到害怕。我不希望担心数据完整性、数据丢失或其他任何事情。一旦设置好,我在断电的情况下测试了它的运行时间——大约3-5分钟。这对服务器关机来说不够。我又买了一块备用电池,把第一块用来给我的网络硬件供电。我需要一种方式来监控这两个UPS设备。即使在家庭中,可扩展性也成为了问题,因为我继续向网络和基础设施中添加设备。我不想从工作中回家后又要面对另一堆问题。
我购买了SmartThings的DIY智能家居解决方案。我可以连接几乎所有设备,而且我不会被锁定在特定供应商的产品上。他们有一个惊人的API,所以集成很容易。然而,一个常见的问题是中心设备不会告诉你电池是否耗尽或已耗尽(情况正在改善)。这可能是像玻璃破碎探测器这样重要的事情——你可能会有人闯入你的家而你却不知道。这对我来说是个巨大的担忧。我选择不让我家前门被解锁,因为我不想把那么多的控制权交给互联网连接的服务。我喜欢睡觉前关掉所有的灯和锁上门。我已经自动化了一些照明。浴室里的灯在白天会变暗,你离开后大约五分钟就会关掉。所有这些工具只有在电池工作的情况下才能正常使用。
我发现了一个SmartThings社区帖子,它帮助我把分散的传感器数据导入InfluxDB。在那里,InfluxDB救了场,因为现在如果电池的值在几个小时或几天内没有变化,我就会收到警报。如果我看到某个电池的五天内没有变化,它可能已经没电了。
我的所有恒温器都连接在一起,我能够看到以千瓦为单位的当前电流。我用美元来表示使用情况,并与房间中的当前温度进行比较。我可以回答诸如“它们是否在不应该运行的时候运行?”和“我实际上是否为使用的支付——我的月度账单准确吗?”等问题。我能够确定是否有任何恒温器出现问题。我创建了一个脚本,它会向我当地的电力公司查询当时每千瓦时的当前费率,并允许我知道我所在地区的确切费用。
SmartThings仪表板
仪表板提供了我家各个房间的精彩快照,显示了灯光的状态、各个房间的温度以及所有SmartThings设备的电池水平。
我们建了一个10英尺x 3英尺x 4英尺深的升高式花坛。第一年的产量惊人。第二年我们增加了智能灌溉,我想监测阳光、温度以及土壤的湿度和湿度水平。使用树莓派和GardenBot,我将所有的园艺指标推送到InfluxDB。如果将要下霜,我会收到警报,这样我知道需要开始收割。我希望明年找到一个防水的密封外壳,让它全年都放在那里。
在成为父亲之前,我对《战地》游戏系列很感兴趣。我拥有每一款游戏,并且玩了300多个小时。通过Battlefield Tracker,我可以实时查看我的统计数据。我对这些统计数据的表现并不满意。我使用了他们的API,创建了一个脚本来处理数据,并将其推送到InfluxDB。这样我就可以玩游戏,并告诉我自己是否有所提高,是否有所下降等。我关心的任何统计数据,我都可以在我的仪表板上查看。
Battlefield Tracker仪表板
能够追踪我的在线游戏表现,让我能够以我容易使用的格式查看我的统计数据(例如游戏中的排名、每周游戏时间以及一般游戏统计数据和分数)。
架构图
如果我能从我家中的设备获取数据,我会这么做,并且这些数据将会存储在InfluxDB中。我跟踪并绘制烟雾报警器的数据,并能看到烟雾或一氧化碳何时被检测到。Nest门铃的事件数据会被推送到InfluxDB。我只能从飞利浦Hue灯泡中捕获开关数据。这并不很有价值,但我希望在未来能够追踪消耗的瓦特数,并随时间绘制图表。以下是我收集在InfluxDB中的所有数据的概述。
Caitlin:你希望将来使用InfluxDB完成哪些项目?
Matt:我想改进我的智能家居。我使用Nest摄像头,非常喜欢它们,但我想拥有视频并控制它们,而不必支付每月的费用。我将转向Ubiquiti摄像头。我正在使用一个简单的存储库将Ubiquiti数据拉入InfluxDB。我很想得到运动和声音的统计数据。Nest目前提供这项服务,但需要为每个摄像头支付费用,这会迅速增加。我已经有很多指标被推送到InfluxDB,但目前还没有使用。我希望玩转这些数据,并使用它创建一些可视化。
我想得到一个全屋能耗监测器,如Sense。我将能够关联所有电表数据和设备数据。我认为能够将我家中每个耗电电子设备的功率绘制在一个仪表板上将非常酷!
在家中学习了这么多关于InfluxDB的知识后,当我加入Rise时,我意识到时间序列数据库可以帮助解决我们面临的一些挑战。像大多数公司一样,我们一直在努力改进我们的产品和客户体验。虽然我们已经使用了InfluxDB,但我期待在Rise中扩展InfluxDB的使用。
想了解更多关于Rise如何利用InfluxData的信息,请查看完整故事。
如果您想分享您的InfluxDB故事,请点击这里。