OpenWRT GL-AR750S vnstat導入からレポートメール送信まで

投稿者: | 2020年5月24日

前回、SDカードをマウントして、そこそこ信頼性のある大容量(!?)ストレージを確保した、 GL-iNet GL-AR750S OpenWRT ルータに vnstat を入れて、永続的なトラフィック監視を実現します。

導入とLUCIでの使い方

vnstatの導入自体はとても簡単、以下のパッケージを opkg で入れるだけです。

  • vnstat
  • luci-app-vnstat

インストール後、サービス開始させることで記録が始まり、LUCI上でグラフを閲覧できます。

図1.LUCIでのvnstatグラフ

図1.LUCIでのvnstatグラフ

記録したいインターフェースは隣りの設定タブで選択します。

図2.LUCIでのvnstat設定

図2.LUCIでのvnstat設定

データベース保存先の変更

但し、vnstatのデータベースはこのままでは、 /var/lib/vnstat/ というtmpfsの領域に配置されているので、機器を再起動してしまうとこれまでのデータは消え去り、またまっさらなデータベースから記録が始まってしまいます。

そこで、OpenWRT公式サイトに挙げられている、Persistent stats (1) に沿って、データベースのパスをSDカード上に変更します。まず、vnstatサービスを停止させ、

SDカード上にフォルダを作成し、既存のデータベースをそこへ移してから、設定ファイルを編集します。

サービスを再開させ、

念の為、元の場所にもうデータベースが生成されていないことを確認。以上で再起動しても失われないデータベースになりました。

 

レポートメール送信

次にレポートメール送信の仕組みです。これは既にRaspberry Piで使っているPythonスクリプトを流用します。 vnstati でグラフ画像を生成、それをメールに貼り付け送信というとてもシンプルなものです。

上記はGmailの587番ポートを例にしていますが、ロリポップなど465番を指定してくるところでは、以下の要領へ変更するだけです。

 

このスクリプトをcronへ登録しておけば毎日、次のようなメールで使用状況を確認することが出来ます。

図3.受信メール

図3.受信メール

まずはWAN、LANを監視対象にしていますが、負荷を見ながらWiFiなどにも対象拡大してみるつもりです。

 

参考

 

追記

メール送信スクリプトを動かすに必要なPythonパッケージを確かめようと最小限でこれらをいれるも、

  • python-base
  • python-email
  • python-openssl

結局、 encodings はどこやねんと怒られ、素直に以下を入れました。

  • python

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA