通垞のWindowsむベントログレポヌトを䜜成する

Windowsむベントログを監芖する必芁性は吊定できたせん。 このトピックに関する蚘事は、Habréを含む定期的に衚瀺されたす。 ただし、䜕らかの理由で、すべおの䟋は事前定矩されたEventIDを監芖するこずになりたす。 WinLogCheckナヌティリティで、別のパスを遞択したした-定期的に衚瀺され、興味のないむベントを陀倖しお、EventLogのレポヌトを取埗したす。



刀明したように、これは固有のオプションではなく、Linuxナヌティリティのlogcheckは同じアプロヌチに基づいおいたす。 しかし、それにもかかわらず、私の決定が少し前に珟れた可胜性は完党にありたす。



この蚘事では、技術的な詳现なしでやろうずしたす。 䜜成の歎史に぀いお少し-私の意芋では、これは、このナヌティリティが登堎した理由ず条件を理解するのに圹立ちたす。 以䞋は、操䜜アルゎリズムの簡単な説明ず、䜿甚説明曞に䌌たものです。



簡単な歎史ずWinLogCheckを䜿甚できるナヌザヌ



この゜リュヌションにより、珟圚、1ダヌス以䞊のWindows Serverを制埡するこずができ、1998幎から䜜業を支揎しおきたした。 最初のバヌゞョンはActiveState Perlで蚘述され、Windows NT 4䞊の3台のサヌバヌを監芖したした。WindowsServer 2003では、LogparserのシェルはJScriptで蚘述されおいたした。 しかし、Windows Server 2008のリリヌスでは、れロから始めなければなりたせんでした。 Powershellで蚘述しようずしたしたが、プログラムの開発に参加しおCを少し知っおいるこずがあるため、このオプションは私にずっお䟿利であるこずがわかりたした。



最初のバヌゞョンは、ドメむンで動䜜するように蚭蚈されおいたした。ナヌティリティはいずれかのサヌバヌで起動され、ドメむン内のすべおのサヌバヌでレポヌトが生成されたした。 ただし、既にWindows Server 2003では、ネットワヌク経由のむベントログぞの芁求が長時間実行され始め理由を理解できなかったため、サヌバヌは私が勀務しおいる䌚瀟のメむンドメむンの倖に珟れたした。 したがっお、堎合によっおは、既補の集䞭型゜リュヌションを䜿甚するこずはたったく䞍可胜です。



「投皿」にいく぀かのLinuxサヌバヌが登堎したずき、ナヌティリティの類䌌物であるlogcheckの存圚に぀いお孊びたした。 知らない人のために、ナヌティリティは倚くのLinuxおよびFreeBSDのセキュリティ資料、䟋えばDebian Security Guideで蚀及され掚奚されおいたす。 その埌、ナヌティリティをWinLogCheck元はUnknownEventsず呌ばれおいたしたずいう名前で䜿甚および公開するのにより䟿利にするこずが決定されたした。



その結果、ナヌティリティはlogcheckにさらに䌌たものになりたした。各サヌバヌで9:00に実行し、メヌルボックスで5〜10分埌にレポヌト付きのメッセヌゞが10個以䞊ありたす。 通垞、すべおを確認するには数分で十分です。



䜕床も既補の監芖ツヌルを芋぀けようずしたしたが、䟿利でシンプルで実甚的なものに出䌚うこずはありたせんでした。 おそらくそれはすべお習慣の問題です。 ただし、サヌバヌの数があたり倚くない堎合は、詊しおみおください。おそらく私のバヌゞョンが奜きでしょう。



Winlogcheckの仕組み



操䜜のメむンモヌド

  1. 登録されたむベントログのリストを取埗したす。 通垞のWindows Server 2008-7の堎合、Active Directoryを備えたサヌバヌの堎合-10。
  2. 各むベントログに぀いお、リク゚ストが生成されたす-䟋倖ファむル「\ path \ to \ winlogcheck \ exclude \ <eventlog_name> .conf」で指定されたむベントを陀いお、前日のむベントのリストを取埗したす。
  3. HTMLレポヌトは、䞀時ファむルに曞き蟌たれたリストから生成されたすレポヌトのある手玙が届かない堎合。
  4. レポヌトはメヌルで送信されたす。


.NETにはむベントのリストを取埗する独自のメ゜ッドがありたすが、私はWMIを䜿甚しおいたす詳现はWMIタスクむベントログ 。 メッセヌゞテストの方が簡単です。 唯䞀のマむナスは、倚数のログ゚ントリでク゚リを実行する際の遅延です。 たずえば、ドメむンコントロヌラヌの1぀でレポヌトを䜜成するには5〜6分かかりたす。



各サヌバヌの皌働日の初めに、次のようなレポヌトを受け取りたすこれは、Hyper-Vを搭茉した実際に動䜜するWindows Server 2008 R2からのレポヌトです。







すべおが正垞であり、DNSクラむアントでの1回限りの゚ラヌは特別な泚意を必芁ずしたせん。 件名のメッセヌゞに泚意しおください-ほずんどの堎合、手玙を開く必芁さえありたせん。通垞、件名は「゚ラヌ= 0、譊告= 0、その他= 0」ずいうフレヌズで終わりたす。



WinLogCheckの䜿甚方法



コマンドラむンオプション


ナヌティリティは、管理者暩限でコマンドラむンから起動されたす。

必須パラメヌタヌ-動䜜モヌドEXCLUDEたたはINCLUDE。 メむンのEXCLUDEモヌドで開始



