Windows Server2008のターミナルサービス/ LocalSessionManager /操作ログを別のWindowsServer2008の[イベントの転送]セクションに転送するようにサブスクリプションイベントを設定しています。
サブスクリプションイベントは、HeartbeatInterval値が300に設定されています(それでも、送信されるまでに15分ほどかかります)。
ただし、ログが最終的にメインのWindows Server 2008に渡され、イベントを実行すると、ログの収集に情報が失われます。
転送されたイベントの一般ビューには、次のように表示されます。
Remote Desktop Services: Session reconnection succeeded:
User: %1
Session ID: %2
Source Network Address: %3
転送時にこれらの変数が入力されないのはなぜですか?転送される前に、ソースマシンはユーザーと残りの情報を教えてくれます。しかし、転送されたバージョンのログにはこれがありません。
期待される表示:
Remote Desktop Services: Session reconnection succeeded:
User: mydomain\myusername
Session ID: 2
Source Network Address: 123.4.5.6
ただし、[詳細]タブを表示すると、情報がすべて揃っていることがわかります。
- <UserData>
- <EventXML xmlns:auto-ns3="http://schemas.Microsoft.com/win/2004/08/events" xmlns="Event_NS">
<User>mydomain\myusername</User>
<SessionID>2</SessionID>
<Address>123.4.5.6</Address>
</EventXML>
</UserData>
このイベントをnxlogに入力しても問題ありません。
Nxlog出力データは、転送されていないイベントと一致します。 Nxlog出力:
{"EventTime":"2014-05-21 12:49:35","Hostname":"myhostname.mywebsite.org","Keywords":1152921504606846976,"EventType":"INFO","SeverityValue":2,"Severity":"INFO","EventID":25,"SourceName":"Microsoft-Windows-TerminalServices-LocalSessionManager","ProviderGuid":"{5D896912-022D-40AA-A3A8-4FA5515C76D7}","Version":0,"Task":0,"OpcodeValue":0,"RecordNumber":89,"ProcessID":532,"ThreadID":3316,"Channel":"Microsoft-Windows-TerminalServices-LocalSessionManager/Operational","Domain":"NT AUTHORITY","AccountName":"SYSTEM","UserID":"SYSTEM","AccountType":"User","Opcode":"Info","EventReceivedTime":1400691838,"SourceModuleName":"eventlog","SourceModuleType":"im_msvistalog"}
Logstashがnxlogからの出力を受信すると、欠落しているフィールドがあります。最も重要なのは、イベントログの一般ビューのように見えるものを含む「メッセージ」フィールドが、これらの転送されたイベントから完全に欠落していることです。 「メッセージ」フィールドはまだありますが、これにはnxlog出力のみが含まれており、必要なユーザーの詳細が明らかに欠落しています。
転送されないイベントを処理する場合、「メッセージ」フィールドと「メッセージ」フィールドの両方がlogstashに表示されますが、転送されたイベントには「メッセージ」フィールドがありません。どうすればこれを修正できますか?
EDIT:サブスクリプションイベントContentFormatはEventsに設定されています。
私は解決策があると信じています、そしてそれはきれいではありません。
サブスクリプションの宛先ログをTerminalServices-LocalSessionManager/Operationalに設定した後、すべてのデータが期待どおりにイベントビューアにそのまま入力され始めました。 %1、%2、%3、ナンセンスはなく、すべての変数が入力されました。
Nxlogがイベントログを読み取り、logstashがnxlogの出力を読み取ると、「メッセージ」フィールドと「メッセージ」フィールドもすべてそのままでした。欠落しているデータはなく、パーサーは正常に機能しています。
わかりませんが、宛先ログが転送済みイベントに設定されているという問題があります。どういうわけか、転送中にデータが失われます。
ContentFormatもRenderedTextに戻されました。
更新:RenderedTextに設定すると、問題が解決しました。転送されたイベントログもデフォルトで20MBに制限されており、増やす必要がありました。もう1つの問題は、サブスクリプションに含まれるドメインコンピューターです。これには、サブスクリプションサーバー自体が含まれているため、Windowsサーバーがログを再帰的に転送していました。
ContentFormatはRenderedTextに戻されます(デフォルト設定)。宛先ログサイズを5GBにアップしました。サブスクリプションから自分を除外しました。