　　Advanced NW board アップデートモジュール

◆バージョンとモジュール名
---Ver.4.05.01---

◇総合バージョン
　Ver.4.05.01 16-05-17

◇Linux Kernel
  バージョン　　Build #19 2009-10-30
　モジュール名　gz091030z.lnx
  変更なし

◇アプリケーション
　モジュール名　ap4_05_01.suf

◆不具合修正

◇「インターバルバッテリ異常」を検出しても、それを「バッテリ異常発生」イベントとして扱っていなかったのを修正しました。
　修正後はイベントログには「バッテリ異常発生 インターバルバッテリ異常」と記録され、
　「バッテリ異常発生」イベントが発行されます。
　ただし、「UPS警告発生 (インターバルバッテリ異常)」は従来からイベントとして扱っています。

◇コンソールメニューの「Up/down process：u」で「8 : http」を変更しても「9 : https」が変更されてしまう不具合を修正しました。

◇スクリプトを実行した際にスクリプトのコマンドやターゲットとの通信をスクリプトログに記録していますが、
　1回のスクリプト実行のログサイズが100kByteを超えるとメインプロセスが暴走することがある不具合を修正しました。

◇一旦「バッテリ限界(ローバッテリ)」になると、その後、復電し充電を行ったためローバッテリでなくなっても
　内部のローバッテリフラグがクリアされずに残り、再度、停電が発生するとすぐにローバッテリ状態となり
　シャットダウン告知時間、シャットダウン処理時間を無視し、すぐに次のフェーズに移ったり(スクリプト実行中はそれが終わるまでは待ちます)、
　スクリプトのリトライを行わない(これらはローバッテリ時の仕様です)不具合を修正しました。
　なお、停電が継続し、UPSが完全に停止した場合は、Advanced NW boardも停止し、次に起動したときはフラグもクリアされているため、
　上記のような問題は発生しません。

◇冗長連携で「同期をとって出力停止」を有効にしていても、タイミングによっては同期停止しない不具合を修正しました。

◇停電により、連携を解除した際に、監視画面の「連係機能(冗長管理)」で「冗長管理不可(UPS停止)」と表示されていましたが、
　これを「冗長管理不可(UPS停電)」となるようにしました。
　「冗長管理不可(UPS停止)」はUPS停止処理中やUPSが出力を停止しているときに表示するようにしました。
　同様に「連係機能」の「現在の状態」も停電処理中なら「冗長管理不可(UPS停電)」となるようにしました。
　なお、停電確認時間中は復電する可能性があるので、冗長管理では、この状態は停電扱いにはなりません。


◆仕様変更、機能追加

●システム

◇暗号化ブラウザ用ライブラリを開発時点での最新のものにし、また脆弱性が発見されたSSL 3.0以下を無効化しました。
　このバージョンで対応しているのはTLS 1.0、TLS 1.1です。

◇UPSとの通信処理を見直しました。
　従来はUPSからの停電等の突発的なトラップ情報を受け取れないタイミングがあり、
　その間に発生したトラップ情報は無視され、UPSが数秒後に再送または2回目以降の再送した情報を
　受け取ることがしばしば発生しました。
　そのため、瞬停等が発生してもボードが認識するまで5〜10秒ほど遅れ、詳細を問い合わせる処理を
　行った時点では警告状態が回復していることがあり、警告内容がないためイベントログには
　　2015/10/01,10:10:10,UPS警告発生 ()
　と詳細部分を"()"と記録していました。

　UPSとの通信処理を見直し、トラップ情報を受け取れないタイミングをほとんどなくしたため、
　ほぼ瞬時に停電発生等を検出できるようになりました。

　なお、今回の修正でもトラップ情報を遅れて受信し、詳細が不明になる可能性があります。
　また、瞬間的な過負荷は、トラップ通知を受信後、詳細を入手した時点では回復していることがあります。
　これらの場合は詳細が不明ですので、
　　2015/10/01,10:10:10,UPS警告発生 (警告回復済み)
　とログに記録するようにしました。

