博客/工程

把你的办公室变成一个飞利浦的色调和Grafana NOC的房间

2021年5月27日4分钟

我最近有几个飞利浦色相打灯来我家办公室设置,与api的一些修炼之后,我决定将是一个有趣的项目创建我自己的个人NOC房间,使用它们来可视化我一些系统的状态监测。

它是如何工作的呢?

Grafana附带一些有趣的通知功能,如Pagerduty,Opsgenie,webhook。我们将使用webhook“发送信息通过HTTP状态改变自定义端点”。

接到通知,我们webhook将与我们的色调桥。当它收到一个警告通知,它将打开配置光组在一个明亮的红色。如果它收到一个“OK”通知,它将改变颜色更让人放心的绿色。

你可以查看webhook代码https://github.com/Elfo404/grafana-hue-notifier。这是一个简单的节点。js应用程序与飞利浦色调桥api。

为简单起见,我们将使用TestData DB。这个Grafana数据源生成随机数据,这是非常方便测试。

快速入门使用码头工人组成的文件

如果你只是想尝试这一快速,回购包含一个docker-compose.yml文件,将自旋向上一个本地Grafana实例与上面所示的webhook,一切已经提供。

在启动容器之前,确保创建一个.env文件(你可以复制.env.example)和env变量替换为一个生成的下面webhook设置说明

一旦你更新.env文件,您可以运行docker-compose起来,一切都应该工作。

同一个网络上运行Grafana作为你的色相桥

这是一个简单的方法开始。如果你已经做一些家庭自动化,那么你已经运行Grafana在您的网络。

构建webhook码头工人的形象

克隆https://github.com/Elfo404/grafana-hue-notifier和运行码头工人建造- t grafana-hue-notifier

Webhook设置

一些颜色的api需要身份验证。这需要按你的色相桥大按钮生成一个新的用户使用webhook。

之前构建的形象还包含一个脚本为您生成一个用户。

按色相桥键和运行码头工人——净=主机运行grafana-hue-notifier npm运行设置

命令将打印到控制台新创建的用户的用户名和一个光组和他们的id列表。这里有一个例子:

现在,您可以运行webhook端口= 3001 HUE_USERNAME = <用户名> HUE_GROUP_ID = < your-hue-group-id >码头工人——净=主机grafana-hue-notifier运行

通知渠道设置

我们需要做的第一件事是创建一个通知渠道在Grafana webhook将发送状态更新。

选择任何名字你可能想分配信道,选择Webhook类型选择和设置的URL webhook会听:http://localhost: 3001 /色调

数据源和警报设置

正如上面提到的,我们将使用TestData DB为简单起见,但webhook将与任何数据源,支持报警,所以随意选择一个更好的适合你的需要。

配置- >数据源- >添加数据来源,选TestData DB,给它一个名称,并单击保存

现在让我们创建一个新的面板在仪表板和警报使用我们之前创建的通知渠道。对于本例,我们使用的是可预测的每30秒脉冲变化状态:

对于这个演示,我们将评估预警规则每5秒,我们会设置0

这个值显示多久Grafana应该评估预警规则配置之前发送一个通知。通过设置它0,我们跳过“等待”状态。

Ta-daa !

我们现在应该一切运行!

我们刚刚创建的预警规则将评估每5秒,当警报“提醒”状态,Grafana将调用webhook我们应该开始看到我们的灯打开,改变颜色鲜红。

注意灯只会打开,如果通知状态是“提醒”,我准备打赌没有一个人喜欢在凌晨3点接到一个电话说“嘿!这里的一切都很好!”

最简单的方法开始Grafana和可观察性Grafana云,我们有免费和付费计划以适应每个用例。如果你不是已经在使用Grafana云,今天免费注册