Event Logs Stream - Azure EventHubs

Prev Next

The Customer Events Stream to EventHubs process is part of the eShare Analyze data pipeline. Its main goal is to combine audit event data from multiple systems, clean and standardize it, and send it to an EventHubs for the Customer’s consumption. Once the Audit events are sent to the EventHub, the Customer can create a connection using the standard Azure EventHub connector in the SIEM of their choosing (Splunk, Sentinel, Exabeam, etc.). At a high level, the steps involved are:

EventHub Stream Explained

This flow continuously listens to several event hubs that contain customer activity data — for example, file shares, user actions, or policy events — and merges them into a single event stream.

Here’s what happens step-by-step:

  1. Read data from several input topics (streams)

    • Web portal events

    • Secure mail gateway events

    • Govern for outlook and sharepoint events

    • (Optional) Microsoft 365 DLP-enriched events

  2. Filter and standardize event fields so all event data follows a single consistent schema.

  3. Optionally enrich events with DLP (Data Loss Prevention) metadata when enabled.

  4. Combine all event sources into one unified stream.

  5. Write the unified event stream to a Kafka topic connected to Azure EventHubs, where customers can consume it in real time.

Step 1: Input Streams

The job reads from up to three input data sources:

Input Source

Required

Refresh Period

Collaborate Web Events

12 hours

Secure Collaboration Gateway Events

Live

Govern for Outlook and SharePoint events

Live

M365 DLP Events (Purview)

Optional

Live

Step 2: Transformation and Combination

The ETL job then processes and merges these inputs:

  • Removes internal system metadata

  • Filters data by customer organization key

  • Renames columns to a standard naming format

  • Combines events from all sources into one consistent DataFrame

  • Optionally includes M365 DLP enrichment if enabled

This ensures that no matter the source, every event looks and behaves the same downstream.

Step 3: Output Stream

After transformation, the job writes to a destination Azure EventHub.

Data Schema

Dimension

Field 

Description

Event

event_id

A unique identifier assigned to the event

event_type_name

The type of the audit event, which indicates the action performed

event_server_timestamp

The timestamp when the event was logged by the server

event_timestamp

The timestamp when the event was logged by the client

event_category

The category of the event (e.g. Sharing Event, Admin Event)

event_duration_millis

The duration of the event in milliseconds

event_source_app_id

The source system that generated this event

Actor

actor_user_email

The email of the user who performed the action

Location

location_continent

The continent where the event took place

location_country

The country where the event occurred

location_country_code

The country code where the event occurred

location_region

The region or state where the event occurred

location_city

The city where the event occurred

location_longitude

The longitude coordinate of the event’s location

location_latitude

The latitude coordinate of the event’s location

IP address

ip_ip_address

The IP address from which the event originated

ip_is_private

Indicates where the IP address is a private address

ip_registry

The IP registry associated with the IP address

ip_asn_id

The autonomous system number (ASN) associated with the IP address

ip_asn_description

The description of the autonomous system number (ASN)

ip_asn_country_code

The country code associated with the autonomous system number (ASN)

ip_ip_network_cidr

The Classless Inter-Domain Routing (CIDR) block of the IP address.

Trusted Share

trusted_share_id

A unique identifier for the Trusted Share

trusted_share_name

The name of the Trusted Share

trusted_share_owner_eshare_identity_id

A unique identifier for the identity of the share owner

trusted_share_owner_fullname

The full name of the trusted share owner

trusted_share_owner_email

The email of the trusted share owner

trusted_share_recipient_email

The email of the recipient of the Trusted Share

trusted_share_recipient_expiry

The expiration date of the Trusted Share for this recipient

trusted_share_recipient_permissions_watermark

Indicates whether the Sharing Policy enforces the use of a watermark when files are downloaded

trusted_share_recipient_permissions_can_create

Indicates whether the Sharing Policy allows content creation.

trusted_share_recipient_permissions_can_delete

Indicates whether the Sharing Policy allows content deletion.

trusted_share_recipient_permissions_can_download

Indicates whether the Sharing Policy allows content downloading.

trusted_share_recipient_permissions_can_edit

Indicates whether the Sharing Policy allows content editing.

trusted_share_recipient_permissions_can_read

Indicates whether the Sharing Policy allows content viewing.

trusted_share_recipient_permissions_can_share

Indicates whether the Sharing Policy allows content sharing.

