Journey Step 3 Visual Guide — Palo Alto Networks PAN-OS Syslog Configuration
Audience: your organization's firewall administrator, managing a Palo Alto Networks firewall (VM-Series or hardware) running PAN-OS 10.2, 11.1, or 11.2.
When you need this guide. You are on Step 3 of the 4-step collector
setup you are running from /client/settings/data-sources in the JawaSec
portal:
- Prepare the collector machine — a small Linux host on your network.
- Run the command on that machine — the portal detects this automatically.
- Tell the firewall where to send its logs — this guide.
- Tell us how it went and save — the intake form back in the portal.
Everything this guide needs, and where to get it:
| # | Requirement | Instructions to get it |
|---|---|---|
| 1 | Collector address (example used in this guide: <collector-ip>) |
Printed by the install command at the end of Step 2 of the in-portal journey |
| 2 | Syslog port (example: 9001) |
Printed by the install command at the end of Step 2, right next to the address |
| 3 | A PAN-OS account that can edit Device → Server Profiles, Objects → Log Forwarding, and Policies → Security | Your firewall administrator grants it |
| 4 | Network reachability from the firewall to the collector on the syslog port | Your network team confirms no firewall/ACL blocks TCP to the collector on that port |
| 5 | A Threat Prevention license, if you want Threat logs and not just Traffic logs | Check under Device → Licenses |
| 6 | One maintenance window for the commit | Schedule with your change-management process — PAN-OS commits once in this guide |
Substitute your own values wherever the examples appear.
Wherever a screenshot involves something to click or verify, a red box marks it. Screenshots without a box show a state to compare against.
How it works
Your firewall sends its logs via syslog (TCP) to the Linux machine you
provisioned in Step 1. That machine runs the Elastic Agent the Step-2 command
installed, with the Palo Alto Networks (panw) integration; the agent
forwards parsed events on to the JawaSec platform over an outbound HTTPS
connection. Nothing on your network accepts inbound connections from the
internet.
What you are about to configure
Getting logs out of a PAN-OS firewall takes four legs, in this order:
- Server Profile — where logs go: the syslog server's address, port, transport, and format.
- Log Forwarding Profile — what gets sent: which log types (Traffic, Threat) forward to that server.
- Attach the Log Forwarding profile to every Security rule whose traffic you want to see, including your Deny rules.
- Commit — nothing above reaches the firewall until this runs.
Before you start
Confirm the syslog port is free on the collector machine. The collector
listens on that port itself once it is activated (see the note at the end of
this guide about when that listener actually starts). If another service
already holds the port — a pre-existing rsyslog or syslog-ng listener is
the usual culprit — the collector cannot bind to it later and no data will
ever arrive.
Run this on the collector machine:
sudo ss -lntup | grep 9001
Output from anything other than the collector process means a conflict. Stop or reconfigure that service before continuing.
Also confirm your firewall's time zone, at Device → Setup → Management → General Settings → Time Zone, before you configure anything — see the note
below about why this matters.
You also need:
- A PAN-OS account that can edit Server Profiles, Log Forwarding profiles, and Security policy.
- Network reachability from the firewall to the collector on the syslog port (the connection itself will not succeed until Step 4 is complete — see below).
- A Threat Prevention license if you want Threat logs. Without it you still get Traffic logs; no amount of policy tuning substitutes for the license.
Part 1 — Create the Syslog Server Profile
1.1 Log in

1.2 Confirm you are on the right device

1.3 Open Server Profiles → Syslog
Select the Device tab in the top navigation bar. In the left-hand tree, expand Server Profiles and click Syslog.

With no profile yet, the list is empty. Click Add at the bottom.

1.4 Name the profile and add a server row
In the Syslog Server Profile dialog, type a profile Name — something recognizable for this collector. On the Servers tab, click the Add button inside the dialog, not the one on the page behind it. This adds one row to the servers grid.

