Info
License: Free — part of the universal collection tier.
Warning
Windows only. The probe subscribes to channels through the
Windows Event Log API. On Linux and macOS it reports a clear
not supported on <OS> error at start and stays inert — the
same configuration file can ship to a mixed fleet.
Windows Event Log Probe¶
The windows_eventlog probe subscribes to Windows Event Log
channels — System, Application, Security, or any operational channel
(Citrix, FSLogix, ...) — and ships each event as a structured OTel
log record through the OTLP storage. Filtering by
level, EventID and provider happens at the agent, so only the events
you asked for leave the host.
Quick start¶
# probes.d/10-windows_eventlog.yaml — each file under probes.d/ is a YAML array of probes
- name: windows-events
type: windows_eventlog
params:
channels: [System, Application]
levels: [Critical, Error, Warning]
bookmark_path: 'C:\ProgramData\senhub-agent\eventlog.bookmark'
Parameters¶
| Parameter | Must set | Default | Description |
|---|---|---|---|
channels |
Yes | - | Channel names. Example: System, Security |
levels |
No | - | Levels to keep; empty means all. One of Critical, Error, Warning, Information, Verbose |
include_event_ids |
No | - | Event IDs to keep; empty means all |
exclude_event_ids |
No | - | Event IDs to drop; wins over the include list |
sources |
No | - | Provider name patterns. Example: Citrix* |
bookmark_path |
No | - | File persisting the subscription position; use a distinct one per instance |
backlog |
No | false |
Replay events from the bookmark, or the whole channel without one, before tailing live |
redact_pii |
No | false |
Blank account names and addresses in Security events |
poll_interval |
No | 30s |
Bookmark flush cadence; delivery itself is push-based |
Level names are matched without regard to case, and info is accepted for
Information. Provider patterns are shell globs matched without regard to
case; a pattern without a wildcard is an exact match. Without
bookmark_path, each start tails from now.
Output¶
Each event becomes one OTel log record: channel, provider, EventID, level (mapped to OTel severity), task, keywords, the rendered message as the body, and the EventData fields as attributes.
The machine name from the event XML is emitted as winlog.computer,
the uppercase spelling Windows uses. The host a record belongs to is
the FQDN on the resource — the same value the metrics carry — so the
record never carries its own host.name.
Operational notes¶
- Push, not poll. Events are delivered by subscription the
moment they are written;
poll_intervalonly drives bookmark persistence. - Filter at the source. Level filters compile to an XPath query
evaluated by the Event Log engine. EventID lists and provider
globs are applied in-process. On a noisy Security channel,
combining
levelswithexclude_event_idskeeps volume sane. - Security channel. Reading it requires the agent to run with
sufficient privilege (the service installs as LocalSystem by
default, which suffices). Consider
redact_pii: truewhen the records leave a controlled perimeter. - Bookmarks are cheap insurance. Without
bookmark_path, an agent restart loses whatever fired while it was down. With it, the subscription resumes exactly where it stopped.
Metric reference¶
Every metric this probe can emit. Metric is the OpenTelemetry name the
OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a
Nagios check and the API metrics= filter match.
PRTG channel is the label PRTG shows, placeholders filled from the
series' tags.
| Metric | Name | PRTG channel | Unit | Description |
|---|---|---|---|---|
senhub.windows_eventlog.records_emitted |
senhub.windows_eventlog.records_emitted |
Windows Event Log Records Emitted | # | Cumulative count of event records this probe has published to the log rail |