河野哲治のコラム「vRXの外部ストレージマウント機能を試してみよう」

みなさんこんにちは。テックデザインの河野です。

前回のコラム「vRXのパスフレーズ付き公開鍵認証を試してみよう」の最後で「現行機種でも是非実装して欲しい」と言っていたら、2020年1月20日に公開された最新ファームウェアでRTX1210とRTX830が公開鍵認証に対応しましたね。やった!

1月23日に行われた「ヤマハ Meetup 東京 2020」でヤマハ開発者の方に経緯をうかがってみたところ、vRXのファームウェアはRTX1210やRTX830と非常に似ているため、比較的短期間で機能を実装することができたのだとか。今後はクラウドのメリットを生かしてvRXで先行的に新機能が機能がリリースされ、その後RTX1210やRTX830に降りてくるという流れがあるかもしれません。

さて、今回はまだvRXだけの新機能「外部ストレージマウント機能」について紹介いたします。
vRXはNFSやSMBで外部ストレージを最大10個までマウントすることができるので、Syslogサーバーの代わりにAmazon Elastic File System(以下、EFS)を使って外部NFSストレージにvRXのSyslogを保存してみます。

本記事の内容は、AWSアカウントをお持ちであれば vRX 無償トライアルライセンスがなくても試すことが可能です。動作確認は vRX Rev.19.00.01 (Fri Sep 13 12:13:56 2019)、MacOS 10.15.2 Catalina および Windows 10 Pro バージョン1909 で行っています。

1.vRX構成と公式ドキュメントについて

使用するvRXの構成は、vRXユーザーガイド「3.1. AWSに本製品をデプロイする」と同じ構成です(図1)。

図1 ネットワーク構成図
画像引用元:http://www.rtpro.yamaha.co.jp/RT/manual/vrx/userguide/ja/images/image00007.png

外部ストレージマウント機能に関する公式ドキュメントは以下をご参照ください。

ヤマハ仮想ルーター ファイルシステム
http://www.rtpro.yamaha.co.jp/RT/docs/vrx/filesystem/index.html

ヤマハ仮想ルーター vRXユーザーガイド 4.7.1. 外部ストレージをマウントする
http://www.rtpro.yamaha.co.jp/RT/manual/vrx/userguide/ja/04_management_ja.html#%E5%A4%96%E9%83%A8%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%82%92%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%81%99%E3%82%8B

2.セキュリティグループの追加

まずはvRXが外部NFSストレージと通信できるように、セキュリティグループを予め作成しておきます。

AWSマネジメントコンソールの「サービス」の中から「EC2」をクリックして、EC2ダッシュボードにアクセスします。EC2ダッシュボードのメニューから「セキュリティグループ」を選択し、「セキュリティグループの作成」ボタンをクリックします。「セキュリティグループの作成」では、次の内容を設定して「作成」ボタンをクリックします(図2)。

・セキュリティグループ名:vRX_nfs
・説明:vRX_nfs
・VPC:vRXをデプロイしたVPC
・セキュリティグループのルール(インバウンド)
– タイプ:NFS
– プロトコル:TCP
– ポート範囲:2049
– ソース:192.168.10.0/24

図2 セキュリティグループの作成

次に、作成したセキュリティグループをvRXのLAN1に適用します。
EC2ダッシュボードメニューから「ネットワークインターフェイス」を選択します。一覧から「プライマリプライベートIPv4」が192.168.10.254のインターフェイスを選択し、「アクションボタン」をクリックして「セキュリティグループの変更」を選択します。セキュリティグループの一覧から作成した「vRX_nfs」をチェックして、「Save」ボタンをクリックします(図3)。


図3 セキュリティグループの変更

3.NFSストレージの作成

Amazon EFSを使うと簡単にNFSファイルシステムを作ることができるため、わざわざSyslogサーバーを立てなくても容易にSYSLOGを外部ストレージに保存し、活用することができるようになりました。
今回はPrivate subnetにNFS外部ストレージを作成し、vRXのSyslog保存先にとして利用できるように設定します。

まずはAWSマネジメントコンソールの「サービス」の中から「EFS」をクリックして、「Elastic File System Management Console」にアクセスし、「ファイルシステムの作成」ボタンをクリックします。

図4 Elastic File System Management Console

「ステップ1:ネットワークアクセスを設定する」では次の内容を選択して「次のステップ」ボタンをクリックします(図5)。

ネットワークアクセスを設定する
・VPC:vRXをデプロイしたVPCを選択

マウントターゲットの作成
・アベイラリティゾーン:vRXをデプロイしたアベイラビリティゾーン
・サブネット:vRX LAN1のサブネット
・IPアドレス:192.168.10.10
・セキュリティグループ:vRX_nfs(作成したセキュリティグループ)


図5 ファイルシステムの作成

「ステップ2:ファイルシステムの設定を行う」「ステップ3:クライアントアクセスを設定」では、何も変更せず既定のまま「次のステップ」ボタンをクリックします。「ステップ4:確認と作成」で「ファイルシステムの作成」をクリックすると、新しいファイルシステムが作成されます。
「マウントターゲットの状態」が緑字で「利用可能」になったら、vRXにマウントができる状態です(図6)。

図6 NFS外部ストレージ作成後

4.NFSストレージのマウントとSyslog保存先の変更

ここからはvRXの設定になります。
vRXにSSHで接続して管理ユーザーに切り替え、mount コマンドで作成したNFS外部ストレージをプレフィックス「nfs01」でマウントします。

vRX# mount nfs://192.168.10.10/ nfs01
外部ストレージをマウントしました

マウントしたNFS外部ストレージの情報を show status strage interface コマンドで確認します。

vRX# show status storage interface
INTERFACE                                   FILESYSTEM  PREFIX
-----------------------------------------------------------------------------
192.168.10.10:/                             nfs4        nfs01:

マウントしたNFS外部ストレージに make directory コマンドで syslog ディレクトリを作成します。
show file list コマンドでストレージのファイル一覧を表示すると、syslogディレクトリが作成されたことが確認できます。

vRX# make directory efs01:/syslog
vRX# show file list efs01:/
2020/01/28 05:31:11 <DIR>           syslog

syslog mount-server filename コマンドでSyslogの保存先をNFS外部ストレージに変更します。デフォルトでは1024MBでログローテーションが行われ、ローテーション日時(_yyyymmdd_hhmmss)がサフィックスとして付加されます。

vRX# syslog mount-server filename nfs01:/syslog/vrx.txt
vRX# show file list nfs01:/syslog
2020/01/28 06:37:19             502 vrx.txt

ルーターが再起動するとマウントした外部ストレージは全てアンマウントされてしまいます。schedule at コマンドでvRX起動時に外部NFSストレージを自動的にマウントするように設定して、保存しておきます。

vRX# schedule at 1 startup * mount nfs://192.168.10.10/ nfs01
vRX# save
セーブ中... CONFIG0 終了

Syslog保存先のNFS外部ストレージをLinuxサーバーでマウントすれば、tail -f でSyslogの流れを見たり、複雑な正規表現でログ検索ができるのでサポート時に便利ですね。

次回は「ヤマハ Meetup 東京 2020」のLTでデモをした「vRXでSyslogをチェックしてSlack通知するLuaスクリプト」を紹介する予定です。お楽しみに!