管理番号:YMHRT-4590
(最終更新日: 2023/7/26)
Luaスクリプト機能の対応機種は、RTX5000、RTX3510、RTX3500、RTX1300、RTX1220、RTX1210、RTX1200(Rev.10.01.16以降)、RTX830、RTX810、NVR700W、NVR510、NVR500、FWX120、SRT100(Rev.10.00.52以降)、vRXです。
定期的にLANインターフェースの回線使用率を監視し、送信負荷率または受信負荷率が閾値を超えた場合にメールで通知するLuaスクリプトです。
光回線に接続するためには、別途ONUが必要です。
NVR700WとNVR510は、本体のONUポートに小型ONUを装着することで、光回線に接続できます。
対応機種のうち、設定例を掲載している機種は、以下のとおりです。
機種 | 掲載内容 | 備考 |
---|---|---|
RTX5000 RTX3510 RTX3500 RTX1300 RTX1220 RTX1210 RTX1200 RTX830 RTX810 NVR700W NVR510 NVR500 SRT100 | コマンド設定例 Luaスクリプト例 |
Luaスクリプト機能 |
ゲートウェイの設定 | ip route default gateway dhcp lan2 |
---|---|
LANインターフェースの設定 (LAN1ポートを使用) |
ip lan1 address 192.168.0.1/24 |
WANインターフェースの設定 (LAN2ポートを使用) |
ip lan2 address dhcp ip lan2 secure filter in 1020 1030 2000 ip lan2 secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101 102 103 104 105 106 107 ip lan2 nat descriptor 1 |
フィルターの設定 | ip filter source-route on ip filter directed-broadcast on ip filter 1010 reject * * udp,tcp 135 * ip filter 1011 reject * * udp,tcp * 135 ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 1014 reject * * udp,tcp 445 * ip filter 1015 reject * * udp,tcp * 445 ip filter 1020 reject 192.168.0.0/24 * ip filter 1030 pass * 192.168.0.0/24 icmp ip filter 2000 reject * * ip filter 3000 pass * * ip filter dynamic 100 * * ftp ip filter dynamic 101 * * www ip filter dynamic 102 * * domain ip filter dynamic 103 * * smtp ip filter dynamic 104 * * pop3 ip filter dynamic 105 * * submission ip filter dynamic 106 * * tcp ip filter dynamic 107 * * udp |
NATの設定 | nat descriptor type 1 masquerade nat descriptor address outer 1 primary |
DHCPの設定 | dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.0.2-192.168.0.100/24 |
DNSの設定 | dns host lan1 dns server (ISPより指定されたDNSサーバーのIPアドレス) dns private address spoof on |
Luaスクリプトのスケジュール設定 | schedule at 1 startup * lua (Luaスクリプトファイル名) |
設定値 | -- 監視間隔 (1-864000 秒) -- 回線使用率を計測する時間(1, 2 .. 秒) -- 監視するLANインターフェースの番号 -- 送信負荷率の閾値(1 - 99 %) -- 受信負荷率の閾値(1 - 99 %) -- 連続で閾値を超えたら異常と判断する回数、または正常な状態に復帰したと判断する回数(1, 2 ..) -- 正常な状態に復帰した場合にもメールを送るか否か(送る:true / 送らない:false) -- メールの設定 -- メールの送信に失敗したときに出力する SYSLOG のレベル(info, debug, notice) |
---|---|
LANインターフェースの速度を求める関数 | function interface_speed(num) rtn, str = rt.command(cmd) if (not val) or (val == 0) then if ((rt_name == "RTX5000") or (rt_name == "RTX3510") or (rt_name == "RTX3500") or (rt_name == "RTX1300") or (rt_name == "RTX1220") or (rt_name == "RTX1210") or (rt_name == "RTX1200") or (rt_name == "RTX830") or (rt_name == "RTX810") or (rt_name == "NVR700W") or (rt_name == "NVR510") or (rt_name == "NVR500")) then return val |
回線速度を数値に変換する関数 | function unitstr2num(str) val = tonumber(str:match("%d+")) return val |
show status lan コマンドの実行結果から回線使用率を求める関数 | function lan_load_info(num, sec) rtn, str1 = rt.command(cmd) rtn, str2 = rt.command(cmd) n = 1 if (t[1]) and (t[3]) then return rtn, rcv, snd, str1 |
回線使用率が閾値を超えたとき、または正常に復帰したときにメッセージを返す関数 | function make_lanmsg(tbl, val, th, down) if (val) then return str |
閾値を超えた、または下がった連続回数をカウントする関数 | function count_proc(t, val, th) if (val > th) then return rtn |
現在の日時を取得する関数 | function time_stamp() t = os.date("*t") |
メインルーチン | local rtn, str, max while (true) do rtn, rcv, snd, str = lan_load_info(lan_num, avr_sec) if (mail_tbl.text:len() > 0) then rt.sleep(idle_time) |
ご相談・お問い合わせ