ConsumeWindowsEventLog Processor
已废弃: LYNXUS-15688: 依赖 Windows 平台特定库,导致使用量少且自初始实现以来维护有限
描述
注册 Windows 事件日志订阅回调以从 Windows 事件接收 FlowFile。可以通过通道和 XPath 进行过滤。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Channel | System | 要侦听的 Windows 事件日志通道。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| XPath Query | * | 用于过滤事件的 XPath 查询。 (有关示例,请参阅 https://msdn.microsoft.com/en-us/library/windows/desktop/dd996910(v=vs.85).aspx。) 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Maximum Buffer Size | 1048576 | 各个事件日志 XML 被渲染到缓冲区。 这指定允许缓冲区增长到的最大字节数。(限制单个事件 XML 的最大大小。) | |
| 最大队列大小 | 1024 | 事件异步接收,必须在处理器触发时作为 FlowFile 输出。此属性指定排队等待转换为 FlowFile 的最大事件数。 | |
| Inactive Duration to Reconnect | 10 mins | 如果在指定的时间段内没有处理新的事件日志,此处理器将尝试重新连接,以恢复到无法消费任何进一步消息的状态。这种情况可能在 Windows 事件日志服务重新启动或返回 ERROR_EVT_QUERY_RESULT_STALE (15011) 时发生。设置无持续时间(例如 '0 ms')将禁用自动重连。 支持表达式语言:是(仅使用环境/系统变量求值) |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
success | 成功消费事件的关系。 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
mime.type | 将设置 application/xml 的 MIME 类型值。 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件不允许有传入连接。
详细说明
ConsumeWindowsEventLog
说明
该 Processor 用于监听 Windows 事件日志(Event Log)事件。它有一个 success 输出,其中包含事件的 XML 表示。
输出 XML 示例:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}"
EventSourceName="Service Control Manager"/>
<EventID Qualifiers="16384">7036</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2016-06-10T22:28:53.905233700Z"/>
<EventRecordID>34153</EventRecordID>
<Correlation/>
<Execution ProcessID="684" ThreadID="3504"/>
<Channel>System</Channel>
<Computer>WIN-O05CNUCF16M.hdf.local</Computer>
<Security/>
</System>
<EventData>
<Data Name="param1">Smart Card Device Enumeration Service</Data>
<Data Name="param2">running</Data>
<Binary>5300630044006500760069006300650045006E0075006D002F0034000000</Binary>
</EventData>
</Event>
权限:
你的 Windows 用户必须具有读取指定事件日志的权限。可以通过以下 步骤实现(Windows 2008 及更新版本):
- 以你的用户身份打开命令提示符。输入命令: wmic useraccount get name,sid
- 记下你想允许读取指定通道的用户或组的 SID
- 以管理员身份打开命令提示符,输入命令: wevtutil gl CHANNEL_NAME
- 获取以 O:BAG 开头的 channelAccess 属性,复制到文本编辑器中, 并在末尾追加 (A;;0x1;;;YOUR_SID_FROM_BEFORE)
- 在管理员提示符中运行以下命令(示例见下文): wevtutil sl CHANNEL_NAME /ca:TEXT_FROM_PREVIOUS_STEP
以下命令是我用来给我的用户添加安全日志读取权限的确切命令。 (可以用 wevtutil el 查看所有可能的通道):
wevtutil sl Security /ca:O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;S-1-5-21-3589080292-3448680409-2446571098-1001)
这些步骤改编自 这篇指南。