WEF
The Windows Event Forwarding (WEF) Source in Observo AI collects Windows event logs from multiple Windows machines in a centralized manner. It implements the Windows Event Forwarding protocol, allowing Windows clients to push their event logs to a central collector for continuous monitoring, security analysis, and compliance reporting for enhanced observability of Windows-based systems and applications.
Purpose
The purpose of the Observo AI Windows Event Forwarding source is to enable users to collect Windows event logs from distributed log agents into the Observo AI platform for centralized analysis and processing. It facilitates the aggregation of structured Windows events through secure WEF protocol connections, allowing organizations to streamline security monitoring, enhance infrastructure observability, and support use cases such as compliance auditing, security incident detection, system health monitoring, and forensic analysis by processing Windows event streams from diverse endpoints across Active Directory domains and workgroups.
Prerequisites
Complete the following prerequisites in order before configuring WEF.
1. Windows PKI Infrastructure
Ensure you have an Active Directory Certificate Services (AD CS) infrastructure or another Certificate Authority capable of issuing certificates.
Important: The same CA must issue both server and client certificates. This is a Windows Event Forwarding requirement—see Microsoft's documentation on source-initiated subscriptions.
2. Obtain Certificates
You will need:
Server Certificate
Observo collector identity
Request from your CA with Server Authentication EKU
Server Private Key
TLS authentication
Exported with the server certificate
CA Certificate
Validate Windows client certificates
Export from your CA (public key only)
To request a server certificate:
On any domain-joined machine, open
certlm.mscRight-click Personal > Certificates → All Tasks → Request New Certificate
Select a template with Server Authentication EKU (e.g., "Web Server")
Enter the Observo collector's FQDN as the Common Name (CN) or Subject Alternative Name (SAN)
Complete the wizard and export the certificate with private key (.pfx)
To export the CA certificate:
See Obtaining the CA Certificate Thumbprint for detailed steps.
3. Network and Connectivity
Firewall
Allow inbound TCP on port 5986 (TLS) to the Observo collector
DNS
Windows clients must resolve the collector's FQDN
Load Balancer
If used, configure SSL passthrough or terminate TLS at the collector
4. Windows Clients
Windows Version
Windows Server 2008 R2+ or Windows 7+
WinRM Service
Must be enabled on all forwarding clients
Group Policy Access
Required to configure subscription manager
Integration
Step 1: Configure Observo AI WEF Source
Log in to Observo AI
Navigate to the Sources tab
Click Add Source → Create New
Choose Windows Event Forwarding from the list
Step 2: General Settings
Name
Unique identifier for the source
wef-domain-controllers, wef-security-servers
Description
Optional description
Security events from DCs
Socket Address
Address where collector listens for WEF connections
0.0.0.0:5986
Collector Callback Address
Address clients use to reach collector (for NAT/LB scenarios)
collector.example.com:5986
Socket Address examples:
0.0.0.0:5986
Listen on all interfaces, port 5986 (HTTPS/TLS)
192.168.1.100:5986
Listen on specific IP address
Step 3: Authentication
Authentication Type
TLS (Mutual Certificate Authentication)
Server Certificate Path
Path to server certificate (DER, PEM, or PKCS#12)
Server Private Key Path
Path to server private key (PEM format)
CA Certificate Path
Path to CA certificate for validating client certificates
Verify Client Certificate
Enable to validate client certificates (recommended for production)
Verify Client Hostname
Enable to match client hostname to certificate CN
Example paths:
Server Certificate
/opt/observo/certs/wef-server.pem
Server Private Key
/opt/observo/certs/wef-server-key.pem
CA Certificate
/opt/observo/certs/enterprise-ca.pem
Step 4: Subscriptions
Configure one or more subscriptions to define which Windows events to collect.
Subscription Name
Name for this subscription
windows-security-events
Heartbeat Interval
Seconds between client heartbeats
3600
Max Envelope Size
Maximum batch size in bytes
512000
Max Elements per Envelope
Maximum events per batch
100
Connection Retry Count
Retry attempts for failed deliveries
5
Connection Retry Interval
Seconds between retries
60
Max Delivery Time
Seconds to wait for acknowledgment
30
Allowed Client Principals
Whitelist of allowed client CNs (empty = allow all)
CN=dc01.corp.local
Read Existing Events
Replay historical events
Disabled
Example Event Query:
Step 5: Advanced Settings
Note: These settings are pre-configured with sensible defaults and typically do not need to be modified. Only adjust these if you have specific requirements or are instructed to do so by Observo support.
Persistence Backend
Storage for subscription metadata
PostgreSQL
PostgreSQL Host
Database server hostname
observo-db-rw.observo-client.svc.cluster.local
PostgreSQL Port
Database port
5432
Database Name
Database name
wef
Database User
Database username
wef
Database Password
Database password
(masked)
SSL Mode
PostgreSQL SSL mode
prefer
Connection Pool Size
Max concurrent connections
16
Max Content Length
Max HTTP request body size
512000
Parser Config
After configuring the WEF source, configure parsing for the Windows XML event format.
In the left sidebar, click Parser Config
Enable Source Log Parser and select Windows XML Parser
Configure parser settings:
Bypass Transform
Skip transformation steps
Default: off
Add Filter Conditions
Filter which events get processed
Default: off
Log Agent
Output format
Observo, Winlogbeat, Splunk UF, Otel Agent
New Field Name
Field name for parsed events
win, windows, event
Pipeline Configuration
Step 1: Create a New Pipeline
Navigate to Pipelines section
Click Add Pipeline
In Add Source, select the configured WEF source
In Destination, select the target for log ingestion
Step 2: Add Windows Serializer Transform
Click + to add transforms
Select Serializer > Windows Serializer
Configure settings:
Name
Transform name
windows-to-splunk
Input Field
Field containing parsed event data
win (match Parser Config)
Output
Destination format
Splunk, Raw, Azure Sentinel
Step 3: Deploy Pipeline
Click Deploy Pipeline
Monitor logs to verify event flow
Common configurations:
Splunk
Splunk
Azure Sentinel
Azure Sentinel
S3 or other storage
Raw
Windows Client Configuration
After completing the Observo AI setup, configure Windows clients to forward events.
Obtaining the CA Certificate Thumbprint
The IssuerCA parameter in the Group Policy configuration requires the SHA1 thumbprint of the Certificate Authority.
Run on: Any domain-joined Windows machine
Using PowerShell
Using Certificate Manager
Open
certlm.mscNavigate to Trusted Root Certification Authorities > Certificates
Double-click your CA certificate
Select the Details tab
Scroll to Thumbprint and copy the value
On the CA Server Directly
Thumbprint Format
Remove all spaces from the thumbprint before using in the GPO configuration:
Configuring the Subscription Manager (GPO)
Configure Windows clients to forward events to the Observo AI collector using Group Policy.
Step 1: Enable WinRM on Windows Clients
On each Windows client, open an elevated command prompt and run:
Step 2: Configure the Subscription Manager Policy
Open Group Policy Management (
gpmc.msc) on a Domain ControllerCreate a new GPO or edit an existing one linked to the OU containing your Windows clients
Navigate to: Computer Configuration > Administrative Templates > Windows Components > Event Forwarding
Double-click Configure target Subscription Manager
Select Enabled
Under Options, click Show...
Enter the Subscription Manager URL:
Example:
Click OK twice to save
Step 3: Apply the Policy
On Windows clients, open an elevated command prompt and run:
Subscription Manager URL Parameters
Server
Full URL to the Observo collector endpoint. Use HTTPS for TLS.
Refresh
Interval in seconds for subscription update checks. Recommended: 60 (active) or 3600 (stable).
IssuerCA
SHA1 thumbprint of the CA certificate (no spaces).
Note: The URL path
/wsman/wecis case-sensitive.
Registry Alternative
Configure the Subscription Manager directly via registry:
For more information, see Microsoft's documentation on source-initiated subscriptions.
Security Event Log Access (SDDL)
By default, the Network Service account cannot read the Security event log. To forward Security events, grant read access using one of these methods.
Option 1: Local Security Policy (Single Machine)
Open Local Security Policy (
secpol.msc)Navigate to: Local Policies > User Rights Assignment
Double-click Manage auditing and security log
Click Add User or Group
Enter
NETWORK SERVICEand click Check NamesClick OK twice to save
Option 2: Group Policy (Domain-Wide)
Open Group Policy Management (
gpmc.msc)Edit the GPO linked to your Windows clients
Navigate to: Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment
Double-click Manage auditing and security log
Check Define these policy settings
Click Add User or Group and add
NETWORK SERVICEClick OK to save
Option 3: Configure Log Access SDDL (GPO)
For granular control, configure the Security log SDDL directly:
Navigate to: Computer Configuration > Policies > Administrative Templates > Windows Components > Event Log Service > Security
Double-click Configure log access
Select Enabled
Enter the following SDDL string:
Click OK to save
SDDL Breakdown
O:BA
Owner: Built-in Administrators
G:SY
Group: Local System
(A;;0xf0007;;;SY)
Allow System full access
(A;;0x7;;;BA)
Allow Built-in Administrators read, write, clear
(A;;0x1;;;BO)
Allow Backup Operators read
(A;;0x1;;;SO)
Allow Server Operators read
(A;;0x1;;;S-1-5-32-573)
Allow Event Log Readers group read
(A;;0x1;;;S-1-5-20)
Allow Network Service read
Apply Changes
After configuring, either:
Reboot the Windows client, or
Run
gpupdate /forceand restart the Windows Event Log service:
For more information, see Microsoft's troubleshooting guide.
Client Certificate Permissions
For TLS authentication, the Network Service account must have read access to the client certificate's private key.
Configure Private Key Permissions
Open Certificate Manager for Local Machine (
certlm.msc)Navigate to: Personal > Certificates
Right-click the client certificate used for WEF
Select All Tasks > Manage Private Keys...
Click Add
Enter
NETWORK SERVICEand click Check NamesEnsure Read permission is checked
Click OK to save
Verify Certificate Configuration
Issued by correct CA
Check Issued By field matches your CA
Not expired
Check Valid From and Valid To dates
Has private key
Certificate icon shows a key
Client Authentication EKU
Details > Enhanced Key Usage includes "Client Authentication"
Deploying Certificates via Group Policy (Auto-Enrollment)
Open Group Policy Management (
gpmc.msc)Edit the GPO linked to your Windows clients
Navigate to: Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies
Double-click Certificate Services Client - Auto-Enrollment
Set Configuration Model to Enabled
Check both:
Renew expired certificates, update pending certificates, and remove revoked certificates
Update certificates that use certificate templates
Click OK to save
Note: Auto-enrollment requires an AD CS infrastructure with appropriate certificate templates published.
For more information, see Microsoft's certificate autoenrollment guide.
Applying Configuration
After completing all configuration steps, apply changes to Windows clients.
Force Group Policy Update
Verify WinRM Service
If not running:
Verify Event Forwarding Configuration
Test Connectivity
Verify Subscription Status
Troubleshooting
Collector-Side Issues
No events received
Windows clients not configured
Verify GPO settings and subscription configuration
Certificate errors
Invalid or expired certificates
Check certificate validity and CA chain
Connection failures
Firewall blocking WEF port
Verify firewall allows TCP 5986
"Failed to bind to address"
Port in use or permissions issue
Check for conflicting services
"TLS handshake failed"
Certificate configuration error
Verify server cert, private key, and CA cert paths
"Database connection failed"
PostgreSQL unreachable
Test database connectivity and credentials
"Event query invalid"
XML syntax error
Validate Event Query XML syntax
High event loss
Envelope size too small
Increase Max Envelope Size setting
Windows Client-Side Issues
Windows Event Logs to Check
CAPI2
Applications and Services Logs > Microsoft > Windows > CAPI2 > Operational
EventForwarding-Plugin
Applications and Services Logs > Microsoft > Windows > Forwarding-Plugin > Operational
Windows Remote Management
Applications and Services Logs > Microsoft > Windows > Windows Remote Management > Operational
Note: CAPI2 log may need to be enabled. Right-click the log and select Enable Log.
Common Client Issues
No Events Being Forwarded:
Certificate Errors:
Security Events Not Forwarding:
TLS Handshake Failures:
Useful Commands Reference
winrm quickconfig
Configure WinRM with default settings
winrm get winrm/config
View current WinRM configuration
wecutil es
List event subscriptions
wecutil gr <name>
Get subscription runtime status
gpupdate /force
Force Group Policy refresh
gpresult /r
View applied Group Policies
certutil -store My
List certificates in Personal store
Resources
Microsoft Documentation
Additional Resources
Last updated
Was this helpful?

