Skip to main content

Zscaler Internet Access (ZIA)

Zscaler Internet Access (ZIA) is a cloud security service that brokers internet access for an organization from anywhere, on any device. Pairing it with Coralogix through Zscaler's Nanolog Streaming Service (NSS) gives you real-time visibility into internet traffic and user activity, so network behavior can be monitored and analyzed for security threats and compliance alongside the rest of your telemetry.

What you need

  • An administrative login to the ZIA admin portal.
  • An administrative login to your Coralogix account.
  • A Coralogix Send-Your-Data API key.
  • The logs endpoint for your Coralogix domain.

Confirm NSS is healthy

The NSS server is what streams the logs, so check it is running before you add a feed to it.

Select Administration, then Cloud Configuration, then Nanolog Streaming Service, and confirm the State column reads Healthy.

Zscaler Nanolog Streaming Service page with the State column showing Healthy for the firewall and web NSS servers

Shows the server list you add a feed to, with each server's health state.

Add an NSS feed

1.
Start a new feed

On the Nanolog Streaming Service page, select Add NSS Feed.

Zscaler Nanolog Streaming Service page with the Add NSS Feed control highlighted

Shows the entry point for a new feed, on the NSS servers tab.

2.
Configure the feed

Set the connectivity and formatting parameters.

FieldValue
Feed NameA meaningful name for the feed.
NSS TypeThe NSS server type. NSS for Web or NSS for Firewall.
StatusEnabled
SIEM RateUnlimited
SIEM TypeOther
Max Batch Size512 KB
API URLThe logs endpoint for your Coralogix domain.
HTTP HeadersTwo headers, each entered as a key and value pair: Content-Type set to application/json, and Authorization set to your Send-Your-Data API key.
Log TypeThe log type you want to stream.
Feed Output TypeJSON
Feed Escape CharacterLeave empty for Web, Firewall, and Tunnel. For DNS, enter ,\", a comma, a backslash, and a quotation mark.

Zscaler Add Cloud NSS Feed dialog showing feed name, NSS type, SIEM connectivity, API URL, and HTTP header fields

Shows the connectivity half of the feed form, where the Coralogix endpoint and API key are set.

Zscaler Add Cloud NSS Feed formatting section with log type, feed output type, escape character, and feed output format

Shows the formatting half, where the output template below is pasted.

3.
Paste the output format

Set Feed Output Format to Custom and paste the template for your log type. Adjust applicationName and subsystemName to the values you want the events filed under in Coralogix.

\\{
"applicationName": "Zscaler",
"subsystemName": "ZIA WEB",
"text": \\{
"sourcetype": "zscalernss-web",
"event": \\{
"datetime": "%d{yy}-%02d{mth}-%02d{dd} %02d{hh}:%02d{mm}:%02d{ss}",
"reason": "%s{reason}",
"event_id": "%d{recordid}",
"protocol": "%s{proto}",
"action": "%s{action}",
"transactionsize": "%d{totalsize}",
"responsesize": "%d{respsize}",
"requestsize": "%d{reqsize}",
"urlcategory": "%s{urlcat}",
"serverip": "%s{sip}",
"requestmethod": "%s{reqmethod}",
"refererURL": "%s{ereferer}",
"useragent": "%s{eua}",
"product": "NSS",
"location": "%s{elocation}",
"ClientIP": "%s{cip}",
"status": "%s{respcode}",
"user": "%s{elogin}",
"url": "%s{eurl}",
"vendor": "Zscaler",
"hostname": "%s{ehost}",
"clientpublicIP": "%s{cintip}",
"threatcategory": "%s{malwarecat}",
"threatname": "%s{threatname}",
"filetype": "%s{filetype}",
"appname": "%s{appname}",
"pagerisk": "%d{riskscore}",
"department": "%s{edepartment}",
"urlsupercategory": "%s{urlsupercat}",
"appclass": "%s{appclass}",
"dlpengine": "%s{dlpeng}",
"urlclass": "%s{urlclass}",
"threatclass": "%s{malwareclass}",
"dlpdictionaries": "%s{dlpdict}",
"fileclass": "%s{fileclass}",
"bwthrottle": "%s{bwthrottle}",
"contenttype": "%s{contenttype}",
"unscannabletype": "%s{unscannabletype}",
"deviceowner": "%s{deviceowner}",
"devicehostname": "%s{devicehostname}",
"keyprotectiontype": "%s{keyprotectiontype}",
"datacenter": "%s{datacenter}",
"datacentercity": "%s{datacentercity}",
"datacentercountry": "%s{datacentercountry}",
"dlpdicthitcount": "%s{dlpdicthitcount}",
"dlpidentifier": "%d{dlpidentifier}",
"dlpmd5": "%s{dlpmd5}",
"dlprulename": "%s{dlprulename}",
"filename": "%s{filename}",
"upload_filetype": "%s{upload_filetype}",
"upload_filename": "%s{upload_filename}",
"rulelabel": "%s{rulelabel}",
"ruletype": "%s{ruletype}",
"apprulelabel": "%s{apprulelabel}",
"host": "%s{host}",
"referer": "%s{referer}"
\\}
\\}
\\}
4.
Save and test

Select Save, then run a connectivity test against the remote server.

Zscaler feed row showing Last Connectivity Test reporting the last validation succeeded

Shows the confirmation that Zscaler reached your Coralogix endpoint. ZIA traffic starts arriving in Coralogix once it passes.

Tag the logs with a parsing rule

A Replace rule marks the incoming events as originating from Zscaler, which is what lets the matching alerts and dashboards find them.

1.
Create the rule

Select Data Flow, then Parsing Rules, and add a new Replace rule.

2.
Configure it

On the New rule group page, set both Source Field and Destination Field to Text, set Regular Expression to (.*), and set Replacement String to {"zscaler":$1}.

Coralogix Replace rule form with source and destination set to Text, a capture-all regular expression, and a replacement string wrapping the match

Shows the rule that nests each incoming event under a zscaler key.

Last updated on