T Techclick ← All lessons
Fortinet · FortiAnalyzer · Interactive lesson

FortiAnalyzer store then hunt

Ticket: branch FortiGate has Forward Traffic, the weekly PDF is empty, FortiView in root is blank. FortiAnalyzer is not a bigger FortiGate log pane. It stores OFTP logs into an ADOM, indexes Analytics, then you hunt in Log View. FortiView is live summary. Reports are scheduled output. They are not interchangeable. Lab: FGT 10.20.20.1, FAZ 10.20.20.50, ADOM LAB.

16 min read · L2 primary · Quiz at end

After this page you can

Lessons · FortiGate series · FortiAnalyzer store then hunt

This page vs debug flow and VDOMs

This lesson is how FortiAnalyzer stores FortiGate logs and how you hunt them: ADOM, OFTP ingest, Analytics vs Archive, then FortiView / Log View / Reports. Packet drop RCA is debug flow. Tenant split on the firewall is VDOM — ADOM is the FAZ isolation, not a VDOM.

debug flow RCA · VDOMs · Command center

Hero · firewall sends, store holds, hunt reads
Firewall appliance sending a log stream into a store appliance, then a hunt search pane
Mood, not a wiring diagram. Exact path is in the SVG: FGT 10.20.20.1 OFTP to FAZ 10.20.20.50, ADOM LAB, Archive then Analytics, then Log View. Local FortiGate FortiView is a different database.
Quick answer

Enable ADOMs, put the FortiGate in one ADOM (Normal mode). On the FortiGate: config log fortianalyzer setting to 10.20.20.50, policy logtraffic all, then authorize the device on FAZ Device Manager. Logs land in Archive, then are indexed into Analytics (SQL). FortiView is ADOM-scoped summary. Log View / Threat Hunting is the SOC hunt. Reports need Analytics covering the report window. Proof: execute log fortianalyzer test-connectivity shows Registration registered, ADOM name, Log Tx & Rx — plus a Log View row. Lab: FGT 10.20.20.1, FAZ 10.20.20.50, ADOM LAB.

Why local logs are not a hunt

The day-one ticket is always the same: “FortiGate has the log, so FortiAnalyzer is broken.” Wrong. FortiGate disk / memory logs are a local buffer. FAZ only sees what OFTP delivered, what you authorized into the ADOM you are looking at, and what still sits in Analytics. Three silent-empty states look identical from the SOC chair:

FortiGate FortiView is not FortiAnalyzer FortiView

Historical FortiView on the FortiGate needs local disk logging and is a 7-day-class local view. FAZ FortiView is the ADOM SQL. Do not close a SOC ticket from the firewall GUI.

ADOM, ingest, index — three objects

An ADOM (administrative domain) is the FAZ tenant. When ADOMs are enabled, Device Manager, FortiView, Log View, Incidents & Events and Reports are per ADOM. You pick the ADOM at login. Super_User enables the feature; enabling logs you out. CLI: config system global set adom-status enable. Default is off.

Normal ADOM mode: one FortiGate in one ADOM. Advanced mode: VDOMs from the same FortiGate can sit in different ADOMs — more moving parts, only when you actually split tenants that way. You cannot put the same device in two ADOMs in Normal mode. FortiGate and FortiCarrier never share an ADOM. FortiMail / FortiWeb logging requires ADOMs on.

Path · ADOM, then forward, then index, then hunt
Four glass panels labeled ADOM, Forward, Index, Hunt
Feel of the order. Exact sequence — OFTP into Archive, then SQL Analytics, then Log View — is in the SVG below. Do not read the Hunt panel as “open Reports.”

ADOM

System Settings › ADOMs. Lab: LAB, type FortiGate. Quota and data policy are per ADOM. Hunt the ADOM the device is in.

Ingest

FortiGate config log fortianalyzer setting + authorize on Device Manager. OFTP TCP 514. Reliable: set reliable enable (seq_no confirm queue).

Archive

Compressed / offline on disk. Rebuild SQL from it. Not immediately in FortiView, Log View, Incidents, or Reports. Log Browse still sees files.

Analytics

Indexed SQL. The only store FortiView, Log View (except Log Browse), handlers and Reports use. Data policy days are not Archive days.

Say this out loud

The FortiGate sends. FAZ stores into an ADOM. Analytics indexes. Then I hunt Log View. FortiView summarises. Reports print. No Analytics, no hunt.

How a log becomes a hunt row

Policy must log. OFTP must deliver. Device must be authorized into this ADOM. Archive write, then SQL insert. Insert lag is a real ticket: Log Receive Monitor climbs, Insert Rate vs Receive Rate diverges, FortiView stays empty. Collector mode receives and archives; it does not FortiView, Report, or run Incidents & Events.

