The Secure60 Windows Log Receiver is the agentless option for collecting Windows event logs. It uses Windows Event Forwarding: Windows servers send events directly to Secure60 with no agent installed on the Windows host. The receiver accepts and processes these events for your Secure60 project.
For more on Windows Event Forwarding, see the Microsoft documentation.
Deploy the receiver module on your infrastructure so Windows servers can forward events to it. You run the Secure60 Windows Log Receiver container; there is no build step.
Before running the container you need:
win-log-cert/) containing:
ca-cert.pem — CA certificateserver-cert.pem — Server certificateserver-key.pem — Server private keywin-log-db/ and win-log-data/). Create these on the host before first run.Create a receiver configuration file (e.g. secure60.conf.toml) in the same directory as your compose.yaml. Set hostname to the FQDN that Windows servers will use in their Subscription Manager string (e.g. the hostname of this host). Replace <receiver-hostname> with your value.
# Secure60 Windows Log Receiver — main configuration
[database]
type = "SQLite"
path = "/var/lib/openwec/db/db.sqlite"
[[collectors]]
hostname = "<receiver-hostname>"
listen_address = "0.0.0.0"
listen_port = 5986
[collectors.authentication]
type = "Tls"
ca_certificate = "/etc/ca-cert.pem"
server_certificate = "/etc/server-cert.pem"
server_private_key = "/etc/server-key.pem"
[logging]
verbosity = "debug"
access_logs = "stdout"
The receiver uses subscription files in a directory (e.g. win-log-conf/) to define what to collect and where to send events. Create the directory and add at least one subscription file (e.g. 01-simple.toml).
<your-secure60-collector-host> with your Secure60 Collector host or IP, and change 9000 if your Collector listens on a different port.# win-log-conf/01-simple.toml — example subscription
uuid = "e493fa95-4810-4c61-8ac7-7fa8d028a144"
name = "simple"
query = """
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*</Select>
<Select Path="Security">*</Select>
<Select Path="Setup">*</Select>
<Select Path="System">*</Select>
</Query>
</QueryList>
"""
[[outputs]]
driver = "Files"
format = "Raw"
config = { path = "/var/lib/openwec/data/simple/messages" }
[[outputs]]
driver = "Tcp"
format = "Json"
config = { addr = "<your-secure60-collector-host>", port = 9000 }
You can add more subscription files (e.g. 02-another.toml) with different UUIDs, names, and queries. Ensure the TCP output addr and port point to your Secure60 Collector instance.
Use the pre-built image secure60/s60-win-log-receiver. Expose ports 5985 (HTTP) and 5986 (HTTPS). Windows Event Forwarding uses 5986; ensure that port is open from your Windows servers. Mount the configuration file, config directory, certificate files, and persistent storage as in the example below. Create the host directories win-log-db and win-log-data before first run.
Example using Docker Compose:
services:
s60-win-log-receiver:
image: secure60/s60-win-log-receiver:latest
container_name: s60-win-log-receiver
restart: unless-stopped
ports:
- "5985:5985"
- "5986:5986"
volumes:
# Receiver configuration file (read-only)
- ./secure60.conf.toml:/etc/openwec.conf.toml:ro
# Subscription config directory (read-only)
- ./win-log-conf/:/etc/openwec.d/:ro
# Certificate files (read-only)
- ./win-log-cert/ca-cert.pem:/etc/ca-cert.pem:ro
- ./win-log-cert/server-cert.pem:/etc/server-cert.pem:ro
- ./win-log-cert/server-key.pem:/etc/server-key.pem:ro
# Persistent data (receiver database and event data)
- ./win-log-db:/var/lib/openwec/db/
- ./win-log-data:/var/lib/openwec/data/
Start the receiver:
docker compose up -d
Check logs:
docker compose logs -f s60-win-log-receiver
Configure each Windows server to forward events to the Secure60 Windows Log Receiver. You will need the Subscription Manager string and client certificate pack from Secure60 (generated when you provide the Windows server hostname).
On the Windows server, run:
hostname
Send this hostname to the Secure60 team. They will generate a client certificate pack and the Subscription Manager string for this server.
2.1 Install the client certificate
certmgr.msc).2.2 Install the CA certificate
2.3 Grant Network Service access to the client certificate
gpedit.msc).Syntax:
Server=https://<collector FQDN>:5986/wsman/,Refresh=<seconds>,IssuerCA=<CA thumbprint>
Example:
Server=HTTPS://wec-server.secure60:5986/wsman/,Refresh=30,IssuerCA=<thumbprint>
Use commas between Server=..., Refresh=..., and IssuerCA=.... Replace <collector FQDN> with the hostname or FQDN of the host running the Secure60 Windows Log Receiver, and <thumbprint> with the CA certificate thumbprint provided by Secure60.
Windows must allow the forwarder to read the Security event log.
User right — Manage auditing and security log
Event Log Readers group
Non–domain-joined servers: Use Local Users and Groups (lusrmgr.msc): open Groups, select Event Log Readers, add NETWORK SERVICE.
Proof of concept: Add a hosts file entry so the Windows server can resolve the receiver’s FQDN:
C:\Windows\System32\drivers\etc\hosts as Administrator.<receiver IP> <receiver FQDN> (e.g. the FQDN used in the Subscription Manager string).Production: Use DNS so the Windows server resolves the receiver’s FQDN; no hosts file change.
Check the service:
sc query winrm
If it is not running, start it:
net start winrm
eventvwr.msc).
netsh winhttp show proxyTest-NetConnection -ComputerName <receiver FQDN> -Port 5986).For more detail on Windows Event Forwarding setup, see the Windows Event Forwarding Guide under Guides.