The HTTP Event Collector (HEC) is a reliable method to send log data to SentinelOne Singularity Data Lake. Cloudflare Logpush supports pushing logs directly to SentinelOne HEC via the Cloudflare dashboard or API.
-
In the Cloudflare dashboard, go to the Logpush page at the account or or domain (also known as zone) level.
For account: Go to Logpush ↗
For domain (also known as zone): Go to Logpush ↗
-
Depending on your choice, you have access to account-scoped datasets and zone-scoped datasets, respectively.
-
Select Create a Logpush job.
-
In Select a destination, choose SentinelOne.
-
Enter or select the following destination information:
- SentinelOne HEC URL
- Auth Token - Event Collector token.
- Source Type - For example,
marketplace-cloudflare-latest.
When you are done entering the destination details, select Continue.
-
Select the dataset to push to the storage service.
-
In the next step, you need to configure your logpush job:
- Enter the Job name.
- Under If logs match, you can select the events to include and/or remove from your logs. Refer to Filters for more information. Not all datasets have this option available.
- In Send the following fields, you can choose to either push all logs to your storage destination or selectively choose which logs you want to push.
-
In Advanced Options, you can:
- Choose the format of timestamp fields in your logs (
RFC3339(default),Unix, orUnixNano). - Select a sampling rate for your logs or push a randomly-sampled percentage of logs.
- Enable redaction for
CVE-2021-44228. This option will replace every occurrence of${withx{.
- Choose the format of timestamp fields in your logs (
-
Select Submit once you are done configuring your logpush job.
To set up a SentinelOne Logpush job:
- Create a job with the appropriate endpoint URL and authentication parameters.
- Enable the job to begin pushing logs.
Ensure Log Share permissions are enabled, before attempting to read or configure a Logpush job. For more information refer to the Roles section.
To create a job, make a POST request to the Logpush jobs endpoint with the following fields:
- name (optional) - Use your domain name as the job name.
- destination_conf - A log destination consisting of an endpoint URL, source type, authorization header in the string format below.
- <SENTINELONE_ENDPOINT_URL>: The SentinelOne raw HTTP Event Collector URL with port. For example:
sentinelone://ingest.us1.sentinelone.net/services/collector/raw. Cloudflare expects the SentinelOne endpoint to be/services/collector/rawwhile configuring and setting up the Logpush job. - <SENTINELONE_AUTH_TOKEN>: The SentinelOne authorization token that is URL-encoded. For example:
Bearer 0e6d94e8c-5792-4ad1-be3c-29bcaee0197d. - <SOURCE_TYPE>: The SentinelOne source type. For example:
marketplace-cloudflare-latest.
- <SENTINELONE_ENDPOINT_URL>: The SentinelOne raw HTTP Event Collector URL with port. For example:
"https://<SENTINELONE_ENDPOINT_URL>?sourcetype=<SOURCE_TYPE>&header_Authorization=<SENTINELONE_AUTH_TOKEN>"-
dataset - The category of logs you want to receive. Refer to Datasets for the full list of supported datasets.
-
output_options (optional) - To configure fields, sample rate, and timestamp format, refer to Log Output Options. For timestamp, Cloudflare recommends using
timestamps=rfc3339.
Example request using cURL:
Required API token permissions
At least one of the following token permissions is required:Logs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "<DOMAIN_NAME>",
"destination_conf": "sentinelone://<SENTINELONE_ENDPOINT_URL>?sourcetype=<SOURCE_TYPE>&header_Authorization=<SENTINELONE_AUTH_TOKEN>",
"output_options": {
"field_names": [
"ClientIP",
"ClientRequestHost",
"ClientRequestMethod",
"ClientRequestURI",
"EdgeEndTimestamp",
"EdgeResponseBytes",
"EdgeResponseStatus",
"EdgeStartTimestamp",
"RayID"
],
"timestamp_format": "rfc3339"
},
"dataset": "http_requests",
"enabled": true
}'Response:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"kind": "",
"enabled": true,
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp","EdgeResponseBytes", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID"],
"timestamp_format": "rfc3339"
},
"destination_conf": "sentinelone://<SENTINELONE_ENDPOINT_URL>?sourcetype=<SOURCE_TYPE>&header_Authorization=<SENTINELONE_AUTH_TOKEN>",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}Refer to Manage Logpush with cURL to update a job (including enabling and disabling).
Refer to the Logpush FAQ for troubleshooting information.