Aterm DR202 ログ取得ツール

eAccess からレンタルされた ADSLプラス(回線速度最大12Mbps)対応のルータ Aterm DR202 では、 動作状況のログは、Webブラウザから確認する方式になっていて、 そのままでは、サーバ等でログを記録することができません。 そこで、動作状況のログを HTTP で取得するツールを作りました。 サーバ等の上で動かすことにより、ログの記録が実現できます。

現在の最新版は、1.1 (2002/11/21 リリース) です。

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

仕様と制限事項

  1. Perl5 で記述されています。 利用しているパッケージは、標準で付いて来る IO::Socket のみなので、 *BSD や Linux であれば、そのまま、動作すると思います。 なお、動作確認は、OpenBSD 3.2 で行なっています。
  2. 文字コードの変換は、していません。 Aterm DR202 が出力するシフトJISコードのまま出力します。
  3. 起動時に Aterm DR202 が保持している通信情報ログの全てを出力し、 その後は、定期的にチェックして増加した分のログ情報を、逐次、出力します。 従って、もし、毎日、起動停止をするマシンで使用すると、 同じ情報が、何度も重複して記録されることになります。 24時間運転のマシンでの利用を想定した仕様になっています。
  4. ログ情報はファイル /var/log/dr202/system.log に追加モードで出力します。
  5. Aterm DR202 の状態を以下のファイルに上書きモードで出力します。 出力先のディレクトリはログファイルと同じ /var/log/dr202/ になります。
    status
    現在の状態(一通りの情報をカンマ区切りで)
    ip_addr
    WAN側のIPアドレス
    speed_dl
    接続速度(下り、単位:Kbps)
    speed_ul
    接続速度(上り、単位:Kbps)
  6. ADSL回線の統計情報をファイル /var/log/dr202/adsl.log に追加モードで出力します。
  7. Aterm DR202 が生成するHTMLが少しでも変わると、 必要な情報を抜き出すためのパターンマッチングが失敗し、 正常に動作しなくなる可能性があります。 動作確認している Aterm DR202 はファームウェアバージョンが 7.2f のものです。
  8. Aterm DR202 へのアクセスは、ユーザ名/パスワードを必要とします。 そのため、プログラム中にユーザ名/パスワードを埋め込むようになっています。 セキュリティ上、あまり良くないことを了解した上で使用してください。
  9. とりあえず動けば良いというレベルのプログラムなので、 スマートでないところがありますが、目をつぶってください。
  10. このツールのライセンスは、 BSD流のライセンス とします。

ダウンロード

  1. 最新の tar archive (3,082 byte)
    MD5 (dr202m-1.1.tar.gz) = 14d69803e51cd72fa8a8a5c7f2cdcd95

セットアップ手順

  1. ツールを動かすユーザIDを登録する。
    セキュリティ上、root権限でツールを動かすのは適当でないので、 このツール専用のユーザID (例: dr202m) を登録します。 このユーザIDはパスワード情報を * にしてログイン不可にします。
  2. ツールをインストールする。
    アーカイブをダウンロードし、 その中にあるツール dr202m を適当な場所 (例: /usr/local/sbin) に置き、 owner を上で登録したユーザIDに、mode を 700 に変更する。 そして、環境依存の変数を変更する。
    $ROUTERHOST
    DR202 のホスト名
    $CREDENTIAL
    DR202 のアクセスに使用するユーザ名とパスワード
    $LOGDIRPATH
    ログと機器状態を出力するディレクトリのフルパス
    $INTERVAL
    情報取得の間隔(単位:秒)
    ここで、$CREDENTIAL は、ユーザ名(admin)とパスワードを ':' で区切って繋げ、 base64 エンコードしたものを指定します。 これは、例えば、perlを使えば以下のように作ることができます。
    #!/usr/bin/perl
    $_ = 'admin:パスワード';
    $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");
    
  3. ログと機器状態を保存するディレクトリを作成する。
    /var/log/dr202 を作成し、 owner を上で登録したユーザIDに、mode を 755 に変更する。
  4. 起動のための設定をする。
    rc.local などに以下のように記述します。
    echo -n ' dr202m'
    su dr202m -c '/usr/local/sbin/dr202m &'
    
  5. 動作を確認する。
    ツールを起動すると、すぐ、ログファイルと機器状態のファイルができるはずです。 ファイルの内容を見て、動作状況を確認してください。

更新履歴

2002/11/21
1.1版: 最初のリリース。