windowsサーバの運用保守を行う上で忘れがちな点といえば、忘れた頃にやってくるシステムドライブ容量不足😥
重要な基幹システムだと目も当てられません。。
思いもよらないログの蓄積や日々のシステム運用での容量枯渇に対して、事前に手をうっておく事は重要です。
ここではシステムドライブ容量不足の監視から警告メール自動送信までの手順を記述します。
すべて標準機能で設定可能なので、忘れずに設定しておきましょう。
容量警告メール送信用タスク
先に警告メール送信用のタスクを準備します。
①「タスクスケジューラ」を起動して、タスク作成先を選択後、「タスク」の作成をクリックします。
②メール送信用タスクの名前を任意で入力します。
「ユーザがログオンしているかどうかにかかわらず実行する」を選択し、「最上位の権限で実行する」にチェックを入れます。
※サーバーの運用状況に合わせて任意で設定して下さい。
③「トリガー」を選択し、「新規」をクリックします。
④設定を「1回」にして「OK」をクリックします。
⑤「操作」を選択し、「新規」をクリックします。
⑥メール送信用モジュールを選択して「OK」をクリックします。
サンプルをVBScriptで用意しました。良ければご活用ください。
OPTION EXPLICIT
Dim objMsg
Dim objFS
Dim Smtp
Dim MailTo
Dim MailFrom
Dim Subject
Dim TextBody
Set objMsg = CreateObject(“CDO.Message”)
‘SMTPサーバアドレス
Smtp = “127.0.0.1”
‘受信先メールアドレス
MailTo = “toMail@sample.com”
‘送信元メールアドレス
MailFrom = “fromMail@sample.com”
‘メール表題
Subject = “ディスク容量警告”
‘メール本文
TextBody = “windowsserverのシステムドライブ容量が10%以下となりました。” & & vbcrlf
TextBody = TextBody & “早急に見直しを行ってください。” & vbcrlf
objMsg.From = strMailFrom
objMsg.To = strMailTo
objMsg.Subject = strSubject
objMsg.TextBody = strTextBody
‘sendusing
‘1 = ローカルSMTPサービスのピックアップ・ディレクトリにメールを配置する(デフォルトの動作)
‘2 = SMTPポートに接続して送信する
‘3 = OLE DBを利用してローカルのExchangeに接続する
‘ローカルSMTPの場合は以下はコメントでよい。
‘ポートは環境に合わせて任意で変えてください。
‘———————————————————————————————————
objMsg.Configuration.Fields.Item (“http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2
objMsg.Configuration.Fields.Item (“http://schemas.microsoft.com/cdo/configuration/smtpserver”) = strSMTP
objMsg.Configuration.Fields.Item (“http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25
objMsg.Configuration.Fields.Update
‘———————————————————————————————————
objMsg.Send
Set objMsg = Nothing
⑦タスク設定を完了するとパスワードを聞いてくるので、入力後「OK」をクリックします。
⑧タスクスケジューラで設定が確認できれば、メール送信タスクの設定は完了です。
データコレクターセットでの容量監視の設定手順
①「コンピュータの管理」-「パフォーマンス」-「データコレクターセット」-「ユーザ定義」で右クリック。
プルダウンの「新規作成」-「データコレクターセット」をクリックします。
②名前を任意で付けます。
「手動で作成する(詳細)」を選び、次へをクリックします。
③「パフォーマンスカウンターの警告」を選択し、「次へ」をクリックします。
④「追加」をクリックします。
⑤「ローカルコンピューター」を選び、「LogicalDisk」-「FreeSpace」を選択します。
「C:」を選択して、「追加」ボタンをクリックします。
「追加されたカウンター」に設定が追加された事を確認したら、「OK」をクリックします。
⑥「警告する時期」を「より下」、「制限値」を空き容量の下限値(%)で入力します。
画像の例では空き容量が10%以下に警告という意味になります。
⑦「このデータコレクターセットのプロパティを開く」を選択し、「完了」をクリックします。
⑧「スケジュール」を選択し、「追加」をクリックします。
⑨「開始時間」を入力し、「OK」をクリックします。
※曜日等は任意で選択して下さい。
⑩設定がスケジュールに追加された事を確認して、「OK」をクリックします。
⑪データコレクターセットのユーザ定義に「ディスク容量監視タスク」が追加されていますので、選択して「DataCollection01」を右クリックし、プルダウンから「プロパティ」をクリックします。
⑫「警告」を選択して「サンプルの間隔」を任意で決めます。
データ容量監視の観点からだと1日単位でよいと思います。
※テストの時は秒単位にすると便利です。
⑬「警告の動作」を選択して、「データコレクターセットの開始」に作成したタスクを選択します。(プルダウンで表示されます。)
⑭「警告が出されたときに実行するタスク」にタスクスケジューラーで作成したメール送信タスクを選択します。手入力なのでコピペなどで正確に入力します。
※例のようにタスクをフォルダで管理している場合はパス指定をする必要があるので注意。
⑮作成したデータコレクターセットを選択して開始ボタンで監視が始まります。
通常、例で設定したような空き容量が10%以下なんて事はないでしょうから、⑥の設定値を変更して(90%以下など)動作確認を行って下さい。
サーバー起動時にデータコレクターセットの自動開始設定手順
サーバーが24時間稼働でない場合は起動時にデータコレクターセットを起動するように設定する必要があります。
以下で手順を記します。
①タスクスケジューラで「Microsoft」-「Windows」-「PLA」の場所に作成したデータコレクターセットが表示されています。
作成してデータコレクターセットを選択し右クリック後、プルダウンから「プロパティ」をクリックします。
②「トリガー」を選択し、「新規」をクリックします。
③タスクの開始に「スタートアップ時」を選択し、「OK」をクリックします。
④トリガーが追加された事を確認して「OK」をクリックします。
これでサーバー起動時に自動的にデータコレクターセットが開始されます。
再起動して起動されているかを確認して下さい。
最後に
いかがだったでしょうか?
すべて設定のみで特別なソフトを使用しなくてもサーバー容量監視が可能です。
監視時間を朝方にメールされるようにしておけば、帰り際にメールを確認して、慌てて調査みたいな事も防げますね😅
通知方法がメールなので、SMTPサーバが立ってない環境では自分自身に立てる必要がありますのでご注意を。
そもそもインターネットに接続されていない環境だと、通知を別の方法に変える必要がありますね😥
皆様のお役に立てれば幸いです。
コメント