博客/工程

我怎么监视我和云计算和普罗米修斯Grafana OpenWrt路由器吗

2021年2月9日, 6分钟

我一直在一个开源的粉丝和用户对许多人来说,多年来,回到之前我们定义术语“开源“我们称其为“自由软件”。无论何时何地,只要可能我宁愿控制软件运行在我的设备。

例子:我的网络路由器运行OpenWrt,这是一个自由/开源Linux操作系统旨在取代路由器提供的软件的制造商。你可以安装OpenWrt广泛的支持设备。当你做时,你经常得到增强的稳定性以及额外的配置选项不可用股票软件。

在这篇文章中,我将描述如何监视我的路由器的功能WRT1900AC路由器运行OpenWrt使用Grafana云

先决条件

发送我的度量Grafana云,我首先必须注册一个Grafana云账户和设置。有一个免费的计划这样的项目可以是完美的。我这样做一段时间,所以今天我真正要做的就是准备创建一个普罗米修斯配置YAML文件通过注意我的Grafana云用户名和密码的地方,一个API键。

你也必须有一个互联网路由器设置正确,运行OpenWrt局域网内和系统能够运行普罗米修斯从您的路由器刮指标和转发Grafana云。

与OpenWrt交互

随着基本操作系统,OpenWrt项目提供了一套大型的软件你可以安装定制你如何使用你的硬件和软件。大部分的包允许重要的配置选项。这就是今天我们要完成的目标。

有两种方法可以与OpenWrt安装包。您可以直接使用ssh登录到路由器,或者如果您已经安装了它,你可以使用一个web UI设计师小金。给你一个ssh连接Busybox壳,包括标准的UNIX实用工具的一个有用的子集。

如果你喜欢使用一个GUI,设计师小金提供了一个接口,类似于股票的固件和易于导航。

暴露指标从一个OpenWrt路由器

首先要弄清楚是如何出口路由器的有用指标。我想要的普罗米修斯格式在Grafana云简单的可视化。幸运的是,有普罗米修斯节点出口国OpenWrt包管理器中可用包。

我们将使用命令行接口。我们想安装有几个包,包括一个普罗米修斯节点出口国和一组特定的度量出口商。包:

  • prometheus-node-exporter-lua
  • prometheus-node-exporter-lua-nat_traffic
  • prometheus-node-exporter-lua-netstat
  • prometheus-node-exporter-lua-openwrt
  • prometheus-node-exporter-lua-wifi
  • prometheus-node-exporter-lua-wifi_stations

安装包,我们使用Opkg包管理器,伴随着OpenWrt。首先,更新包的列表:

opkg更新

然后我们希望安装包:

opkg安装prometheus-node-exporter-lua \ prometheus-node-exporter-lua-nat_traffic \ prometheus-node-exporter-lua-netstat \ prometheus-node-exporter-lua-openwrt \ prometheus-node-exporter-lua-wifi \ prometheus-node-exporter-lua-wifi_stations

还有其他普罗米修斯出口国包可用,即使一个包的普罗米修斯本身如果你有一个路由器和足够大的存储和内存运行完整版(在这种情况下,你可以直接从你的路由器remote_write Grafana云!)。我选择这些因为我发现这造成仪表板使用预配置的指标从这组出口商。

出口商我们安装在默认情况下,节点将数据导出到本地主机端口9100 /指标。让我们来测试节点出口国是否导出数据。你可能需要安装旋度效用这个命令之前的作品。如果是这样,您将看到几个屏幕滚动过去的结构化指标。

旋度localhost: 9100 /指标

这很好,但我们不能刮,外部,我们大多数人没有足够的空间在一个路由器运行一个普罗米修斯实例。所以我们需要提供这些指标通过LAN-accessible IP地址。

为此,我们将编辑/etc/config/prometheus-node-exporter-lua。注:安装的编辑OpenWrt vi的BusyBox版本,所以刷了如果你不记得如何使用它(尽管所有sr至少应该知道基础好,对吧?)。

编辑该文件,这些都是它的内容:

配置prometheus-node-exporter-lua '主'选项listen_ipv6 ' 0 '选项listen_port‘9100’选项listen_interface“局域网”

人们很容易listen_interface尝试将一个IP地址,但这行不通。接口需要一个OpenWrt接口名称。你可以找到可用/etc/config/network文件中的命名接口的列表。

编辑/etc/config/prometheus-node-exporter-lua后,必须重新启动服务加载新的配置,如下:

/etc/init.d / prometheus-node-exporter-lua重启

我的路由器的IP地址在我的局域网是192.168.1.1。指标现在任何人都可以在局域网上192.168.1.1:9100 /指标。这是摘录的,看起来就像在我的浏览器:

刮OpenWrt指标与普罗米修斯

最终,我们需要发送Grafana云的指标。要做到这一点,我们必须首先刮指标从内部LAN-available URL。正如我提到的在我的个人博客普罗米修斯,我已经运行在Linux工作站在我的局域网,我用它来给我的其他指标Grafana云实例。

普罗米修斯可以推动指标配置远程使用一个称为远程写的特性。配置远程写发送我的度量Grafana云,我首先要注册一个Grafana云账户和设置。我这样做一段时间,所以今天我真正要做的就是编辑普罗米修斯配置YAML文件,通过插入这个代码片段。当然,我编辑它包括Grafana云用户名和密码的地方,一个API键。

这是需要的代码添加到普罗米修斯。yaml配置文件将通过remote_write特性指标Grafana云账户:

remote_write: url: https://prometheus-us-central1.grafana.net/api/prom/push basic_auth:用户名:密码(您的Grafana云UserID): [Grafana云API键)

与此同时,我添加了一个新的job_name部分:

- job_name: OpenWrt static_configs:目标:[192.168.1.1:9100 ']

观察指标Grafana云

几分钟后,指标开始可用Grafana云。我登录到仪表板- >管理。从那里,我点击导入和进入这个URL的贡献OpenWrt仪表板我之前提到的://www.tubolov.com/grafana/dashboards/11147

这是摘录的仪表板。

附言

整个过程花了我几个小时。它会更快,但是我必须弄清楚一些细节,我记录和分享这篇文章。

因为写这我知道Grafana实验室的bob电竞频道汤姆·威尔基创造了一个init。d脚本OpenWrt要容易完整的运行普罗米修斯node_exporter在你的路由器上而不是上面的Lua版本使用。此外,他创建了一个类似的脚本dnsmasq_exporter,因为OpenWrt已经Dnsmasq安装并运行。

威尔基的一个捕获的方法是,大多数商品/客户级设备,像我六岁v1路由器关于- 1900 ac,没有足够的存储空间或内存运行完整的版本的普罗米修斯出口商。然而,对于那些运行OpenWrt设备上大量的存储和可用内存,这当然是更强大和值得探究的。