Closed
Description
Component(s)
receiver/windowseventlog
Is your feature request related to a problem? Please describe.
I'm proposing to enhance the existing windowseventlogreceiver
to support remote collection of Windows event logs using the Windows APIs EvtOpenSession
. This feature will allow the OpenTelemetry Collector to gather event logs from remote Windows machines without needing to be installed on the host machine. This capability is especially useful in environments where direct installation on the host is not feasible.
Describe the solution you'd like
As BinaryFissionGames and pjanotti mentioned, Using EvtOpenSession
can be used to enable remote event log collection. This enhancement will include:
- Adding configuration options for specifying multiple credentials including user, and password and optional domain with server details as a list.
- Adding remote collection using
EvtOpenSession
to subscribe and collect Windows Event Logs. - Adding a
remote_sever
feild on remote collection only
Single server configuration:
receivers:
windowseventlog:
channel: application
remote:
- credentials:
username: "user"
password: "password"
domain: "domain"
servers:
- "remote-server"
Multiple servers with single credentials configuration:
receivers:
windowseventlog:
channel: application
remote:
- credentials:
username: "user"
password: "password"
domain: "domain"
servers:
- "remote-server-1"
- "remote-server-2"
Multiple servers with multiple credentials configuration:
receivers:
windowseventlog:
channel: application
remote:
- credentials:
username: "user1"
password: "password1"
domain: "domain1"
servers:
- "remote-server-1"
- credentials:
username: "user2"
password: "password2"
domain: "domain2"
servers:
- "remote-server-2"
Describe alternatives you've considered
- Using go-msrpc to create a new receiver: The go-msrpc was first proposed but the library is not mature and the existing event log data is similar. After learning that the Windows API has an EVT_RPC_LOGIN, this alternative does not seem practical.