1.5 Fill the server row
Click each cell to edit it:
| Column | Value | Notes |
|---|---|---|
| Name | e.g. collector |
Free-form label for this destination |
| Syslog Server | <collector-ip> |
IP or FQDN of the host running Elastic Agent |
| Transport | TCP |
Defaults to UDP — you must change it |
| Port | 9001 |
Defaults to 514 — you must change it |
| Format | IETF |
Defaults to BSD — you must change it |
| Facility | LOG_USER |
Default is fine |

Click OK.
Why IETF and not BSD. The collector's TCP input expects PAN-OS to send syslog messages using the IETF (RFC 5424) format, with RFC 6587 framing (octet counting) — the collector's TCP input enables this by default. BSD format over TCP will parse badly or not at all.
1.6 Confirm the profile


This is what a correct profile looks like — server address, TCP, your syslog port, IETF, LOG_USER:

Part 2 — Create the Log Forwarding Profile
Where: Objects → Log Forwarding
The server profile only says where to send. This step says what to send.
- Select the Objects tab, then Log Forwarding in the left tree.
- Click Add.
- Name the profile.
- Add two match-list entries, one per log type:
| Entry name | Log Type | Filter | Syslog destination |
|---|---|---|---|
traffic-all |
traffic |
All Logs |
your syslog server profile |
threat-all |
threat |
All Logs |
your syslog server profile |
For each: click Add in the match list, give it a name, pick the Log Type, leave the Filter as All Logs, then under Forward Method → Syslog click Add and select your server profile.
- Click OK.


Add only the log types you actually intend to consume. Every extra type is volume you pay to ship, store, and eventually filter back out.
trafficalone is usually the highest-volume class on a real perimeter.
Part 3 — Attach the profile to your Security rules
Where: Policies → Security
This is the step most often missed. A log forwarding profile that is not referenced by any rule forwards nothing, and the firewall reports no error whatsoever.
- Select the Policies tab, then Security.
- Click the name of a rule that carries the traffic you want to observe.

- Go to the Actions tab.
- Under Log Setting:
- Tick Log at Session End.
- Leave Log at Session Start unticked.
- Set Log Forwarding to your profile.
- Click OK.
- Repeat for every rule that covers traffic you care about — including any explicit Deny rules, which on a real perimeter are usually the single largest source of events.

