web-dev-qa-db-ja.com

LogParserで成功したドメインユーザー認証(ログイン)をカウントするにはどうすればよいですか?

IISベースのWebポータルで成功した認証試行のみをカウントできる必要があります。すべてのユーザーは同じIPアドレスから来ています。w3cログに特定の何かを探して、私が求めていることを実行しますか?

1
dexter

W3SVC1ログは、リクエストのHTTPステータスを示します。認証はSecurityイベントログに記録されます。ネットワークログオンが成功すると、イベントID 540、タイプ3が登録されます。

query.sqlという名前のこのクエリ用の単純なSQLファイルを作成します。

SELECT
    TimeGenerated,
    EventID,
    EXTRACT_TOKEN(Strings,0,'|') AS User,
    EXTRACT_TOKEN(Strings,3,'|') AS Type
FROM
    Security
WHERE 
    (EventID = 540) AND (Type LIKE '3')
ORDER BY
    TimeGenerated
DESC

次に、DataGridを生成して簡単に確認できます。

LogParser.exe file:query.sql -o:DATAGRID -i:EVT

ネットワークログオンには、共有ファイルとプリンタアクセス認証も含まれることに注意してください。 IISサーバーがIISの外部でプリンターまたはファイルを共有している場合は、これらのデータを収集する別の方法が必要になる場合があります。

2
jscott

@dexterしかし、Webログは認証を追跡します。 domain\userで200を取得した場合、その要素に対して正常に認証されています。何もする権限がない可能性がありますが、Webサーバーへの認証に成功しています。

W3SVCログでは、ページのすべての要素(画像、JavaScriptなど)で401の後に200が成功する可能性が高いため、1つのページに10以上の認証が表示される可能性があるため、これは実際には有用なカウントではありません。各ユーザー。ただし、ログパーサーを使用して特定の要素(index.aspxなど)に絞り込んだ場合、そのファイルに対して成功した認証の数がわかり、そのページの残りの負荷を無視できます。

Httpsステータスを無視して、特定のファイルに対してdomain\userを監視することもできます。そうすれば、認証は機能したがページ上の何かが失敗した場合に、他の何か(500エラーなど)として表示される認証を取得できます。

1
Phillip Jubb