TE4111C ログ取得ツール
eAccess から提供された ADSL ルータ TE4111C では、
動作状況のログは、Webブラウザから確認する方式になっていて、
そのままでは、サーバ等でログを記録することができません。
そこで、動作状況のログを HTTP で取得するツールを作りました。
サーバ等の上で動かすことにより、ログの記録が実現できます。
現在の最新版は、1.3 (2002/02/07 リリース) です。
インターネット接続環境を更新したため、TE4111C は引退しました。
このツールも不要となり、現在は使用していません。
-
Perl5 で記述されています。 jperl である必要はありません。
利用しているパッケージは、標準で付いて来る IO::Socket のみなので、
*BSD や Linux であれば、そのまま、動作すると思います。
なお、動作確認は、OpenBSD 3.0 で行なっています。
-
文字コードの変換は、していません。
TE4111C が出力する EUC コードのまま出力します。
-
起動時に TE4111C が保持している全てのログ情報を出力し、
その後は、定期的にチェックして増加した分のログ情報を、逐次、出力します。
従って、もし、毎日、起動停止をするマシンで使用すると、
同じ情報が、何度も重複して記録されることになります。
24時間運転のマシンでの利用を想定した仕様になっています。
-
ログ情報はファイル /var/log/te4111c/message に追加モードで出力します。
-
ログ情報を出力する他に、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アドレス
-
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
-
TE4111C へのアクセスは、ユーザ名/パスワードを必要とします。
そのため、プログラム中にユーザ名/パスワードを埋め込むようになっています。
セキュリティ上、あまり良くないことを了解した上で使用してください。
-
とりあえず動けば良いというレベルのプログラムなので、
スマートでないところがありますが、目をつぶってください。
-
このツールのライセンスは、
BSD流のライセンス とします。
-
最新の tar archive (3,196 byte)
MD5 (te4111cm-1.3.tar.gz) = 931aeeaf8b4e2f37f70010faa92138a2
-
TE4111C に「一般ユーザ」のIDを登録する。
TE4111C には、アクセス権限として、管理者(root)と一般ユーザの2つのレベルがあり、
ログ情報を参照するには一般ユーザで十分です。
初期状態では、一般ユーザは未登録なので、
まだ登録していない場合には、ユーザ名とパスワードを登録します。
-
ツールを動かすユーザIDを登録する。
セキュリティ上、root権限でツールを動かすのは適当でないので、
このツール専用のユーザID (例: te4111cm) を登録します。
このユーザIDはパスワード情報を * にしてログイン不可にします。
-
ツールをインストールする。
アーカイブをダウンロードし、
その中にあるツール 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");
-
ログと機器状態を保存するディレクトリを作成する。
/var/log/te4111c を作成し、
owner を上で登録したユーザIDに、mode を 755 に変更する。
-
起動のための設定をする。
rc.local などに以下のように記述します。
echo -n ' te4111cm'
su te4111cm -c '/usr/local/sbin/te4111cm &'
-
動作を確認する。
ツールを起動すると、すぐ、ログファイルと機器状態のファイルができるはずです。
ファイルの内容を見て、動作状況を確認してください。
- 2002/02/07
-
1.3版: ログ情報を自分でファイルに書き込むように変更した。
- 2002/01/13
-
1.2版: ADSL再接続後にログが重複して出力されるバグを修正した。
- 2002/01/01
-
1.1版: 最初のリリース。