FC2ブログ
MSLabo: MCP取得や実務用に自宅でWindowsサーバを検証・自習してます&たまに日記
自宅サーバにて、Windows 2008, MSCS, Active Directory, Exchange, Sharepoint, System Center(SCCM, SCOM, FCS), SQL Serverの自習、検証をした内容を記載していきたいと思います。
スポンサーサイト
--年--月--日 (--) --:-- | 編集
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
PowerShellでサーバ監視・レポートメール送信
2010年06月08日 (火) 14:22 | 編集
以前の記事でPowerShellでサーバ監視の簡単なスクリプトを
作るといっていたものができたので、貼り付け
追加でsmtpサービスを入れたり、basp21を入れたりせずにメール送信できるところが
ちょっと気に入っています。(PowerShell環境をインストールする方が面倒くさかったりしますが

いろいろなサイトを参考に、客先に出すものでもなかったので、
動けばいいというレベルです。。

概要は以下のようなものです。
・24H前までに発生したイベントログ(システム・アプリケーション)を
 Dドライブのレポート用ファイルに記載
・あるファイルに記載している監視したいサービスの一覧ファイルを
 読み込んで、そのサービスが正常に起動しているか確認
・ディスク容量確認
・デイリーのバックアップファイルのサイズ確認
・robocopyのログファイルから、EXTRA行を除いた行をレポートファイルに記載
・上記情報を記載したファイル内容を読み込み、smtpのbodyに貼り付けて
 メール送信

上記をWindows Server 2003のタスクにスケジュールし、実施しています。
> powerShell D:\Reports\report.ps1
という内容のbatファイルを作成して実施

内容を適宜変えていただき、ファイルのパスなども変更いただければ
用途があえばお役に立てるかもしれません

###-----report.ps1-----###
$yyyymmdd = (Get-Date).ToString("yyyyMMdd")
$yyyymmdd1 = (get-date).AddDays(-1).ToString("yyyyMMdd")
$fileName = $yyyymmdd + "_report.txt"

$fileNamePath = "D:\Reports\"+$fileName
$robocopyFile = $yyyymmdd1 + "_robocopy_err_log.txt"
$robocopyFilePath = "D:\robocopy\"+$robocopyFile
New-Item $fileNamePath -Type File

#ファイル書込み
Add-Content -encoding unicode $fileNamePath -Value $yyyymmdd" ---- サーバ名 Daily Report ----"
#改行書込み
Add-Content -encoding unicode $fileNamePath `r
Add-Content -encoding unicode $fileNamePath -Value "■24H前までに発生したイベントログ(システム)"

#イベントログ(system)内容取得
get-eventlog -Logname system | Where {$_.timegenerated -gt (get-date).AddDays(-1)} | Format-List * >> $fileNamePath
Add-Content -encoding unicode $fileNamePath -Value "■24H前までに発生したイベントログ(アプリケーション)"
#イベントログ(Application)内容取得
get-eventlog -Logname application | Where {$_.timegenerated -gt (get-date).AddDays(-1)} | Format-List * >> $fileNamePath

Add-Content -encoding unicode $fileNamePath -Value "■サービス稼動チェック"
$t= get-content D:\Reports\Monitoring_Services.txt
$s = $t | foreach-object{get-service $_}
$hush = @{}
$s | foreach-object{$hush[$_.DisplayName]=$_.status}
$hush >> $fileNamePath

#改行書込み
Add-Content -encoding unicode $fileNamePath `r
Add-Content -encoding unicode $fileNamePath `r

Add-Content -encoding unicode $fileNamePath -Value "■ディスク容量チェック"
$disks = get-wmiobject Win32_LogicalDisk | ?{$_.DriveType -eq 3}
foreach ($disk in $disks)
{
$a = $a + "ドライブレター: " + $disk.DeviceID + "`r"
$a = $a + "容量: " + ("{0,6:0.00}" -F ($disk.Size / 1GB)) + " GB" + "`r"
$a = $a + "空き容量: " + ("{0,6:0.00}" -F ($disk.FreeSpace / 1GB)) + " GB" + "`r"
$used = [Long]$disk.Size - [Long]$disk.FreeSpace
$a = $a + "使用量: " + ("{0,6:0.00}" -F ($used / 1GB)) + " GB" + "`r" + "`r"
}
$a >> $fileNamePath

