Ubiquiti Networks社のルータ EdgeRouter X (ER-X)を数年前に購入したものの放置したままだったので、
今回 L2 スイッチとして使ってみた。
ER-X上ではDebianベースのOSで動いているため、Prometheus用に Node exporter のような監視プログラムを使うことができる。
Prometheus自体はRaspberry Pi上で動かした。
ElastiFlowも動かしたかったが、Raspberry Piのスペックでは厳しそうだった。
Prometheus と Grafana の導入
Raspberry PiにPrometheusとGrafnaをインストールする。
Prometheusはメトリクスを収集するために、GrafanaはPrometheusで収集したメトリクスをウェブUIから確認するために使う。
1
2
3
4
5
|
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
apt install prometheus grafana -y
sudo systemctl start prometheus
sudo systemctl start grafana-server
|
Node exporter の導入
ER-XにNode exporterをインストールする。
CPU、メモリ、ディスク、ネットワークに関連するメトリクスを自動で収集してくれる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
curl -L https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-mipsle.tar.gz -o node_exporter.tar.gz
tar xf ./node_exporter.tar.gz
sudo mv ./node_exporter-1.0.1.linux-mipsle/node_exporter /usr/bin/node_exporter
cat << EOF | sudo tee /lib/systemd/system/node_exporter.service
[Unit]
Description=NodeExporter
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start node_exporter
|
Blackbox exporter の導入
自宅内外の適当なホストに対して常時Pingを打ち続けることで外部監視をしたい。
Raspberry Pi上にBlackbox exporterをインストールする。

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
curl -L https://github.com/prometheus/blackbox_exporter/releases/download/v0.17.0/blackbox_exporter-0.17.0.linux-armv7.tar.gz -o blackbox_exporter.tar.gz
tar -xzf blackbox_exporter.tar.gz
sudo cp blackbox_exporter /usr/bin
sudo cp blackbox.yml /etc/
cat << EOF | sudo tee /lib/systemd/system/blackbox_exporter.service
[Unit]
Description=BlackboxExporter
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/blackbox_exporter --config.file=/etc/blackbox.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee -a /etc/blackbox.yml
icmp_ipv4:
prober: icmp
icmp:
preferred_ip_protocol: ip4
EOF
cat << EOF | sudo tee -a /etc/prometheus/prometheus.yml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [icmp_ipv4]
static_configs:
- targets:
- localhost
- 192.168.3.1
- 192.168.3.200
- 192.168.3.201
- 192.168.3.202
- google.co.jp
- yahoo.co.jp
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115
EOF
sudo systemctl daemon-reload
sudo systemctl start blackbox_exporter
sudo systemctl restart prometheus
|