TE4111C ログ取得ツール

eAccess から提供された ADSL ルータ TE4111C では、 動作状況のログは、Webブラウザから確認する方式になっていて、 そのままでは、サーバ等でログを記録することができません。 そこで、動作状況のログを HTTP で取得するツールを作りました。 サーバ等の上で動かすことにより、ログの記録が実現できます。

現在の最新版は、1.3 (2002/02/07 リリース) です。

インターネット接続環境を更新したため、TE4111C は引退しました。 このツールも不要となり、現在は使用していません。

仕様と制限事項

  1. Perl5 で記述されています。 jperl である必要はありません。 利用しているパッケージは、標準で付いて来る IO::Socket のみなので、 *BSD や Linux であれば、そのまま、動作すると思います。 なお、動作確認は、OpenBSD 3.0 で行なっています。
  2. 文字コードの変換は、していません。 TE4111C が出力する EUC コードのまま出力します。
  3. 起動時に TE4111C が保持している全てのログ情報を出力し、 その後は、定期的にチェックして増加した分のログ情報を、逐次、出力します。 従って、もし、毎日、起動停止をするマシンで使用すると、 同じ情報が、何度も重複して記録されることになります。 24時間運転のマシンでの利用を想定した仕様になっています。
  4. ログ情報はファイル /var/log/te4111c/message に追加モードで出力します。
  5. ログ情報を出力する他に、TE4111C の状態を以下のファイルに、直接、書き込みます。 これらは、全て、「機器状態・ログ情報」の画面で得られる情報です。 出力先のディレクトリはログ出力と同一になります。
    stat_hard
    ハードウェア状態 (正常、異常)
    stat_adsl
    ADSL回線状態 (接続待ち、トレーニング中、通信中)
    speed_up
    接続速度 (上り、単位:Kbps)
    speed_down
    接続速度 (下り、単位:Kbps)
    stat_ppp
    PPPの状態 (確立、LCP中、IPCP中、停止中)
    ip_adsl
    ADSL IPアドレス
    ip_peer
    Peer IPアドレス
    ip_dns
    DNS Server IPアドレス
  6. TE4111C が生成するHTMLが少しでも変わると、 必要な情報を抜き出すためのパターンマッチングが失敗し、 正常に動作しなくなる可能性があります。 動作確認している TE4111C は、以下のバージョン情報を持っているものです。
    MegaBit Gear TE4000 Ethernet Modem, G.lite, Annex C
    Hardware Revision: 0001
    Software Version: 01.22 (Mon Apr 2 15:59:21 JST 2001)
    Boot ROM Version: 01.22 (Mon Apr 2 16:00:38 JST 2001)
    DSP Firmware Version: 7.31
    
  7. TE4111C へのアクセスは、ユーザ名/パスワードを必要とします。 そのため、プログラム中にユーザ名/パスワードを埋め込むようになっています。 セキュリティ上、あまり良くないことを了解した上で使用してください。
  8. とりあえず動けば良いというレベルのプログラムなので、 スマートでないところがありますが、目をつぶってください。
  9. このツールのライセンスは、 BSD流のライセンス とします。

ダウンロード

  1. 最新の tar archive (3,196 byte)
    MD5 (te4111cm-1.3.tar.gz) = 931aeeaf8b4e2f37f70010faa92138a2

セットアップ手順

  1. TE4111C に「一般ユーザ」のIDを登録する。
    TE4111C には、アクセス権限として、管理者(root)と一般ユーザの2つのレベルがあり、 ログ情報を参照するには一般ユーザで十分です。 初期状態では、一般ユーザは未登録なので、 まだ登録していない場合には、ユーザ名とパスワードを登録します。
  2. ツールを動かすユーザIDを登録する。
    セキュリティ上、root権限でツールを動かすのは適当でないので、 このツール専用のユーザID (例: te4111cm) を登録します。 このユーザIDはパスワード情報を * にしてログイン不可にします。
  3. ツールをインストールする。
    アーカイブをダウンロードし、 その中にあるツール te4111cm を適当な場所 (例: /usr/local/sbin) に置き、 owner を上で登録したユーザIDに、mode を 700 に変更する。 そして、環境依存の変数を変更する。 なお、te4111cm の文字コードは、EUC です。 他の文字コードに変えると正常に動作しません。
    $ROUTERHOST
    TE4111C のホスト名
    $CREDENTIAL
    TE4111C のアクセスに使用するユーザ名とパスワード
    $STATOUTDIR
    ログと機器状態を出力するディレクトリのフルパス
    $INTERVAL
    平常時の情報取得の間隔 (単位: 秒)
    ここで、$CREDENTIAL は、ユーザ名とパスワードを ':' で区切って繋げ、 base64 エンコードしたものを指定します。 これは、例えば、以下のようにして作ることができます。
    #!/usr/bin/perl
    $_ = 'ユーザ名:パスワード';
    $len = length($_);
    $_ = pack("u",$_);
    s/^.(.*)\s+$/$1/;
    tr/\`\041-\137/A-Za-z0-9+\//;
    if($len%3 == 1){ s/..$//; }elsif($len%3 == 2){ s/.$//; }
    print("$_\n");
    
  4. ログと機器状態を保存するディレクトリを作成する。
    /var/log/te4111c を作成し、 owner を上で登録したユーザIDに、mode を 755 に変更する。
  5. 起動のための設定をする。
    rc.local などに以下のように記述します。
    echo -n ' te4111cm'
    su te4111cm -c '/usr/local/sbin/te4111cm &'
    
  6. 動作を確認する。
    ツールを起動すると、すぐ、ログファイルと機器状態のファイルができるはずです。 ファイルの内容を見て、動作状況を確認してください。

更新履歴

2002/02/07
1.3版: ログ情報を自分でファイルに書き込むように変更した。
2002/01/13
1.2版: ADSL再接続後にログが重複して出力されるバグを修正した。
2002/01/01
1.1版: 最初のリリース。