#改行書込み
Add-Content -encoding unicode $fileNamePath `r
Add-Content -encoding unicode $fileNamePath `r
#バックアップファイルサイズ調査
Add-Content -encoding unicode $fileNamePath -Value "■D:\サーバ名_backup\サーバ名_FullBackup.bkf ファイルサイズ(GB)"
$diskSize = (Get-ChildItem "D:\サーバ名_backup\サーバ名_FullBackup.bkf").Length /1GB
$diskSize = [math]::round($diskSize,2)
$diskSize >> $fileNamePath

#■正規表現によるファイルから特定の行を取得
Add-Content -encoding unicode $fileNamePath "■前日分のRobocopy ミラーリングログ"

cat $robocopyFilePath |? {!($_ -match "\*EXTRA")} >> $fileNamePath

$sr = New-Object System.IO.StreamReader($fileNamePath)
#$sr.CurrentEncoding
$mBody = $sr.ReadToEnd()

$mail = New-Object System.Net.Mail.MailMessage
$mail.to.Add("メールアドレス1")
$mail.to.Add("メールアドレス2")
$mail.to.Add("メールアドレス3")

$mail.Subject = "----サーバ名 Daily Report----"
$mail.Body = $mBody

$mail.BodyEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
$smtp = New-Object System.Net.Mail.SmtpClient("メールサーバ名 or IPアドレス")
$smtp.Send($mail)



-----以下、実行結果の内容例-----
20100608 ---- サーバ名 Daily Report ----

■24H前までに発生したイベントログ(システム)

EventID : 7036
MachineName : サーバ名
Data : {}
Index : 3819
Category : (0)
CategoryNumber : 0
EntryType : Information
Message : Microsoft Software Shadow Copy Provider サービスは、stopped 状態に入
りました。
Source : Service Control Manager
ReplacementStrings : {Microsoft Software Shadow Copy Provider, stopped}
InstanceId : 1073748860
TimeGenerated : 2010/06/08 7:12:38
TimeWritten : 2010/06/08 7:12:38
UserName :
Site :
Container :

■24H前までに発生したイベントログ(アプリケーション)

EventID : 8019
MachineName : サーバ名
Data : {}
Index : 1988
Category : (0)
CategoryNumber : 0
EntryType : Information
Message : 操作の終了:
操作は正常終了しました。

詳細は、バックアップ レポートを参照してください。
Source : NTBackup
ReplacementStrings : {
操作は正常終了しました。}
InstanceId : 8019
TimeGenerated : 2010/06/08 7:06:41
TimeWritten : 2010/06/08 7:06:41
UserName :
Site :
Container :

■サービス稼動チェック

Name Value
---- -----
HP Insight Storage Agents   Running
APC PBE Server    Running
Terminal Services   Running
Windows Management Instrume...   Running
Event Log   Running
HP Smart Array SAS/SATA Eve...   Running
HP ProLiant System Shutdown...   Running
Server   Running
Logical Disk Manager   Running
HP Insight Server Agents   Running
Distributed File System   Running
APC PBE Agent   Running
HP Insight Foundation Agents   Running
HP ProLiant Remote Monitor ...   Running
HP Storage Server Managemen...   Running
HP Insight NIC Agent   Running
DNS Client   Running
Remote Procedure Call (RPC)   Running
Net Logon   Running

■ディスク容量チェック
ドライブレター: C:
容量: 15.00 GB
空き容量: 6.35 GB
使用量: 8.64 GB

ドライブレター: D:
容量: 936.90 GB
空き容量: 484.88 GB
使用量: 452.02 GB

■D:\サーバ名_backup\サーバ名_FullBackup.bkf ファイルサイズ(GB)
250.2

■前日分のRobocopy ミラーリングログ

-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------------------------------------------------------------

Started : Mon Jun 07 13:30:00 2010

Source : D:\data\
Dest : \\サーバ名\D$\data\

Files : *.*

Options : *.* /NDL /NFL /TEE /S /E /COPY:DAT /PURGE /MIR /NP /R:1000000 /W:30

------------------------------------------------------------------------------


------------------------------------------------------------------------------

Total Copied Skipped Mismatch FAILED Extras
Dirs : 93516 27 93489 0 0 10
Files : 765181 649 764532 0 0 72
Bytes : 172.842 g 717.29 m 172.141 g 0 0 7.61 m
Times : 0:27:05 0:00:48 0:00:00 0:26:16

Speed : 15429737 Bytes/sec.
Speed : 882.896 MegaBytes/min.

Ended : Mon Jun 07 14:27:05 2010




スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL :
コメント :
パスワード :
秘密 : 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
Powered by . / Template by sukechan.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。