0%

给Asus AX86U加个监控

使用Node Exporter + Prometheus + Grafana给Asus AX86U加个监控。弄这一套的目的有两个,第一是了解一下Prometheus是如何工作的,第二也是尝试将家里的网络设备监控起来。

Node Exporter: 一个用来收集 Linux/UNIX 硬件和OS metric的工具,并将收集到metric通过HTTP的方式暴露出来。
Prometheus: 开源的系统监视和警报工具。
Grafana: 查询,可视化metric并记录警报。

安装Node Exporter

Asus AX86U是ARMv8架构。亲测,可以使用ARMv7的的包。

1
2
3
4
5
6
7
8
wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-armv7.tar.gz
tar xzvf node_exporter-1.1.2.linux-armv7.tar.gz
mkdir -p /jffs/bin/
cp node_exporter-1.1.2.linux-armv7/node_exporter /jffs/bin/

echo "cru a \"node_exporter\" \"*/1 * * * * ps | grep node_exporter | grep -v -q grep || /jffs/bin/node_exporter\"" >> /jffs/scripts/services-start

reboot

当Node Exporter安装成功之后,访问路由器的9100端口. 如果你的路由器IP是192.168.1.1, 那么可以访问一下 http://192.168.1.1:9100/metrics 就可以得到类似下面的这样的结果。

Node Exporter

看到这样的结果,就说明Node Exporter安装成功了。

需要说明的是,

  1. 这里使用的包是直接拿的Linux的二进制包,所以会比较大,大约16M。可能对于JFFS空间不足的小伙伴儿,就比较难受了。
  2. 这里采集的Linux OS的数据,所以很多的信息对于路由器而言是大可不必的,而有些需要的又没有的。看之后有没有空,自己DIY一版。

安装Prometheus

在开始的时候,我本打算起一个VM用来专门跑Prometheus,但是后来想了一下大可不必。我最终的方案是在Synology DS216+II 上用容器跑了。

配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
alerting:
alertmanagers:
- scheme: http
timeout: 10s
api_version: v1
static_configs:
- targets: []
scrape_configs:
- job_name: prometheus
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- localhost:9090
- job_name: asuswrt
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- 192.168.1.1:9100

Prometheus

安装Grafana

使用了一个已经搭建好了的Grafana,来展示路由器的信息

下面是自己做的一个Dashboard。

Grafana

如果不想自己做,可以使用以下现成的dashboard

https://grafana.com/grafana/dashboards/13978

https://grafana.com/grafana/dashboards/1860