swatchirc.pl:The Simple WATCHdog IRC Collaboration
(based on swatch-3.0.4)
swatchを利用した簡単リアルタイムグループ監視の実現
swatchを利用すればシスログ上のキーワードをwatchしてそれをメールで送信する機能はあります
私は更にリアルタイムに、そしてグループワーキングに役立つようにIRCchatへの通知機能を追加しました。
既にswatchを利用していればこの機能を利用する事は簡単です。
このスクリプトをDLし /swatch-bin-path/swatch ・・・と起動していたところを perl swatchirc.pl ・・・と起動するだけです。(当然IRC通知の為のコンフィグを本ページを参考に変更が必要です) swatchを新たに設置する場合はこのページ下方を参照ください。
このスクリプトのDLは以下から行えます
http://www.egroups.co.jp/files/Eng-B/perlTips/swatchirc/swatchirc.pl
このスクリプトはswatch-3.0.4を改造し以下の機能を追加した物です。
IRCへのメッセージ通知機能をアクション:ircmとして追加
コマンドラインからconfigファイル上で参照可能な変数を設定する機能(アクション:pexec/ppipe/ircmのみ有効)
IRCへのメッセージ通知機能
swatchのアクションとして実行します。
指定したニックネームとuserIDでIRCサーバに接続し指定したチャンネルにwatchしたメッセージや定型メッセージを通知する。
書式
ircm -n nick-name -u user-name [-h user-host-name] -s irc-server [-p irc-port]
-c '#channel-name' [-k 'pass-key'] [-a 'alert-msg'] [-mskip] [:title-messages]
-n nick-name :ニックネームを指定
-u user-name :ユーザ名を指定(ircサーバにおいてIDENT認証に使われる物)
-h user-host-name: 省略可(ircサーバに自host名として通知したい場合指定,省略時は*)
-s irc-server :接続するIRCサーバホスト名またはIPアドレス
-p irc-port :省略可(接続するIRCサーバのホスト名を指定,省略時は6667)
-c '#channel-name':参加するチャンネル名を指定(シングルもしくはダブルコーテーションで区切る事)
-k 'pass-key':省略可(IRCサーバがPASSコマンドにて認証する場合そのキーを指定する)
-a 'alert-msg':alert-msgで記述した文字列を参加中チャンネルにACTIONメッセージとして送信
-mskip :省略可(このスイッチを指定するとwatchしたメッセージを送信しない)
:title-messages:省略可(タイトルメッセージをwatchしたメッセージの前に送信する)
configファイルの設定例と通知イメージ例:
suのパスワード認証を失敗するとACTIONメッセージと簡単なタイトルとそのログをChatに通知する場合
以下様なシスログが記録されるとして
Mar 13 01:24:52 PiLinux 3月 13 01:24:52 PAM_unix[621]: authentication failure; singo(uid=504) -> root for su service
swatchrcというファイル名でコンフィグファイルを作成する
---------------------------------------
watchfor /authentication failure/ #authentication failureをwatch
pexec echo authentication failure:$5$6 $7 $11
ircm -n logman -u syslog -s 192.168.0.1 -c '#passt' -a "おーい!!大変だよ" :だれか入ろうとして失敗してるが様だが。。
---------------------------------------
以下のコマンドでswatchirc.plを起動
#perl ./swatchirc.pl -c swatchrc -p 'tail -f /var/log/messages'
ここでsu認証を失敗すると
起動コンソールには pexec echo authentication failure:$5$6 $7 $11アクションラインの結果が以下の様に表示され
authentication failure:3月13 01:24:52 singo(uid=504)
と同時に192.168.0.1で稼動しているIRCサーバの
#passtチャンネルに繋いだchat参加者(Client)に以下のメッセージが表示される
(以下はLimeChatの例)
(メッセージ日時は編集の都合で合っていません)
IRCChatクライアントがSJIS表示であればコンフィグファイルの日本語もSJISで記述します。EUC-JPの場合EUC-JP
(ircmアクションラインのスイッチ指定でSJIS,EUC-JP変換を今後追加予定)
swatch導入参考http:// swatchのアーカイブwww. geocitie s. co. jp/ SiliconV alley/ 6633/ linux/ swatch. html ftp:// ftp. stanford . edu/ general/ security - tools/ swatch/ http:// www. engr. ucsb. edu/~ eta/ swatch/ ftp:// perl必要モジュールftp. stanford . edu/ general/ security - tools/ swatch/ http:// からサーチしDL Time::HiRes 現時点のDL先search. cpan. org/ http:// Date::Calc 現時点のDL先search. cpan. org/ CPAN/ authors/ id/ J/ JH/ JHI/ Time- HiRes- 1. 43. tar. gz http:// Date::Parse 現時点のDL先search. cpan. org/ CPAN/ authors/ id/ S/ ST/ STBEY/ Date- Calc- 5. 3. tar. gz http:// File::Tail 現時点のDL先search. cpan. org/ CPAN/ authors/ id/ G/ GB/ GBARR/ TimeDate - 1. 14. tar. gz http:// モジュールインストールは perl Makefile.PL make make test su make installsearch. cpan. org/ CPAN/ authors/ id/ M/ MG/ MGRABNAR / File- Tail- 0. 98. tar. gz
企画作成
2003/3/13
本田とけお H.tokeo(Singo Bluse Nabeshima)
tokeon@rainbow.plala.jp