winlogcheck -m exclude







INCLUDEモヌドには、2぀のオプションパラメヌタが甚意されおいたす自分では、特別なレポヌトモヌドず呌びたす。



-l <eventlog_name>-レポヌトを取埗するログを指定したす

-fは、ファむル「\ path \ to \ winlogcheck \ include \ <eventlog_name> .conf内のフィルタヌの名前です。



たずえば、このサヌバヌ䞊のRASサヌバヌぞの正垞な接続に関する別のレポヌトの堎合、「\ path \ to \ winlogcheck \ include \ system.conf」ずいうファむルがありたす以䞋のフィルタヌを䜿甚したファむル圢匏に぀いお。



 [General] RASconnects : SourceName = 'RemoteAccess' AND EventCode = 20272
      
      





たた、1日に1回開始されたす。



winlogcheck -m include -l system -f RASconnects







圓然、EXCUDEモヌドには同じフィルタヌがありたす。そのため、これらのレコヌドは䞀般的なサヌバヌレポヌトには含たれたせん。 レポヌトの1぀







EXCLUDEモヌドでは、テストのみにオプションのパラメヌタヌを䜿甚したす。



プログラムパラメヌタ


パラメヌタヌはwinlogcheck.ini構成ファむルに保管されたす。 ファむルは小さいので、远加のコメントを付けお完党に説明したす。

 [General] ##   ( ). ##  :  24  (  ) ## #TimePeriod = 24 ##     ##  : 'path\to\winlogcheck\reports\' ##        ,   ##   ,    -. ## -    . ## #ReportPath = c:\inetpub\wwwroot\winlogcheckreports ## CSS   . ##   ! ## ReportCSS = h1 {margin:0;font-weight:400} .servername, .subhead {font-weight:700} table {width:100%;} td {padding:0.25em} th {border:1px 0} tr:nth-child(odd) td {padding-bottom:1.5em, border-bottom:1px} tr:nth-child(even) {background-color:rgb(248,248,248)} caption {font-size:120%;text-align:left;padding:10px;background:rgb(216,216,216)} .error, .failure {background:rgb(255,127,127)} .warning {background:rgb(255,233,127)} ##   ##   -   . ##     ,  ##   . ## #[Mail] #SMTP_Server = localhost #Mail_From = Winlogcheck SERVERNAME <administrator@example.com> #Mail_To = Administrator SERVERNAME <administrator@example.com>
      
      





ナヌティリティ自䜓の監芖


NLogは圓瀟の開発に䜿甚されおいるため、私は車茪の再発明を始めたせんでした。 パッケヌゞに含たれるNLogの構成ファむルは、実行ログをコン゜ヌルおよびファむル「\ path \ to \ winlogcheck \ logs \ winlogcheck.log」にロヌテヌションで出力するように構成されたす毎日新しいファむル、保存期間は10日です。



フィルタヌ蚭定


最も興味深いものに枡したす。 IISがむンストヌルされおいるサヌバヌの䞀般的なむベントビュヌアヌ画面







おそらく誰もがむベントを知っおいたす



それらに぀いおはすべお明らかです。レポヌトでは必芁ありたせん。



フィルタはSQL構文を䜿甚しお蚘録され、むベントログのフィヌルドの名前は画面に衚瀺されるものずは異なりたす。 フィルタヌをコンパむルするには、次を䜿甚できたす。

  1. むベントログの名前。 この堎合、「システム」の堎合、ファむル「\ path \ to \ winlogcheck \ exclude \ system.conf」にフィルタを蚘述したす。
  2. レベル-EventType敎数。 ゞャヌナル自䜓では、番号によっお決定されたす。

    • 1-゚ラヌ
    • 2-è­Šå‘Š
    • 3-情報
    • 4-成功
    • 5-倱敗


  3. むベントID-むベントコヌド敎数
  4. カテゎリ-CategoryString文字列
  5. ゜ヌス-SourceName文字列


そしお、むベントの説明に衚瀺されるのは、[メッセヌゞ]フィヌルドです。



したがっお、レポヌトから䞊蚘のむベントを陀倖するには、「\ path \ to \ winlogcheck \ exclude \ system.conf」ずいうテキストを含むファむルを䜜成する必芁がありたす。



 [General] UserNotify : SourceName = 'Microsoft-Windows-Winlogon' AND ( EventCode = 7001 OR EventCode = 7002 ) WinHTTP : SourceName = 'Service Control Manager' AND (EventCode = 7036 OR EventCode = 7040) AND Message LIKE '%WinHTTP%'
      
      





フィルタヌを䜿甚したファむル圢匏に関するコメント



私の仕事で䜿甚する䞻なフィルタヌは、ナヌティリティのアヌカむブに含たれおいたす。



特別な関係はセキュリティログのみです。倚くの堎合、倚くのむベントが含たれおいるため、デフォルトのフィルタが機胜したす。゚ラヌのみがレポヌトに蚘録されたす。



最近のコメント







Active Directoryの監芖の問題が頻繁に発生したす。 私の゜リュヌションを䜿甚しお、この問題を解決できたす。 ただし、倧芏暡なドメむンを長い間管理しおいないため、ADむベントを監芖するための架空の䟋は思い぀きたせんでした。



この゜リュヌションは普遍的であるず䞻匵しおいるわけではありたせんが、私の意芋では、Windowsを実行する少数のサヌバヌを備えたネットワヌクで圹立぀可胜性がありたす。



All Articles