お世話になっております。
WinSev2012R2を管理しております。
件名の通りなのですが
イベントビューアー>Windowsログで取れるログを
サイズでなくて日付で区切る事は出来ないのでしょうか?
グーグルさんなどで調査したのですが
そのようなものは見つけられなかったのですが
皆様ログ解析をする場合は有料のソフトウェアを購入されているのでしょうか?
なんとか日付毎にログを取得する方法は無いのでしょうか?
お忙しい所大変申し訳無いのですが上記お問い合わせいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
サイズ区切りといわれているのは、イベントビューアーでの各ログの最大サイズのことを指していて、デフォルトの上書きではなく、アーカイブ(別ファイルに)することを想定しているのだと思いますが、UNIX系のログローテーションのように、世代保持指定ができるわけではないので、この機能だけに頼ろうとしているならば、その後の運用管理が面倒になるのではないでしょうか。
一応、下記で1日単位でアーカイブされるようにはなるのではないかと思いますが、日付毎ではなくログの開始から1日毎にアーカイブされるようになるのではないでしょうか。
ただし、実際にやったことも試すつもりもありませんので、実行した結果どうなるかはわかりません。
PowerShell
1Limit-EventLog -LogName "対象のログ名" -RetentionDays 1
また、roninさんの回答内で触れられてはいるものの、PowerShellでの日付指定でログを取得するサンプルも貼っておきます。先日つけた回答のように-ListLog
でまわしてlogname
に与えれば全ログ対象に出来るでしょうし、Get-Date
と組み合わせれば日付毎のログを出力できるでしょう。
PowerShell
1Get-WinEvent -FilterHashtable @{logname="system"; starttime="2019/3/7"; endtime="2019/3/8"; level=1,2,3}
全量のログをWhere-Object
に渡すことで日付毎のフィルターとしていますが、(例外もある気はしますが)早い段階でデータを削った方が軽くていいですよね。
日付指定ならGet-EventLog
でも-After
や-Before
引数で可能ですが、そもそもこのコマンドレットを使うのは今は推奨されないものだと思っています。
古い Windows XP / Windows Server 2003 以前のイベントログ形式で動作するため、処理時間のパフォーマンスに問題を及ぼす場合があります。また、Windows Vista / Windows Server 2008 以降の新イベントログ形式 (EventLog 2.0) のログは取得できません。
ソース 'DCOM' のイベント ID '10016' の説明が見つかりません。
(以下略)
投稿2019/03/08 13:54

退会済みユーザー
総合スコア0
0
以下のようなbatを作成し、23:59:59にタスクスケジューラで起動するというのはいかがでしょうか?
bat
1set today=%DATE:/=% 2wevtutil epl System system_%today%.evtx && wevtutil cl System 3
wevtutil epl System system_%today%.evtx
で実行時点までのイベントログを、実行日のファイル名でエクスポート- 正常終了後に
wevtutil cl System
で該当イベントログを削除
となります。
問題点は、初回はこれまでのイベントログすべてがエクスポート対象となってしまうこと、エクスポート後に原本を削除してしまうので十分にテストが必要なこと、かなと思います。
投稿2019/03/12 14:58
総合スコア13
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
カスタムビューとかではダメですか?
検討違いでしたらすみません。
[カスタムビュー作成@IT]
(https://www.atmarkit.co.jp/fwin2k/win2ktips/1191custevt/custevt.html)
2019/03/11 18:46 追記
lazybones2000さんに教えて頂いたコマンドで手動で任意(一日単位でも可能)の日付のログを取得する感じのスクリプトを書いてみました。
なお、サーバへアクセスできるクライアント端末からの使用をイメージしています。
使い方の説明
1.LogStart,LogEndに開始と終了日付を設定します。
2.WorkDirに作業用ディレクトリパスを入力(末尾に\を入れてください)
3.WorkDirにServerList.txtとLogList.txtを入れてください。
4.3の両ファイルに取得したいサーバ名とログ名を入れてください。
※途中で空白行があれば、それ以降は処理しません。
5.ログの出力形式を選択してください。(1は一つのファイルにまとめられた状態。2はサーバ名で分けられた状態、3はログ名で分けられた状態
イメージ
1 = WindowsServerLog_20190301
2 = ServerName1_20190301
3 = ServerName1_Application_20190301
PowerShell
1$ErrorActionPreference = "silentlycontinue" 2$LogStart = "2019/3/1" #開始 yyyy/MM/dd 3$LogEnd = "2019/3/2" #終了 yyyy/MM/dd 4$WorkDir = "C:\Users\hostname\Desktop\log\" 5$ServerListFile = $WorkDir+"ServerList.txt" 6$LogListFile = $WorkDir+"LogList.txt" 7$LogOutStaus = "3" #ログの出力形式 "1:一つのファイル","2:サーバ単位で分割","3:サーバとログ名で分割" 8$OutFileName = "" 9$ServerList = (Get-Content -Encoding UTF8 $ServerListFile) 10$LogList = (Get-Content -Encoding UTF8 $LogListFile) 11 12 13# ステータスが"1"であれば一つのファイルに纏めて出す 14if($LogOutStaus.Equals("1")){ $OutFileName = "WindowsServerLog_"+(get-date $LogStart -format yyyyMMdd)+".csv" } 15 16#サーバ数分繰り返す 17foreach($server in $ServerList){ 18 19 # 途中で改行があれば以降は参照しない 20 if($server.Equals("")){ 21 break; 22 } 23 24 # ステータスが"2"であればサーバ単位で出力する 25 if($LogOutStaus.Equals("2")){ $OutFileName = $server+"_"+(get-date $LogStart -format yyyyMMdd)+".csv" } 26 27 #ログ分繰り返す 28 foreach($logname in $LogList){ 29 30 #途中で改行があれば以降は参照しない 31 if($logname.Equals("")){ 32 break; 33 } 34 35 # ステータスが"3"であればサーバ+ログ単位で出力する 36 if($LogOutStaus.Equals("3")){ $OutFileName = $server+"_"+$logname+"_"+(get-date $LogStart -format yyyyMMdd)+".csv"} 37 38 Get-WinEvent -ComputerName $server -FilterHashtable ` 39 @{logname=$logname; starttime=$LogStart; endtime=$LogEnd;level=1,2,3} | ` #levelの末尾に4を追加するとinfoも出る。 40 Select-Object -Property TimeCreated,LogName,LevelDisplayName,ProviderName,id,MachineName,Message | ` #itemの選定をしないならワイルドカードを設定 41 Export-Csv -UseCulture -Path $WorkDir$OutFileName -Append -Encoding UTF8 -NoTypeInformation 42 43 } 44}
ちなみに、私の勉強方法ですが、基本的にググって出てきたものを試したり、get-commandで出てきたコマンド名を試したり…と言った感じですので、動けばいいか、程度の事しかできません。
以上です。
投稿2019/03/08 08:07
編集2019/03/11 10:00総合スコア89
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
evtx形式で保存したいのですが
PS C:\Windows\system32> Get-WinEvent -LogName system | Format-List >test.evtx
で保存したevtxだとイベントビューアーに持っていっても読めない……
ので調査中……
考え方変なのかな……
投稿2019/03/12 07:16
総合スコア443
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/12 08:22

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/11 01:02
2019/03/12 00:34
2019/03/12 02:23 編集
退会済みユーザー
2019/03/12 04:43
2019/03/12 04:46