- blogs:
- cles::blog
Windows標準機能だけで、ディスクの残容量を監視する
これまで Windows Server の監視にはHealthMonitorを使っていたのですが、ちょっと動きが怪しかったりして、もうちょっといい方法がないかと調べてみたところ、 Windows の標準機能(いちおう2008以降という制限あるけど)だけで1日1回ディスク容量を調べて、一定以下になっていたらメールで通知が実現できることが分かったのでメモ。
流れとしては「タスク」の設定に「電子メールの送信」というものがあるので、これをあらかじめ作っておくというテクニックと、「パフォーマンスモニター」を使って、ディスクの空き容量を調べて、一定以下になっていたら前述の「タスク」を起動するように設定するというテクニックの合わせ技で実現します。設定が恐ろしくめんどくさいのが難点。タスクを使わずに自分でPerlのスクリプトを作ったりすればもうちょっと高機能な通知をすることができると思います。
† 2011/12/26 追記
VBS で同様の機能を実現したものを作りました。
こちらは SMTP Auth に対応していますので、一般的なプロバイダのメールサーバを使うことができます。
† まず、メールを送信するタスクを作る
始めにメールを送信するタスクを作り*1ます。
「コンピューターの管理」を開きます。具体的には「マイコンピューター」を右クリックして「管理...」という項目を選択します。
「タスク スケジューラ」→「タスク スケジューラ ライブラリ」という項目を開くと下記のような感じになるはずです。
タスク スケジューラ ライブラリ(もしくは、自分で作った直下のフォルダでも可)を右クリックして「タスクの作成」を選択し、下記のような感じで「全般」の部分を設定します。
ここで設定した名前と場所は後でタスクの指定のところで使うのであまり変な名前にしない方がいいでしょう。
次に、「操作」タブに移り、「新規...」をクリックします。
下記のウィンドウが表示されるので、「操作」で「電子メールの送信」を選択して、メールの内容を入力します。
メールの文言に日本語は使えないのと、メールサーバのsmtp認証等には対応していないので注意が必要です。このあたりをもうちょっとカスタマイズしたい場合には、タスクに頼らずおとなしくPerlなんかでスクリプトを書いた方がよいと思います。
このまま保存をすればタスクのできあがりです。
この時点で、一度手動でタスクを起動してメールが飛んでくるかチェックしておくといいでしょう。
† パフォーマンスモニタでデータコレクターセットを作る
次にパフォーマンスモニタを使って、データコレクターセットを作成*2し、閾値を超えた場合にタスクを起動する部分を作っていきます。
タスクの設定と同じように「コンピュータの管理」から、「パフォーマンス」→「データ コレクター セット」を展開します。
「ユーザー定義」という項目があるので、これを右クリックして「新規作成」→「データ コレクター セット」を選択すると、下記の「新しいデータ コレクター セットを作成します」画面が開くので、適当な名前をつけて、「手動で作成する」を選択して「次へ」をクリックします。
下記のような画面になるので、「パフォーマンスカウンターの警告」を選択して「次へ」をクリックします。
下記のような画面になるので、「追加...」ボタンをクリックします。
左上の項目から「LogicalDisk」(PhysicalDiskという項目もあるので注意)を探して展開し、「% Free Space」を選択します。「選択したオブジェクトのインスタンス」に項目が表示されるので、「<すべてのインスタンス>」を選択して、「追加>>」ボタンをクリックし、右側の欄にカウンタが追加されたら、右下の「OK」をクリックします。
パフォーマンス カウンターの欄に項目が入った状態になるので、必要ない(具体的には項目名にドライブレターを含んでいない)ものを削除します。さらにドライブごと(というか、パフォーマンスカウンタごと)にディスクの容量がどの程度になったら警告するかを指定できるので指定をしておきます。ここでは10%を下回った場合に警告を出すように設定しています。最後に「次へ」をクリックします。
下記のような画面になるので、「保存して閉じる」を選択し、「完了」ボタンをクリックします。
ここまでの作業で、下記のように項目が作成されているはずです。
次に監視の間隔を設定していきます。具体的には画面右側の「DataCollector01」を右クリックして「プロパティ」を選択します。
「警告」タブに「サンプルの間隔」と「単位」という欄があるので設定し、「適用」をクリックします。
ここでは1日に1回にチェックするようにしています。
次に「警告のタスク」タブに移り、「警告が出されたときに実行するタスク」欄に、タスクの作成の時に指定した名前を「フォルダ名\タスク名」の形式で入力します。タスク スケジューラ ライブラリ直下にタスクを作成した場合には「フォルダ名\」の部分は指定する必要はありません。こちらも「適用」をクリックし、最後に「OK」をクリックして画面を閉じます。
このままではまだチェックが始まっていないので、「ユーザー定義」→「(追加した項目)」を選択し、画面上部の緑色の三角のボタンをクリックしておくのを忘れないようにします。
テスト時には閾値をわざと99%にしたり、間隔を1分などにすると確認しやすいと思います。
- *1: 参考:Part2●タスク・スケジューラの基本的な使い方を学ぼう - Windows Server 2008導入実践ナビ:ITpro
- *2: 参考:パフォーマンス カウンターを監視するためのデータ コレクター セットを作成する
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4060
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
- SMARTEK デジタル温湿度計 (1)
- Pixel P50 LED ビデオライト (1)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(99963)
3 . 年次の人間ドックへ(99905)
4 . 三菱鉛筆がラミーを買収(99499)
5 . 2023 年分の確定申告完了!(1つめ)(99473)