　上記の修正により、UPSとのコマンドのやり取りが高速化し、従来、コマンドが一巡するのに約30秒ほどかかりましたが、
　このバージョンより約15秒に短縮され、「監視」画面の値の更新も早くなりました。

◇メインプロセスが異常動作を起こしたとき、再起動や検出を出来るようにしました。
　メインプロセスが何らかの理由で異常終了した場合、ネットワークボードのOSごと再起動するようにしました。
　この場合、再起動後、LEDが４つとも点灯し、その後、一番左が点滅し、起動するに従って1つずつ右に移り、最後に一番右が点滅します。
　これを何度も繰り返すような場合、ボードの故障が考えられます。

　メインプロセスが何らかの理由で無限ループ状態になり、1分以上反応がないと、ボードのLEDの右2つを点滅させるようにしました。
　正常時は一番右のみ点滅しています。
　この状態が4分続くと強制的にシステムを再起動し、それにより回復することがあります。
　LEDの右2つを点滅中にボートの"RESET"ボタンを押すと回復することがあります。

　"RESET"ボタン、または強制再起動を行うと、
　この場合もLEDが４つとも点灯し、その後、一番左が点滅し、起動するに従って1つずつ右に移り、最後に一番右が点滅します。
　再び右2つが点滅する場合、ボードの故障が考えられます。

　なお、以上のような現象が発生しましてもUPS自身の動作には影響はございません。
　しかし、異常を繰り返している場合、ボードが正常にしておりませんので、停電シャットダウン処理等は行われません。
　
◇IPアドレスを初期化する際、アクセス制限も初期化するようにしました。
　下記のいずれかの操作でIPアドレスの初期化を行った場合、アクセス制限も同時に初期化するようにしました。
　　・INITボタンによるIPアドレスの初期化
　　・Webメニューの初期化の「IPアドレス、ポート関係」
　　・usermenuのs.7(Initialize IP address)

◇ftpsv、socketサーバ機能について
　これらの機能は互換のために残しておりますが、新規でのご使用はしないでください。
　添付のCDからftp、socketのサンプルを削除しております。

◇冗長化の「同期待ち時間」の上限を600秒から65535秒にしました。

◇ログインパスワードの条件を明確にしました。
　ログインパスワードは任意の英数記号で、6文字から63文字まで指定可能です。
　Ver.4.04以下では登録は60文字まで可能でしたが、ログイン時に33文字以上は受け付けないため、
　ログインできなくなりました。

◇スクリプトのユーザ文字数を60文字から63文字に増やしました。
　Ver.4.04以前は61文字以上入れても無条件に60文字に切り詰めていましたが、
　Ver.4.05では63文字を超えるとエラー表示するようにしました。
　パスワードは元々59文字で、60文字を超えるとエラー表示していました。


●ログ関係

◇ログ機能を強化しました。

・一括ダウンロード
　全ログを1つのzipファイルにまとめてダウンロードできるようにしました。

・ログの表示
　「ログ設定」画面に「表示」ボタンを追加し、ログの内容を「ログ表示」とほぼ同等に表示できるようにしました。
　なお、「ログ表示」では降順(上が新しく、下が古い)でしたが、ここでの表示は昇順(上が古く、下が新しい)で表示します。

・ダウンロード時に左ボタンでのダウンロードを可能にしました
　従来は「ダウンロード」の「実行」ボタンを押すと、ダウンロードの画面に切り替わり、
　「ここをクリックしてください。」をマウスの左ボタンでクリックすると多くのブラウザが
　ログ内容を画面に表示しましたが、左ボタンでのクリックでブラウザの保存機能が動作するようにしました。
　同様にパラメータの保存も左ボタンでブラウザの保存機能が動作するようにしました。

・ダウンロード時の漢字コードを選択できるようにしました。
　従来はShift-JISコードのみでしたが、「Shift-JIS、EUC、JIS、UTF-8」から選択できます。
　改行コードはEUCのみLF(0x0A)ですが、その他はCR(0x0D),LF(0x0A)です。

