- 2010-12-01 (水) 1:09
- TeamSpeak3 | VoIP
TeamSpeak3ネタを少々書いてみます.サーバ管理者向けです。
サーバにBotを常駐させて管理しようというおはなしです。
TeamSpeak3 Server には ServerQueryという機能があり,単純なコマンド操作でサーバを操作することが出来ます。
サーバの状態変化があるたびにイベントを発生させるservernotifyregisterというコマンドがあり,これを利用することでサーバの状態の変化に合せた対応が出来るようになります。
余談ですがservernotifyregisterは結構危ない機能で管理者権限がない一般ユーザでも実行出来るコマンドです。古いバージョンのサーバではservernotifyunregisterコマンドを使って登録解除をせずにservernotifyregisterコマンドを送信し続けるとTS3サーバが落ちるという,いわゆるDOS攻撃に使える脆弱性があります。そして,さも大したバグではなかったかのようにひっそりと修正されています。こういったことがありますのでβ版のサーバは常に最新版にしましょう。
さて,話を元に戻してサーバ監視のお話です。
servernotifyregisterを使ってサーバの変化が起きる度にイベントが発生するというのはわかりましたが,こんなものを人間がいちいち見て対処していたのでは話になりません。
当然ながらスクリプトなどを組んで自動化します。
公式フォーラムを漁ってみたらTS3PHPBotとJTS3ServerModという2つのBotプログラムが見つかりました。
JTS3ServerMod
一般の人にも有名な?Java言語で書かれたBotです。
Windowsで簡易に動かしたければ、JTS3ServerModが良いでしょう。標準でそれなりの機能があります。
ソースコードが公開されているのでやろうと思えば拡張はできますが、拡張しにくい作りになっているので追加機能を自分で書きたい人には向かないかもしれません。
TS3PHPBot
http://forum.teamspeak.com/showthread.php?t=51092
PHPというWEBページを動的に生成するためのスクリプト言語で作られたBotです。
PHPの実行環境を用意しないといけないのでWindowsのライトユーザには向きません。(本来はライトユーザが鯖なんて建てたらいけないんだけど)
プラグイン機能があるので機能を後付けしやすい作りになっています。
うちのサーバでもこれが裏で動いています。
TS3のクライアントで「サーバクエリクライアントを表示する」を有効にしてあれば管理人のお部屋にBotがいるのが見えるはずです。まぁ、バグで見えない場合もありますがね。
うちのサーバでは4~5日アクセスがないチャンネルは削除,パスワードがないチャンネルは禁止,ゲストは一般チャンネルというチャンネルの子チャンネルに作るというローカルルールがあります。
これを遵守してもらうためにチャンネルのアクセスログを取ったり,パスワードが設定されていないチャンネルの名前を強制変更して警告をだしたり,指定場所以外に作成されたチャンネルを強制的に移動したりと独自の追加機能を作って動かしています。
とまで書いて詳細はそのうち気が向いたら(マテ
スポンサード リンク
- Newer: Skypeから離れよぅ
- Older: 韓国A.V.Aの人気武器