博客/社区

如何在厨房里设置下一个级别的个人家庭仪表盘

2019年10月29日16分钟

我们在Grafana专家的Facebook小组中看到了Cameron令人印象深刻的仪表盘,并请他为我们分析一下。


当朋友和访客看到我厨房里的家庭仪表盘时,他们通常会认为它“真的很整洁”,看起来“令人印象深刻”。通常这就是他们从中拿走的东西。这很“酷”,尽管这可能是真的,这不是它的目的。

家仪表板
家仪表板

你在这个仪表板上看到的是我家日常运作的重要信息。我能从别处得到信息吗?是的,当然。但如果没有Grafana,我在做早餐、准备工作和祝福家人的时候,就无法轻松、快速地浏览一下这些信息。

这个仪表板的目的是为我提供最好的可用信息现在这样我就能在一天中做出更好、更明智的决定。还有一个让人安心的因素。有时你不必现在就做决定,有了Grafana一眼就能给我的视觉确认,我可以少一点担心地过我的生活。

本评论包括:

  • 这些信息从何而来,如何提取
  • 为什么这个信息对我很重要
  • 否则我将如何访问这些信息(在没有Grafana的情况下)
  • 在没有Grafana的情况下,我需要多少时间才能访问这些信息?
  • 我使用了什么设备和程序来提取这些信息

免责声明

讲授我使用过的或亲自开发的过程是很容易的,但我要注意的是,对于任何复杂的软件套件或定制的软件部署,我无论如何都不会假装对与Grafana相关的所有事情都有全面的了解,我一直在学习Grafana和相关的主题,以提高我的理解。

我今天所评论的仪表盘的形式已经经过了大约2年的发展。随着我知识的进步,它可能会进化得更多,所以我们可能会也可能不会再看到它目前的形式。

平台交叉兼容性

除了实时摄像镜头之外,您在这个仪表板上看到的所有内容以及所有相关组件都可以在Windows和基于unix的系统上运行。

在摄像头馈电的情况下,我使用的是只在Windows上运行的软件套件(稍后将详细讨论);然而,我是非常有信心在其他平台上使用类似的和同样容易访问的东西。

我的背景

除了使用Apache进行相当多的PHP部署和Web应用程序简化之外(由于Apache的可访问性和易用性),我是Microsoft Windows系统管理员。因此,我所有与grafana相关的部署都托管在Windows计算机上。

我擅长平面设计、前端设计、Web框架(如Wordpress和Joomla),我还接受过网络安全和Windows服务器管理方面的传统培训。我还专门研究业务自动化,这就是为什么Grafana在我的日常生活中变得如此重要,无论是在家里还是在工作中。

我亲自监督了两个主要的专有Web应用程序(都是ASP.Net)的开发和实现,目前我正在监督第三个更大、更复杂的Web应用程序。

就Grafana而言,我分享我学到和发展的一切。我这样做一方面是因为我为自己所取得的成就感到自豪,另一方面也是因为看到其他人走上类似的道路,并完成了前人没有做过的事情,我很高兴。

你可以看到我的(有点过时的)简历在这里

同样的简历,你可以看到哈利波特的转折在这里

仪表板

本评论将使用以下仪表板作为参考:

注释主页仪表板
注释主页仪表板

这些信息从何而来

让我们来看看我信息的具体来源。请注意,上面仪表盘图像上的面板引用数字对于从视觉上准确识别我所说的面板是必要的。

Telegraf

面板4、6和8

Telegraf是由流入数据免费提供的,它很可能是您在开始创建Grafana仪表板后接触到的第一个指标收集器。

它的设计目的是收集系统指标,如CPU使用情况、RAM、硬盘驱动器空间和各种I/O状态,并将这些指标报告给InfluxDB,然后由Grafana显示。

工作流程:

电报⇨InfluxDB⇨Grafana