・syslog送信時の漢字コードに"UTF-8"を追加しました。

・syslog送信時のパケットに本来のsyslogの仕様通り、送信元のIPアドレスを付加できるようにしました。
　Ver.4.04以前はパケットに送信元IPアドレスが付加されていませんが、Unix系のsyslogdやrsyslogdは
　IPアドレスが無い場合、自動的に送信元のIPアドレスを補完するようになっているため、
　従来通りのままでも問題なく表示できます。
　デフォルトでは互換のため、付加しない設定となっています。
　IPアドレスを付加したい場合は「ログ設定」画面の「syslog設定」の「パケットにIPアドレスを付加する」の
　「付加する」にチェックを入れてください。

◇以下は各ログの変更内容です。

　・イベントログ
　　Advanced NW board起動時に
　　・USP情報(機種名、SN.、プログラムVer.、製造年月日)
　　・ネット情報(IPアドレス、MACアドレス)
　　を残すようにしました。

　・計測ログ 
　　1)ログ記録間のUPSへの最高入力電圧、最低入力電圧をログに残せるようにしました。
　　　従来の入力電圧はサンプリングしたときの電圧のみでしたが、この機能により
　　　前回のログ記録から今回のログ記録までの間の最高入力電圧、最低入力電圧を記録できるようになりました。
　　　なお、従来と互換を保つため、デフォルトでは記録しません。
　　　記録したい場合は「ログ設定」画面の「計測ログのオプション」の「最高最低入力電圧を記録する」の
　　　「記録する」にチェックを入れてください。
　　2)イベントが発生した場合、同時に計測ログも記録を残していましたが、その際に、イベント名も記録できるようにしました。
　　　下記は"1)"の最高、最低入力電圧、イベント情報を記録する場合の計測ログの表示例です。
　　　　2015/10/01,11:03:59,033.0,099.0,000.0,030,068.0,00.0,50.0,051.0,000.0,UPS警告発生
　　　なお、「UPS警告発生」は詳細情報がありますが、その内容はイベントログでご確認ください。
　　　なお、従来と互換を保つため、デフォルトでは記録しません。
　　　記録したい場合は「ログ設定」画面の「計測ログのオプション」の「イベント名を記録する」の
　　　「記録する」にチェックを入れてください。
　　3)イベントログの保存間隔を設定できるようにしました。
　　　範囲は15秒〜3600秒です。デフォルトおよび従来は1分間隔でした。
　　　【備考】
　　　　ログはイベント情報を記録せず、最高最低入力電圧を記録しないと1行58byte、記録すると70byteになります。
　　　　ログサイズは100Kbyte(102400byte)ですので、それぞれ1765行、1462行になります。
　　　　記録間隔を60秒にすると、それぞれ約29時間、約24時間となります。

　・SNMPログ 
　　従来は使用しておりませんでしたが、SNMPマネージャーからのアクセス情報や
　　trapの送信情報、IPアドレス等を記録するようにしました。
　　なお、ログ記録を行うとログ記録処理のため、SNMPの問い合わせに対する応答が遅くなります。
　　多くの問い合わせを行うと全てが終わるのに時間がかかり、SNMPマネージャー側でタイムアウトになる可能性がありますので、
　　互換を保つため、デフォルトではログを残さないようにしています。
　　SNMPログを残す場合はWebの「ログ設定」の「SNMPログのオプション」の「ログ記録する」にチェックを入れてください。
　　詳細はマニュアルをご参照ください。
　　また、名称を「SNMPclログ」から「SNMPログ」に変更しました。

　・CGIログ 
　　従来は設定操作があったことは記録していましたが、
　　このバージョンより設定した内容を全て記録するようにしました。

　・FTPsvログ 
　　従来はftpsvプログラムの起動情報しか記録していませんでしたが、
　　ログインユーザ名、通信元のIPアドレスとftpコマンド("STOR"(put操作)や"PASS"(パスワード入力)等)を記録しています。
　　パスワードでは内容がわからないように「********」固定にしています。
　　ftpコマンドに関するお問い合わせはご遠慮いただきますようお願いいたします。

