[IT Pro 道場補足] そして、Windows Server 2008 イベンティングシステム
IT Pro 道場 (東京) 補足
こうして開発コードが対処できれば、あとはインフラのパワーの見せどころです。
Windows Server 2008 では、イベントをある単一のマシンに集約することもできます。また、特定のイベントに対し、メール送信や、プログラム実行などのタスク (イベントタスクと呼ばれ、タスクスケジューラに設定されます) を設定することもできます。
つまり、Windows の標準的な仕組みを使うだけでも、運用系のそこそこの機能を作りこむことができます。(無論、System Center や MOM などの Microsoft 製品、さらには日本のメーカー各社から出ている運用/監視系の製品などと組み合わせる際にも役に立ちます。)
また、イベントタスクの設定やら、IIS の設定やらと、OS 廻りの設定が増えてくると設定ミスも増えてくることでしょう。そもそも手で設定すること自体面倒になるはずです。
奥主が説明していたように、IIS7 では appcmd というコマンドでいままでメタベースなどに個別設定しないといけなかったものなども含め、すべてコマンドで実施できるようになっています。その他の機能も同様のコンセプトがあり、例えば、上記のイベントタスクを設定するようなシナリオも、以下のように、XML を作成し、schtasks コマンドを流すことでコマンドで自動設定できます。(これは、MSDN の http://msdn2.microsoft.com/en-us/library/aa446889.aspx に掲載されています。尚、xml の作成が面倒という方は、UIで作成したイベントタスクをタスクスケジューラからエクスポートすることで同様の xml を取得できます。)
■実行するコマンド
schtasks /create /XML taskdef.xml /tn matsutask
■作成するマニフェスト
<?xml version="1.0" ?>
<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2007-11-17T00:00:00</Date>
<Author>Tsuyoshi Matsuzaki</Author>
<Version>1.0.0</Version>
<Description>イベント発生時に実行するタスク登録のデモ</Description>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<StartBoundary>2006-05-02T13:20:00</StartBoundary>
<EndBoundary>2009-12-31T23:59:59</EndBoundary>
<ExecutionTimeLimit>PT5M</ExecutionTimeLimit>
<Subscription>
<QueryList>
<Query Id='1'>
<Select Path='System'>*[System/Level=2]</Select>
</Query>
</QueryList>
</Subscription>
</EventTrigger>
</Triggers>
<Principals>
<Principal>
<UserId>Administrator</UserId>
<LogonType>InteractiveToken</LogonType>
</Principal>
</Principals>
<Settings>
<Enabled>true</Enabled>
<AllowStartOnDemand>true</AllowStartOnDemand>
<AllowHardTerminate>true</AllowHardTerminate>
</Settings>
<Actions>
<SendEmail>
<Server>EMailServerName</Server>
<Subject>Event Occured</Subject>
<To>RecipientEmailAddress@domain.com</To>
<From>MyEmailAddress@domain.com</From>
<Body>This is the e-mail message.</Body>
</SendEmail>
</Actions>
</Task>
設定関連の「現実」の話は、このコマンドによる自動化というところがひとまずの現実解でしょう。しかし、Microsoft には、まだ先に見据えているゴールがあります。それが、よくエバンジェリストの高添がご紹介している DSI と呼ばれるものです。
乱暴な書き方ですみませんが、最終的には、モデルを作成し、ここからすべて設定してしまおうという世界で、実は、道場参加者の皆さんにさんざん見て頂いた Visual Studio でも、
http://www.microsoft.com/japan/msdn/teamsystem/whitepapers/arch/
でご紹介しているように、このための準備とも言うべき製品実装がおこなわれています。(まだ不充分な機能ではありますが、機会がありましたら、次回是非ご紹介させて頂きます。)