您可以查看一些相当全面的Telegraf安装和使用教程[此处](https://g-ee.alexsguardian.net/books/telegraf)

HTML Iframes

面板1、2、5、10和18

工作流程:

Iframe来源⇨Grafana

您可以在这些面板中嵌入来自外部源的内容。没有要进行的InfluxDB查询。

Grafana版本6.4默认情况下不允许编译iframe,因为iframe内容可能会被安全漏洞所利用。为了让HTML iframe工作,你必须在Grafana设置文件中禁用HTML消毒。

为了让这些iframe在我的仪表板上正确显示,我必须创建一些自定义CSS,以便通过缩放和变换CSS类来缩小或放大iframe内容。下面是我在Weather面板上使用的CSS示例,以便使它正确地适合我的仪表板(面板#10):

在上面的CSS示例中,我为Weather Iframe创建了一个ID,然后在该ID上分配CSS类,并配置这些类以减少或增加Iframe上的缩放和转换级别。

请看我们的iframe教程在这里

Varken for Plex Metrics

面板3、7、13和14

这些面板是为那些使用的人准备的.Plex允许你将dvd和Bluray电影拷贝到电脑上进行数字存储,然后通过类似Netflix的网络界面与家人共享。

工作流程:

Plex⇨Tautulli⇨Varken⇨InfluxDB⇨Grafana

由于Plex、Tautulli、Varken、Grafana和InfluxDB的需要,这无疑是仪表板上最复杂的一系列面板。这有很多东西,但当一切都开始正常工作时,这是令人惊讶的。

点击这里查看各种安装教程:

安装丛(这是一个相当简单的设置。)

安装Tautulli(这有点复杂。)

安装Varken(目前还没有Windows教程-我正在努力。:) )

Varken带有一个非常不错的默认仪表板,但我不需要所有的面板,而且我想将Varken集成到我的自定义仪表板中。为了实现这一点,您必须将查询从Varken仪表板复制到您的自定义仪表板,或者您也可以这样做本教程手动设置。

路由器上/下指标

面板8.1及9

工作流程:

路由器(DD-WRT)⇨普罗米修斯⇨InfluxDB⇨Grafana

这些面板通过SNMP(简单网络管理协议)输出显示路由器的上升/下降指标和正常运行时间。这是一个很难正常工作的项目,因为我在研究的中途发现,为了让我的路由器输出SNMP指标,我必须加载第三方固件,而不是使用路由器的本机固件。

这很令人沮丧,因为据我所知——自从我与电信设备打交道以来,这一点经常得到加强——默认情况下,所有路由器和交换机都应该有SNMP输出。

事实证明,对于许多家用路由器来说,情况并非如此。在我能够从路由器中提取SNMP指标之前,我需要找到一种方法,将路由器的本机固件替换为可提供所需SNMP输出选项的替代固件。

为了实现这一点,我使用了DD-WRT固件,这似乎是最流行和成熟的第三方固件品牌。

注意:对于租用的路由器(也就是说,您没有购买并从您的ISP租用的路由器),不太可能有DD-WRT发行版。

为了安装DD-WRT,你必须检查你的路由器是否与DD-WRT兼容,你可以这样做在这里.(确保不要加载错误的固件,因为它会破坏你的路由器。)

一旦我加载和配置了新的固件,我就确认了SNMP指标正在从路由器输出太阳风公司的MIB Walker,然后我准备设置某种类型的数据收集器,将指标输入到InfluxDB中。我最终选择了Prometheus的Prometheus SNMP连接器。

我还没有普罗米修斯或者Prometheus SNMP Connector Windows安装教程,尽管Alexander H.已经为Docker创建了Prometheus安装教程在这里

实时HTTP摄像机流

面板18

使用anke 8端口DVR,我能够将输出的RTSP流转换为可以嵌入到Web页面中的HTTP流。

工作流程:

安克DVR⇨ContaCam⇨Iframe⇨Grafana

请注意,不是所有的dvr都有RTSP流。在我的例子中,我使用了一个便宜的Annke 8端口DVR(来自亚马逊),默认有RTSP流输出。我试图从其他dvr捕捉RTSP流,却发现它们不输出RTSP流。

将RTSP流嵌入到Web浏览器中并不是不可能的,但是由于极高的吞吐量,这是很困难的,所以我决定首先寻找一种将RTSP流转换为HTTP流的方法。为此,我最终使用了ContaCam,它安装在我网络内的Windows服务器上,是完全免费的。(尽管他们确实需要捐款,我也确实捐了几美元,因为ContaCam非常棒。)

下载ContaCam在这里

一旦我将DVR的RTSP流调入ContaCam,我就可以打开ContaCam的内置Web服务器,以提供现已转换的HTTP视频流。请注意,启用ContaCam Web服务器仍然需要像Apache这样的PHP编译器——或者在我的情况下,我使用Xampp来托管PHP文件,而ContaCam Web文件必须在Apache的“htdocs”文件夹中。完成后,我将每个单独的HTTP视频流嵌入到Grafana中的iframes中。

视频质量保持不变,但通过ContaCam控制帧率。为了保持内部网络的带宽,我将帧率降低到1帧/秒,这将ContaCam的吞吐量从10兆字节/秒降低到大约1兆字节/秒。

请参阅我的完整ContaCam RTSP到HTTP转换教程在这里

注意:ContaCam不兼容Unix/Linux。我通过快速谷歌搜索找到了一些基于Unix/ linux的替代方案,我相信其中一个或多个应该能够做同样的事情。

Plex电影海报展示

面板15

Plex电影海报显示是由“MattShack”开发的第三方脚本,可供下载GitHub上

工作流程:

Plex⇨PMPD⇨Iframe⇨Grafana

这个简洁的脚本由马特设计,输出“最近添加”和“正在播放”的信息与完整的电影海报到一个大屏幕电视。它有一个基于web的管理后端和前端,我可以在Grafana中将其操作为iframe。

您必须在服务器上运行某个版本的Apache,才能使该脚本正常工作。我正在使用Xampp(我正在使用完全的Apache,但我发现我不需要那么大的马力)。

待定账单和账单金额

面板12、16和17

这些面板显示从经过身份验证的Web页面提取的数据。在这种情况下,他们显示了我的七个主要的月账单。

工作流程:

网站⇨刮刀⇨InfluxDB⇨Grafana

你可以下载AT&T的互联网刮板在这里

使用Python,我创建了几个Web scraper去每个网页,登录,导航到“总到期”页面,并提取到期金额和到期日期。在我的电力公司的情况下,我不仅能够提取总到期和到期日期,而且我还能够提取其他有用的信息,如我去年同期使用了多少千瓦时,到目前为止我在这个计费期使用了多少千瓦时,以及我的平均每日电力成本。(是的,我知道它非常高,因此也非常贵!)

这些Web scraper在一天中的指定时间启动,并自动将它们提取的数据插入到InfluxDB中,这时Grafana会刷新并显示新的指标。

这些脚本的存续期可能有限。他们抓取的网页很可能在某个时候改变了他们的配置,导致脚本无法抓取数据——在这一点上,我将不得不更新脚本以适应网站的新配置。

我将尽快将这些脚本的其余部分上传到GitHub。

其他的考虑

在Windows系统引导下启动应用程序

上述进程、脚本和应用程序必须在Windows启动时自动启动。我不喜欢每次停电时都去我的服务器上点击我需要的每个程序。

此外,您还可以通过BIOS配置服务器(Windows或Unix/Linux)在断电后继续开机。

要在Windows启动时启动程序,只需单击“启动”⇨运行⇨类型壳牌:启动并按Enter -在这一点上,一个文件夹将出现。在此文件夹中创建要在计算机启动时启动的应用程序的快捷方式。

完成这些操作后,单击Start⇨Run⇨typenetplwiz点击回车键,然后取消选中“用户必须输入用户名和密码才能使用这台计算机”的选项。

请注意,这不是很安全。将应用程序转换为后台进程要好得多,但有点复杂。

将应用程序转换为Windows后台进程

将应用程序转换为后台进程可以解决上述问题,还可以创建一个无需登录Windows服务器就可以开始运行应用程序的环境。

使用本教程将您的应用程序和脚本转换为Windows后台服务。

为什么这些信息对我很重要?

这个仪表板上的大部分信息在某种程度上与我、我的家庭或我的家庭有关。但是,当这些信息可以通过手机或台式机访问时,为什么要花费如此大的精力将这些信息整合成一个易于消化的一瞥呢?

我有几个理由:

这些信息都在一个地方。我不需要登录几个不同的网页来使用这些信息。我只要转头就行了。事实上,如果你数一数我在这里展示了多少个信息来源我得登陆8个不同的网页和4台不同的电脑,这甚至还没有考虑到一个事实,那就是有时候我只是不想现在就去获取相关信息。我希望你能告诉我这些信息。

安全。我们非常喜欢看到监控摄像头给我们带来的平静。事实上,一旦我们完成了长期以来的买房计划,我计划在我们住的每个主要房间里安装一个Grafana仪表盘——我就不必为了看到我们的安全摄像头而到处运行BNC电缆了。

我更了解情况。在这个仪表盘出现之前,我从来没有走出家门去面对配备这些信息的一天。有时我会在离开前用手机查一下天气,但这种情况很少,因此我还没有为这一天做好准备。在其他情况下,我会被提醒我需要去付房租,或者我的婚礼马上就要到了,或者我的媒体服务器硬盘空间快用完了——所有这些都是重要的事情。对于那些记忆力极好的人,我要说,太棒了!但我的记忆力大不如前了。

这个仪表板实际上节省了多少时间?

我得做些估算。首先,我要估计一下我每天实际花多少时间“看”显示器——假设是10分钟——以及我每天看它多少次——假设是10次。每次看一眼1分钟,每周70分钟。

其次,让我们估计一下手动从Internet收集相同的信息需要多长时间。

这里有来自8个不同Web页面的信息,它们都位于一个登录表单后面。假设我花了20秒登录到一个Web页面,又花了5秒导航到我想要的信息,又花了10秒阅读该信息。每浏览一个网页需要35秒,乘以8个网页= 4.6分钟,这还是假设我没有分心的情况下。

要登录我家里的四台电脑,检查CPU使用情况、RAM使用情况和磁盘空间,每台电脑大约需要1.5分钟,也就是6分钟。

我总共花了10.6分钟手动查看这些信息一次。再乘以10(我估计我每天实际看这个仪表盘的次数),我现在每天有1.76个小时,每周17.6个小时。

显然我永远不会实际上花这么多时间手动查看这些指标。没有它我可能会继续,但我不想这样。我现在就想要这些信息,我不想花一辈子的时间去获取。

专业使用

除了我上面向您描述的家庭仪表板之外,我还将Grafana大量地集成到我的专业工作中。我有一份朝九晚五的工作,我一直人手不足,工作过度,如果没有Grafana提供的自动化和数据可视化,我绝对不可能高效地工作。这几乎是不可能的,除非我每周工作100多个小时。请允许我解释一下原因。

我在我居住的州管理着几百个数字标牌装置。这些屏幕大多是本地的,在城镇的另一边或相对较近的地方——基本上在开车可达的范围内。他们中的许多人在隔壁的县,也许30分钟的车程,……他们中的一些人在300英里之外。

使用Grafana,一个专有的VPN,一些聪明的自动化设备和四台大屏幕液晶电视,在过去的两年里,我能够实时看到所有的数字标牌安装。就像,现在。我能知道什么时候屏幕坏了,我能知道什么时候屏幕上有错误的内容,我能知道远程计算机什么时候开着,工作正常,电视什么时候开着或关着,或者它什么时候坏了,需要派人修理。我可以坐在办公桌前完成所有这些工作,而不需要每天开车去每个地方。

结论

提取、操作和可视化数据是一项令人着迷的工作。说“知识就是力量”的人是对的。现在我想知道是什么其他我可以用Grafana可视化的指标,这将使我的家庭受益。