　　パラメータ、プログラム転送用のftpd(ポート番号2100番)とsocketsvプログラム(デフォルトポート8192)も
　　同じFTPsvログに記録するようにしました。

　　socketsvのログをFTPsvログに残すようにしました。
　　起動情報しか記録していませんでしたが、ログインユーザ名、通信元のIPアドレス、操作内容が記録されます。
　　なお、従来は専用にsocksvログに記録していましたが、記録数が少ないため、FTPsvログと統合しました。

　　ログにはそれぞれ"ftpsv"、"ftpd"、"socketsv"と記録されます。
　　なお、ftpsv、socketsvは互換のためのに残しておりますが、新規でのご使用はしないでください。

　・CuiMenuログ 
　　telnetやsshでボードにアクセスしてボードの制御を行う「コンソールメニュー」の操作記録を
　　CuiMenuログに残すようにしました。
　　アクセス手段(telnet/ssh)、送信元IPアドレスは各行に、ユーザ名はログイン時に
      telnet 「2016/06/15,14:17:12,CuiMenu[telnet:192.168.0.50] Login [upsuser@telnet:192.168.0.50]」
      ssh    「2016/06/15,14:20:57,CuiMenu[ssh:192.168.0.50] Login [upsuser@ssh:192.168.0.50]
    の様に記録されます。

　・UPSログ 
　　変更はありません。
　　このログは調査用のものですので、内容に関するお問い合わせはご遠慮いただきますようお願いいたします。
　
　・スクリプトログ 
　　従来のログに追加し、
　　telnetやsshでサーバから拒否された場合や中断した場合、telet、sshの出力したメッセージを
　　ログに残すようにしました。これにより、何が理由で通信できないかを把握しやすくなっています。
　　例えば下記はパスワード認証しかサポートしていないsshサーバに「パスワード認証を使用しない」にして
　　ログインしようとしたときのスクリプトに残されているログです。
　　　**err [Failed to add the host to the list of known hosts (/usr/local/snmp4/.ssh/known_hosts).
　　　Permission denied (publickey,password,keyboard-interactive).]
　　なお、1行目の[Failed to add the host to the list of known hosts (/usr/local/snmp4/.ssh/known_hosts).]は
　　sshサーバと交換した鍵をボード内に保存しようとしますが、仕様上、保存しないようにしているために表示されます。
　　2行目は接続できなかった際のメッセージですが、ログイン先から返されるメッセージであることもありますので、
　　メッセージの意味についてのお問い合わせはご遠慮いただきますようお願いいたします。

　・管理プロセスログ
　　従来は最低限のエラー情報のみ記録していましたが、
　　このバージョンではイベントログでは把握できない管理(メイン)プロセスの動作状況を記録するようにしました。
　　このログは調査用のものですので、内容に関するお問い合わせはご遠慮いただきますようお願いいたします。

●スクリプト関係

◇スクリプトにコマンド、変数、一部コマンドにオプションを追加しました。

　詳しくはマニュアルをご参照ください。

・コマンドと変数、オプションの大文字、小文字を区別しないようにしました。
　
・「接続方式」に「NoLogin」を追加しました。
　これは「telnet」、「ssh」と異なり、これらで接続を行いません。
　同等の物に「FeliSafeLNW」がありますが、こちらは「IPアドレス」に正しい値が入っているかの確認を行います。
　「NoLogin」はIPアドレスを確認しません。
　新たに追加したスクリプトコマンド用です。

・スクリプト処理後や接続失敗時に通信文字をスクリプトログに残していますが、
　ここにEUC以外の漢字コードがくると文字化けを起こしていましたが、"charcode"の設定に従うようにしました。