Flow 1 · lab packet 10.20.20.10 → 203.0.113.80:443 becomes a FAZ row
1 Policy log logtraffic all 2 OFTP TCP 514 · 10.20.20.50 3 Authorize ADOM LAB · not root 4 Archive compressed / offline 5 Analytics SQL index · online 6 Hunt Log View · srcip=10.20.20.10 dport=443 FortiView summarises the same Analytics. Reports print them. Handlers match them. Proof: test-connectivity Log Tx & Rx · ADOM LAB · diagnose fortilogd lograte-device Miss at 3: unauthorized / wrong ADOM. Miss at 5: Archive only — FortiView empty. Do not rebuild a report template. Fix ingest, ADOM, then SQL insert. Collector mode stops after Archive. Analyzer mode is the hunt box. Source: FortiAnalyzer Admin Guide — Analytics and Archive logs; Enabling ADOMs; FortiOS log settings.

Read left → right, then the gold bar. Archive is the keep. Analytics is the hunt. Wrong ADOM is a silent empty Log View.

ObjectLab valueIf missing
FAZ IP10.20.20.50 reachable from FGTtest-connectivity Connect Error. OFTP never starts.
ADOMLAB, type FortiGate, Normal modeHunt in root, device in LAB — empty FortiView. Quota fights the wrong disk.
AuthorizeDevice Manager › unauthorized → ADOM LABFGT thinks it sends. FAZ will not keep the device’s logs in that ADOM.
FGT settingstatus enable · server 10.20.20.50 · upload-option realtime · reliable enableUDP-syslog mental model. Reliable off + WAN blip = lost logs.
Policy logLAN-to-WAN logtraffic allSession exists, FAZ traffic Log View empty. Event logs may still arrive.
Analytics policy30 days indexed / 365 Archive (example)90-day Report empty while Archive still has the files. Fetch / rebuild SQL.
Two different “log forwarding” knobs

FortiGate → FAZ is config log fortianalyzer setting. FAZ → other FAZ / syslog / CEF is System Settings › Advanced › Log Forwarding (config system log-forward). The SOC hunt ticket is almost always the first. Do not open FAZ log-forward because a branch is missing in Log View.

FortiView vs Reports vs Log View

Pick the pane that matches the question. Using Reports for a live brute-force, or FortiView for a PCI PDF, is how you waste an hour on a healthy ingest path.

Flow 2 · four surfaces, one Analytics store
FortiView dashboards / monitors top talkers, threats, IOC drill to related logs per ADOM · Analyzer only Log View rows + Threat Hunting filter srcip / user / logid SOC hunt lives here needs Analytics Reports templates + datasets schedule / output profile PDF / HTML posture not a live hunt Handlers Incidents & Events match log type + threshold raise event / incident logs must already exist All four read Analytics in this ADOM. Archive-only = none of them work (Log Browse excepted). Collector: FortiView / Reports / Incidents = No. Analyzer is the SOC box. Log-fetch Archive back into Analytics for old windows. How ADOMs affect FortiView and Reports: you only see devices in the ADOM you logged into. Source: FAZ Admin Guide — FortiView; Log View / Threat Hunting; Reports; Analyzer vs Collector; Analytics and Archive.

Four columns, four tickets. A missing PDF is not a missing OFTP session unless Analytics is empty too.

NeedUseSkip
Who hit 203.0.113.80 in the last hour?Log View › Traffic, filter dstip / dport. Threat Hunting if you are pivoting indicators.Weekly 360 Security Review PDF.
Top talkers / threat map for the ADOMFortiView dashboards / Monitors. Drill to related logs.Building a custom dataset first.
PCI / weekly posture for managementReports › template + schedule + output profile. Analytics must cover the window.Sitting in FortiView and screenshotting.
Alert when VPN brute-force repeatsIncidents & Events › Event Handlers (log type, filter, group, threshold). Logs in this ADOM first.A report schedule as an “alert.”
90-day report, Analytics is 30 daysLog fetching (Fetcher Management) or import Archive, then generate.Re-running the same empty report.

Runbook Side A / B / C

Side A is ADOM and authorize. Side B is FortiGate send. Side C is hunt and proof. Do not start at Reports.

Side A — ADOM then authorize

  1. Enable ADOMs

    Super_User: Dashboards › Status › System Information › Administrative Domain ON. You are logged out. CLI config system global set adom-status enable. Backup first — non-global config moves to root. Source: FortiAnalyzer Administration Guide — Enabling and disabling the ADOM feature.

  2. Create ADOM LAB

    System Settings › ADOMs › Create New. Name LAB, type FortiGate. Set Analytics / Archive days and disk quota here — insufficient quota trims Analytics before the scheduled report finishes. Normal mode unless you are splitting VDOMs.

