個人的備忘録。

インフラSEの備忘録です。インフラ構築、ニュース、ネタをたらたらと書いていきます。。。

YAMAHAルーターLuaスクリプトによる定期状態メール通知

Luaスクリプトの使えるYAMAHAルーターで、定期的なハードウェア状態のメール通知の設定手順を掲載。

 

Luaスクリプトを使ったYAMAHAルーターからのメール通知設定手順のおおまかな流れは、、、

  1. Luaスクリプトを作成
  2. 作成したLuaスクリプトを、TFTPでルーターへアップロード
  3. ルーターのスケジュールでLuaスクリプトを実行させるように設定

と、結構シンプルです。

 

【ルーター情報】
  IP  :  192.168.1.254
  ルーターのadministratorパスワード  :  xyzxyz

【送信メールサーバー情報】
  SMTPサーバー
   smtp.xxx.com (IPアドレスでも可能)
  ポート
   25
  LOGIN(SMTP-AUTH)
   使用しない
  送信者
   abc@xxx.com
  受信者
   cde@yyy.co.jp

 【Luaスクリプト保存場所】
  C:\script\ShowEnvironment.lua
  ※ 必ずShift-JIS形式で編集!!

 

 【定期ハードウェア状態メール通知Luaスクリプト】

下記のLuaスクリプトを「ShowEnvironment.lua」という名前で保存
※ 必ずShift-JIS形式で編集&保存すること!!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-- ##### 定期ハードウェア状態メール通知Luaスクリプト #####
--------------------------##  変数の代入  ##--------------------------------
-- ルーター名
rtname = "(RTX810)"
-- "show environment"結果を通知する

cmd = "show environment"
-- メールの設定
mail_tbl = {
  smtp_address = "smtp.xxx.com",
  from = "abc@xxx.com",
  to = "cde@yyy.co.jp",
  subject = rtname .. " " ..cmd .. "実行結果通知"
}

-- メールの送信に失敗した時に出力する SYSLOG のレベル (info, debug, notice)
log_level = "(info)"
----------------------##  変数の代入ここまで  ##----------------------------
------------------------------------------------------------
-- メインルーチン                                         --
------------------------------------------------------------
local rtn, str
rtn, str = rt.command(cmd)
if rtn and str then
  mail_tbl.text = rtname .. " " .. cmd .. "の実行結果\r\n\r\n" .. str
  rt.mail(mail_tbl)
end
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 【YAMAHAルーターへの設定1】

# tftp host any
  // TFTPサーバーの接続許可設定
# syslog info on
  // Luaスクリプトが動いているかの確認のためにsyslogにログを残す設定
# make directory /dir1
  // Luaスクリプトを保存するためのディレクトリ作成
# show file list /all
  // 作成したディレクトリの確認 

 

【TFTPでのYAMAHAルーターへの転送】

Windows標準のTFTPクライアントを使用。
 ※TFTPクライアントの利用設定方法は下記
 http://symfoware.blog68.fc2.com/blog-entry-751.html

ルーター本体の内蔵フラッシュROMのRTFS領域へ転送して保存します。
 ※RTFSについて
 http://www.rtpro.yamaha.co.jp/RT/docs/rtfs/index.html

 

コマンドプロンプトより、
# cd C:\script
  // Luaスクリプト保存フォルダへ移動
# tftp 192.168.1.254 put ShowEnvironment.lua /dir1/ShowEnvironment.lua/xyzxyz

YAMAHAルーターのコンソールより、
# show file list /all
コマンドにてアップロードされているか確認。

 

 【YAMAHAルーターへの設定2】

YAMAHAルーターのコンソールより、Luaスクリプトをスケジュール実行させるように設定する。

※時間指定で実行させるには、
# schedule at 1 08:50:00 * lua /dir1/ShowEnvironment.lua
# schedule at 2 09:00:00 * lua /dir1/ShowEnvironment.lua
# schedule at 3 09:10:00 * lua /dir1/ShowEnvironment.lua

※時間指定で毎分実行させるには、
# schedule at 1 08:*:00 * lua /dir1/ShowEnvironment.lua
# schedule at 2 09:*:00 * lua /dir1/ShowEnvironment.lua

 

 【不要になったLuaスクリプト実行ファイル削除】

YAMAHAルーターのコンソールより、保存したディレクトリごと削除
# delete /dir1
# show file list /all

 

 メール送信については、587ポート、SMTP-AUTH認証、POP before SMTPなどの指定できるみたい。使うメールサーバーの仕様に沿ってLuaスクリプトの変数部分を追加する必要があります。下記URLを参考に頑張ってみて下さい。

Lua言語のライブラリ関数(rt.mail)
http://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/library.html#rt.mail

 

(参考サイト)

Luaスクリプト導入マニュアル
http://jp.yamaha.com/products/network/solution/lua/script/manual/#map_trouble

ルーターの状態を報告する
http://jp.yamaha.com/products/network/solution/lua/script/alert/