・timeout、ltimeoutに動作を変えるオプション"reset"と"cont"を追加しました。
・シャットダウン処理を行う"Shutdown"コマンド、UPSの停止、起動、再起動を行う"Power"コマンドを追加しました
・他のスクリプトを呼び出す"ScriptCall"、"ScriptRun"コマンドを追加しました。
・telnetやsshでログインするための"Telnet"、"Ssh"コマンドを追加しました。
・前もってpingで動作確認が行えるCheckAliveコマンドを追加しました。
・スクリプトを終了する"exit"コマンド、コメントを明確にする";"を追加しました。
・"Telnet"、"Ssh"、CheckAlive"コマンドで使用するIPアドレスを表す変数"$hostIP"を追加しました。

●Web画面関係

◇Webの監視画面の再表示の最短時間を10秒から5秒にしました。
　下記のシャットダウン情報の表示等を追加したため、間隔を短くしました。

◇Webの監視画面にシャットダウン処理のフェーズの表示、経過時間等の表示を行うようにしました。
　シャットダウン処理に入った場合、「シャットダウン状態」という項目が表示され、
　現在どのフェーズにいるのかを把握しやすいようにそれぞれのフェーズ名（例えば"シャットダウン告知時間中"等)を表示するようにしました。
　また、残時間、経過時間、設定時間、累計時間を秒単位で表示するようにしました。
　詳しくはマニュアルをご参照ください。

◇Webの監視画面でシャットダウン処理の残り時間をスキップしたり、中断できるようにしました。
　「シャットダウン状態」に各フェーズをスキップできる場合は「スキップ」ボタンが表示され、
　そのフェーズの残り時間をスキップできるようにしました。
　復電した場合、残りの処理を中断するための「中断」ボタンを表示し、
　シャットダウン処理を中断できるようになりました。
　詳しくはマニュアルをご参照ください。

◇Webの監視画面に実行中のスクリプト数を表示するようにしました。
　詳しくはマニュアルをご参照ください。

◇Webの監視画面に実行中のスクリプト番号の表示とそれを中断できるようにしました。
　詳しくはマニュアルをご参照ください。
　
◇イベント設定でイベントを擬似的に発行できる機能を追加しました。
　イベントの項目名がリンクとなっており、これをクリックすると「イベント発行」画面が表示されます。
　ここで「発行する」をクリックすると該当するイベントを発行します。
　この機能はイベントを発生することで、スクリプトやメール送信等が正しく行われるかを確認するため機能です。
　例えば[AC停電発生]イベントを発行しても、実際に停電しているわけでは無いで、停電シャットダウン処理が行われるわけではありません。
　SNMPの動作確認には使用できません。

　この機能でイベントを発行し、動作の確認を行った後、Advanced NW board内の情報に
　不整合が発生する可能性がありますので、一旦ボードを再起動して下さい。

◇スクリプト表示が1つだけの場合、スクリプト編集の幅を50から70に増しました。

●SNMP関係

◇SNMPでRFC1628とJemaを切替なしで受信できるようにしました。
　従来は「ネットワーク」の「SNMP設定」の「MIB設定」で指定した方しか受信とその応答を返しませんでしたが、
　このバージョンよりどちらに設定していてもRFC1628とJemaの両方の受信と応答処理をするようにしました。
　「ネットワーク」の「SNMP設定」の「MIB設定」でのRFC1628とJemaの設定はTrap発行時、
　どちらのmibにするかの設定になります。

◇「ネットワーク」の「SNMP設定」の「MIB設定」でmibの切替を行っても再起動を不要にしました。
　従来はmibを別の物に変更した場合、ボードの再起動が必要でした。

◇JemaのJemaUpsAlarmWarningDetail(1.6.6.0)では停電等の警告状態になると「入力電圧低下」等を返していますが、
　正常時には何も出していなかったので、「正常」を出すようにしました。
　また、複数の警告が発生しているとき(特に入力電圧低下と入力周波数異常)は文字列がつながるので、
　その場合は":"で区切るようにしました。

　同様にJemaUpsAlarmInputBadDetail(1.6.9.0)でも正常時は「入力電圧,周波数正常」を返すようにしました。
