LoginSignup
1
0

More than 3 years have passed since last update.

4GPiでもMackerelでモニタしてみる

Last updated at Posted at 2020-03-10

概要

Mechatrax社slee-Pi2に続いて、4GPiを入手。以前開発したslee-Pi2向けのansible playbookを拡張してみた。

手順

先ずは、4GPi向けのansible playbookをREADMEに従って実行します。

このplaybookにより、Mackerel.ioに、通常のシステム・メトリックスに加えて、CPU温度とslee-Pi2のVOLTAGE(電源電圧)WiFi/4GPiの電波強度をカスタム・メトリックスとして投稿するようになります。

mackerel-raspberry-sleepi.png

mackerel-4GPi-tweak.png

これで問題となったのは、Mackerelではマイナス値を描画できないことでした。そこで、マイナス値になるであろうWiFi_SignalLevel 4GPi(RSQR RSRP SSNI)に関しては、+150した値をプロットするグラフをcustom.mechtrax.tweakに表示するようにしました。
これは/opt/mechtrax/sbin/customMechatrax.shのADJUST変数で処理しているので、必要に応じて手入れしてください。
また、4GPiのモデム・インデックスはINDEX変数で処理しています。

~# ansible-playbook -i hosts 4gpi.yml

これで4GPiのインストール・セットアップそしてSORACOMのSIMの設定まで行います。他社SIMを使う場合は、playbookの’nmcli'コマンドの編集もしくは、手動でnmcliを投入します。

ansible playbookで設定できたという事は、該当Raspberry piはip reachableであることが前提になります。

4GPiがつながり、IPアドレスが付与されたか確認するには、以下のコマンドをraspberry piのshellで投入します。

コネクション確認

# ~# ip a show dev wwan0
4: wwan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/none 
    inet 10.134.47.129/30 brd 10.134.47.131 scope global noprefixroute wwan0
       valid_lft forever preferred_lft forever

これが確認できたら、ルーティングの確認をします。

ルーティング

~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.3.1     0.0.0.0         UG    303    0        0 wlan0
default         10.134.47.130   0.0.0.0         UG    700    0        0 wwan0
10.134.47.128   0.0.0.0         255.255.255.252 U     700    0        0 wwan0
192.168.3.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

これから分かる事は、wlan0(Wi-Fi)とwwan0(SORACOM 4G)の経路があり、
metricが小さいwlan0(Wi-Fi)が優先的なdefault routeになることです。

つまり、このままではSORACOMからパケットは出ていかないことになります。

~# curl ifconfig.io
116.94.139.122

このIPアドレスをnslookup・whoisしてみると、LANのWi-Fiルーターに付与されたIPアドレスであり、SORACOMのIPアドレスではないことが分かります。

そこでwwan0のmetricを小さくして、SORACOM 4Gを優先的なdefault routeにします。
一旦、delしてaddします。

~# route del default gw 10.134.47.130
~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.3.1     0.0.0.0         UG    303    0        0 wlan0
10.134.47.128   0.0.0.0         255.255.255.252 U     700    0        0 wwan0
192.168.3.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
~# route add default gw 10.134.47.130 metric 100 netmask 0.0.0.0  wwan0 
~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.134.47.130   0.0.0.0         UG    100    0        0 wwan0
default         192.168.3.1     0.0.0.0         UG    303    0        0 wlan0
10.134.47.128   0.0.0.0         255.255.255.252 U     700    0        0 wwan0
192.168.3.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
~# curl ifconfig.io
103.67.223.47
~# 

これで、SORACOM 4Gへの経路がmetric 100でdefault routeになり、ifconfig.ioへのアクセスは別のIPアドレスになっているのが分かります。このIPアドレスをnslookup・whoisするとSORACOMのIPアドレスになっています。

ルーティング設定固定

以上の設定をpermanentにするには、nmcliコマンドでも行うことができます。

~# nmcli device
DEVICE    TYPE      STATE      CONNECTION       
cdc-wdm0  gsm       connected  gsm-4gpi-soracom 
eth0      ethernet  unmanaged  --               
lo        loopback  unmanaged  --               
wlan0     wifi      unmanaged  --
~# nmcli connection show
NAME              UUID                                  TYPE  DEVICE   
gsm-4gpi-soracom  8ab4fd5c-42e9-41f5-b8d5-504a0a3c9b45  gsm   cdc-wdm0 
~# nmcli c modify gsm-4gpi-soracom ipv4.route-metric 100
~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.134.47.130   0.0.0.0         UG    100    0        0 wwan0
default         192.168.3.1     0.0.0.0         UG    303    0        0 wlan0
10.134.47.128   0.0.0.0         255.255.255.252 U     100    0        0 wwan0
192.168.3.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

備考

wlan0

ここまでは、SORACOM経路のmetricを小さくして対応したが、逆にWiFiの経路のmetricを700より大きくする方法もありますが、その際にはdhcpcd.confにWiFiのmetricを指定することでparmanentします。

/etc/dhcpcd.conf
interface wlan0
metric 800

を追加します。

ansible-playbook

ansible playbookのインベントリで、nmoptに"ipv4.route-metric 100"などのように指定すると、playbook実行時にmetricを指定することができます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0