Why not Log at Session Start. Enabling both emits two records per session — one at start and one at end — roughly doubling volume while adding no verdict. The session-end record is the one that carries bytes, duration, application, and action. Turn on session-start only when you are specifically debugging session establishment.
Part 4 — Commit
- Click Commit at the top right, then Commit again in the dialog.
- Wait for the job to reach 100% and report Configuration committed successfully.
Nothing you configured above is live until this finishes. A commit on a VM-Series takes roughly one to two minutes.
A note on time zone
PAN-OS stamps syslog messages using the firewall's configured local time
zone, found at Device → Setup → Management → General Settings → Time Zone.
If the firewall runs in a local zone while your collector and every other log source run in UTC, PAN-OS events land on the timeline offset by that many hours. Nothing errors. Dashboards populate. Correlation against other sources silently produces nothing, and every time-window query you write is wrong.
Two valid resolutions — pick one deliberately:
| Option | When to choose it |
|---|---|
| Set the firewall to UTC | Greenfield deployments, anywhere you control the device. Simplest and removes the class of bug entirely. |
| Declare the offset to JawaSec | The device's zone is not yours to change — tell your onboarding contact the firewall's time zone so it can be declared to the ingest pipeline. |
Whichever applies, tell your onboarding contact which one — it needs to be on record for anyone debugging a time-window query later.
Important — the collector is not listening yet
Committing finishes the firewall's half of the job, but that alone does not make the collector reachable. The collector's syslog listener on port 9001 does not open when your machine enrolls in Step 2 — it opens when Step 4 (the intake form) is submitted and JawaSec's activation completes. Enrollment only registers the machine with our Fleet management; the syslog input itself is a separate configuration that is attached to your machine automatically once both your enrollment and your Step-4 submission are in.
Practically: if you test connectivity from the firewall to the collector's port before you finish Step 4, the connection will fail — by design, not because something is wrong on your side. Complete Steps 1-4 in order, including saving the intake form, before drawing any conclusion from a failed connectivity test.
You also never need to re-run the Step-2 install command after this guide. The syslog listener is delivered to your already-enrolled machine as a policy update pushed by Fleet — the same mechanism Step 2's agent already checks in through — not by reinstalling anything.
Verification
On the collector machine, confirm the firewall is connecting (only meaningful after Step 4 has completed and activation has run — see the box above):
ss -tn state established '( sport = :9001 )'
Established connections from the firewall's IP mean the transport works.
If you want to prove the firewall is trying even before the collector is ready, watch the packets directly:
sudo tcpdump -ni any "port 9001 and src host <firewall-ip> and greater 100" -A -s0 -c 6
A well-formed message from a correctly configured firewall carries an RFC
6587 octet-count prefix followed by the RFC 5424 header and the log body —
for example 812 <14>1 2026-08-28T13:42:35-07:00 .... If you see that on the
wire, the firewall is doing its job and any remaining problem is downstream.
If you don't, the problem is profile or policy configuration (Parts 1-3).
In the JawaSec portal, the Step-3 card flips to done once you tick the confirmation checkbox and the Step-4 intake form is submitted; the source itself goes Active once JawaSec's automatic activation detects the first real events arriving from your collector — this does not happen instantly at Save.
If nothing arrives after Step 4
Each of these produces the same symptom — no data — so check them all before concluding the firewall is at fault.
| # | Cause | How to confirm | Fix |
|---|---|---|---|
| 1 | Something else owns the collector's port | ss -lntup | grep 9001 shows a process that is not the collector agent |
Stop it / remove its listener |
| 2 | Log forwarding profile not attached to any rule | Rule's Actions tab shows Log Forwarding: None | Attach it (Part 3) — repeat per rule |
| 3 | Changes never committed | Commit button still shows pending changes | Commit (Part 4) |
| 4 | Format left at BSD over TCP | Server profile shows Format: BSD | Change to IETF (Part 1) |
| 5 | Transport left at UDP / port left at 514 | Server profile shows UDP or 514 | Change to TCP and the collector's port |
| 6 | No Threat Prevention license | Device → Licenses has no Threat Prevention entry |
Traffic logs still work; THREAT requires the license |
| 7 | Traffic never reaches this firewall | Confirm the traffic you generated actually routes through this device | Route the test host through the intended firewall |
| 8 | Firewall cannot reach the collector | From the firewall, test the syslog port | Open routing / security groups on your side; confirm Step 4 completed on ours |
| 9 | Step 4 not actually submitted | Go back to /client/settings/data-sources and confirm the card shows the intake step as done |
Submit the intake form |
| 10 | Time zone mismatch | Data is present but not where you're looking | See "A note on time zone" — search a wider window before concluding it's missing |
| 11 | TCP framing mismatch (internal, collector-side) | Packets are visibly arriving (tcpdump shows the firewall sending) but zero documents are indexed |
This is not a firewall-side setting — it means the collector's input is not expecting RFC 6587 octet-counting framing. Report it to your JawaSec onboarding contact; nothing on the firewall needs to change |
Notes
- The Syslog Server field in the Server Profile dialog is a plain text field — enter your collector's address or FQDN directly.
- Multiple syslog servers are supported within one profile. To keep a raw local copy of the logs alongside the collector, add a second syslog server entry on a different port of the same host and have a local syslog daemon write that port to a file.
- One collector machine can receive both a Palo Alto and a Cisco FTD
integration at once, one per port (
9001Palo Alto,9002Cisco by convention) — each keeps its own state in the portal. - A "Welcome to PAN-OS!" modal can appear on first login and blocks every click behind it, including the top navigation. Close it first.
- The Add button appears twice when a dialog is open — once inside the dialog, once on the page behind it. Clicking the wrong one silently does nothing useful.
Questions
Direct any questions about this guide or the firewall change to your JawaSec onboarding contact.