https://10.20.20.50/ · Device Manager › Unauthorized devices › Authorize
Training mock · not live

Device Manager › Unauthorized › Authorize

FGT-LAB

FGT-LAB · FGVM01TMXXXXXXXX
LAB
FortiGate
Normal · whole device

Source: FortiAnalyzer Administration Guide — Adding devices / Authorizing devices; Creating ADOMs (one device, one ADOM in Normal mode). OK here is not ingest. The FortiGate still has to send.

CLI — Side A (FAZ)
config system global
    set adom-status enable
    set adom-mode normal
end
# GUI: System Settings › ADOMs › Create New › LAB, type FortiGate
# Then Device Manager › authorize FGT-LAB into ADOM LAB

Side B — FortiGate send

https://10.20.20.1/ · Log & Report › Log Settings
Training mock · not live

Log & Report › Log Settings

Send logs to FortiAnalyzer

10.20.20.50
Enable
Real Time
Enable · OFTP seq_no

Source: FortiOS Administration Guide — Log settings and targets. 7.4+ also shows the same connector under Security Fabric › Fabric Connectors › Logging & Analytics. Upload-option: realtime / 1-minute / 5-minute / store-and-upload. Reliable is a separate knob.

  1. Point the FortiGate at FAZ

    set server 10.20.20.50, upload-option realtime, reliable enable. Optional: pin set serial to the FAZ serial. Filter: keep forward-traffic enable for this lab.

  2. Log on the policy that you will hunt

    LAN-to-WAN: set logtraffic all. Security-event-only hides the HTTPS row you are about to search. Generate traffic from 10.20.20.10 to 203.0.113.80:443.

CLI — Side B (FortiGate)
config log fortianalyzer setting
    set status enable
    set server "10.20.20.50"
    set upload-option realtime
    set reliable enable
end
config log fortianalyzer filter
    set severity information
    set forward-traffic enable
end
config firewall policy
    edit 1
        set name "LAN-to-WAN"
        set logtraffic all
    next
end

Side C — hunt then prove

https://10.20.20.50/ · ADOM LAB › Log View › Traffic
Training mock · not live

Log View › Traffic · ADOM LAB

Filter

FGT-LAB
10.20.20.10
203.0.113.80 · 443
Last 1 hour

Source: FortiAnalyzer Administration Guide — Filtering messages; Threat Hunting; How ADOMs affect FortiView. Empty here with FGT local logs present = ingest/ADOM, not a report-template bug. Handlers: Incidents & Events › Event Handlers, same ADOM.

  1. Connectivity from the FortiGate

    execute log fortianalyzer test-connectivity. Want: FortiAnalyzer Adom Name LAB, Registration registered, Connection allow, Log Tx & Rx. Connect Error = IP/route/514. Registered but 0 logs = filter / logtraffic / still unauthorized. Source: FortiOS execute log fortianalyzer test-connectivity; Fortinet Community connectivity tip.

  2. Rate on FAZ, then the row

    diagnose fortilogd lograte-device and Dashboards › Status › Log Receive Monitor / Insert Rate vs Receive Rate. Then Log View row for 10.20.20.10. FortiView › Traffic should move after Analytics insert, not before.

  3. Handler only after the row exists

    If Log View is empty, diagnose test app sqllogd 200 will not save you. Hit count on the handler increases only after matching Analytics logs. Source: Fortinet Community — event handler troubleshooting.

CLI — Side C proof
# FortiGate
execute ping 10.20.20.50
execute log fortianalyzer test-connectivity
# Adom Name: LAB
# Registration: registered
# Connection: allow
# Log: Tx & Rx
get log fortianalyzer setting
diagnose test application fgtlogd 1
# state=connected  reliable=1  server_log_status=Log is allowed.
diagnose test application fgtlogd 4
# faz= count must climb after diagnose log test / real HTTPS

# FortiAnalyzer
diagnose fortilogd lograte
diagnose fortilogd lograte-device
diagnose fortilogd logvol-adom LAB
# GUI: ADOM LAB › Log View › Traffic › srcip 10.20.20.10
Green proof

test-connectivity: registered, ADOM LAB, Log Tx & Rx. FAZ lograte-device shows FGT-LAB. Log View in ADOM LAB has the 10.20.20.10:443 row. That is the close — not a green FortiGate interface and not a scheduled PDF.

One flow after go-live