trusted_share_recipient_permissions_convert_to_pdf

Indicates where the Sharing Policy enforces conversion of the content to be downloaded to PDF format and addition of Terms of Use as cover page, if applicable

trusted_share_recipient_permissions_login_required

Indicates whether the Sharing Policy requires login to access the Trusted Share

trusted_share_recipient_permissions_pin_protected

Indicates whether the Sharing Policy requires a PIN to access the Trusted Share

Sharing Policy

sharing_policy_id

A unique identifier of the Sharing Policy used

sharing_policy_name

The name of the Sharing Policy used

sharing_policy_sensitivity_label_id

A unique identifier of the sensitivity label of the Sharing Policy

sharing_policy_sensitivity_label_name

The sensitivity label name of the Sharing Policy

File

file_name

The name of the file involved in the event

file_is_folder

Indicates whether the item is a folder

file_path

The path of the file in this event 

file_extension

The file extension (e.g., .pdf, .docx)

file_size

The size of the file in bytes

file_sensitivity_label_id

The unique identifier for the sensitivity label of the file

file_sensitivity_label_name

The name of the sensitivity label of the file

file_dlp_tag_id

The unique identifier for the Data Loss Prevention (DLP) tag of the file

file_dlp_tag_name

The name for the Data Loss Prevention (DLP) tag of the file

file_page

The page of the file associated with the event, if applicable

file_pageview_id

The unique identifier for the page of the file associated with the event, if applicable

file_url

The url of the location of the file, if applicable

sharepoint_site_name

The name of the SharePoint Site the file belongs to, if applicable

sharepoint_site_url

The url of the SharePoint Site the file belongs to, if applicable

cloud_storage_provider

The cloud storage provider in this event (e.g., SharePoint, OneDrive, blob,  Dropbox)

cloud_storage_provider_organization_name

The organization name of the cloud storage accout provider

M365 DLP

m365_dlp_event_id

The M365 DLP audit event id of the DlpRuleMatch event

m365_dlp_event_timestamp

The timestamp of the DlpRuleMatch M365 DLP event

m365_dlp_policy

The M365 DLP policy that was matched through one of its rules

m365_dlp_rule

The M365 DLP rule that was matched

m365_dlp_rule_severity

The severity of the M365 DLP rule match

m365_dlp_sit

The M365 DLP SIT (sensitive information type) that was detected

m365_dlp_sit_count

The number of times the M365 DLP SIT was detected

m365_dlp_sit_confidence

The confidence with which the M365 DLP SIT was detected

EventHub Configuration Steps

NOTE:

The following configuration assumes the customer would prefer to host the EventHub. If there is concern with hosting the EventHub in your tenant, please contact your eShare Customer Success Manager to discuss.

eShare requires the following items be provided to your Customer Success Manager so eShare audit events can be forwarded to the EventHub accordingly: 

  • The EventHub connection string

  • The EventHub must have Kafka surface enabled 

  • A Private Link from the EventHub to the eShare Cloud Service must be created 

Below are instructions and screenshots that showcase how to get the EventHub's required information.

Create/Retrieve EventHub's Connection String 

In the EventHub's namespace, create a new EventHub where audit events will be forwarded to. Under ‘Shared Access Policies‘ of the EventHub (not the EventHub namespace), create a new policy with ‘Send‘ permission. Two connection strings will be generated, provide either the ‘Primary connection string‘ or the ‘Secondary connection string’. 

A screenshot of a computer  AI-generated content may be incorrect.

Verify Kafka Surface is Enabled 

In your EventHub's namespace, in ‘Overview’, verify that Kafka surface is enabled. This is enabled at ‘Standard’ pricing and above. 

A screenshot of a computer  AI-generated content may be incorrect.

Private Endpoint

In your EventHub's namespace, in ‘Overview’, select ‘JSON View‘ and copy the resource ID from the bar and provide this to your eShare CSM. eShare will then initiate a Private Endpoint service which your team will accept at the appropriate time.

A screenshot of a computer  AI-generated content may be incorrect.

Ingesting Events into a SIEM Tool

Every SIEM Tool has a different way of ingesting content sent via an EventHub. You will be able to get the required connection information from your Azure EventHub, or your eShare CSM will provide the details of the eShare hosted EventHub. Here are resources on how to connect the EventHub stream to your SIEM tool:

Splunk | Exabeam | Sentinel