Host 10.20.20.10 SYN to 203.0.113.80:443. FortiGate policy 1 accepts, logtraffic all. miglogd / fgtlogd OFTP to 10.20.20.50. FAZ oftpd accepts because FGT-LAB is authorized in ADOM LAB. Real-time file in Archive, then sqllogd indexes Analytics. FortiView Traffic widget moves. Log View filter srcip=10.20.20.10 returns the row. A matching event handler can now increment Log chk/hit. A report covering “last 24 hours” can chart it — only while those hours remain inside the Analytics data policy.

Proof · a hunt is a Log View row, not a dashboard tile
Analyst at a monitor verifying log arrival with abstract green checkmarks
Ops feel. The actual evidence is test-connectivity Tx & Rx, fortilogd lograte-device, and the Log View fields (devname, srcip, dstip, dstport, action, policyid). Artwork checkmarks are not FAZ.
When Log View is empty but the firewall “has logs”
# 1) ADOM you are in vs ADOM the device is in
# 2) FortiGate
execute log fortianalyzer test-connectivity
diagnose test application fgtlogd 41
# memory / confirm queue for global-faz — stuck queue = OFTP down
# 3) FAZ widgets: Log Receive Monitor vs Insert Rate vs Receive Rate
# insert rate 0, receive > 0 → SQL insert stuck (sqllogd / quota)
# 4) Log View › Log Browse — files in Archive with no Analytics
# 5) Operation mode: Collector has no FortiView / Reports / Incidents

Traps + proof

SymptomLikely causeProof
FGT Forward Traffic yes, FAZ Log View emptyUnauthorized, wrong ADOM, or OFTP down.Device Manager membership. test-connectivity Registration / Connect Error. Hunt in ADOM LAB, not root.
Registered, Tx & Rx, still no traffic logslogtraffic disable or fortianalyzer filter dropped forward-traffic.get log fortianalyzer filter. Policy show | grep logtraffic. Event logs may still appear.
Archive files, FortiView blankAnalytics not indexed: insert lag, ADOM quota, Collector mode.Insert Rate vs Receive Rate. get system status operation mode. Log Browse vs Log View.
90-day report empty, Archive 365 / Analytics 30Reports read Analytics only.ADOM data policy days. Fetch Archive into Analytics, then generate.
Event handler never firesNo matching logs in this ADOM, handler disabled, threshold not met.Log View first. Then diagnose test app sqllogd 200 conf adom=LAB handler=… Log chk/hit.
WAN blip, gap in FAZ, FGT local completeReliable off; confirm queue never built.get log fortianalyzer setting reliable. fgtlogd 41 queue after a disconnect test.
Two tenants see each other’s logsBoth devices in the same ADOM, or admin assigned extra ADOMs.System Settings › ADOMs membership. Admin ADOM list. Normal mode: one FGT, one ADOM.
Do not hunt in root “to see everything”

That is how MSSP isolation dies. Assign the SOC admin to ADOM LAB only. Super_User is for enable/create, not for daily hunt.

Pilot checklist

Knowledge check

Six judgment items. Submit once. Reasons point back at the section to re-read.

Q1

Branch FortiGate shows Forward Traffic. FAZ Log View in ADOM root is empty. What do you check first?

Correct: b. FortiView / Log View / Reports are per-ADOM. Unauthorized or sitting in LAB while you hunt root is a silent empty. Collector removes FortiView. FAZ log-forward is FAZ→elsewhere. Re-read Why local logs are not a hunt and Side A.
Q2

SOC needs a live brute-force hunt now and a weekly PDF for management. Which split is correct?

Correct: a. Four surfaces, one Analytics store. Reports are scheduled output, not a live hunt. Local FortiGate FortiView is a different database. Re-read FortiView vs Reports vs Log View.
Q3

What is the proof that this FortiGate is actually sending to this FAZ?

Correct: c. test-connectivity is the OFTP handshake plus registration. Host ping is L3 to FAZ, not logging. A template is not ingest. Re-read Side C.
Q4

A 90-day report is empty. ADOM data policy is Analytics 30 days, Archive 365. Why?

Correct: b. Analytic logs are the only logs used for Log View (except Log Browse), Incidents, and Reports. Fetch Archive back into Analytics. OFTP is TCP. Collector does not add Reports. Re-read ADOM, ingest, index and the choose table.
Q5

A custom event handler never raises. Log View for ADOM LAB is empty. First move?

Correct: b. Handlers read Analytics in the ADOM. Empty Log View = no match possible. Tune threshold only after rows exist. Re-read Side C and Traps.
Q6

test-connectivity shows registered and Tx & Rx. Traffic Log View is still empty; event logs appear. Likely cause?

Correct: a. OFTP is working (events arrived). Traffic is a separate filter and a per-policy logtraffic knob. VIP and Reports are unrelated. Re-read Side B and Traps.

Sources

Related: debug flow RCA · debug flow + session · FortiGate command center · VDOMs · Zones, policy, NAT