FortiView from disk
Prerequisites
All FortiGates with an SSD disk.
Restrictions
- Desktop models (for example: under 100D) with SSD only supports five minutes and one hour view.
- Medium models (for example: 200D, 500D) with SSD supports up to 24 hours view.
- Large models (for example: 1500D and above) with SSD supports up to seven days view.
- To enable seven days view:
config log setting
set fortiview-weekly-data enable
end
- To enable seven days view:
Configuration
A firewall policy needs to be in place with traffic logging enabled. For best operation with FortiView, internal interface roles should be clearly defined as LAN; DMZ and internet facing or external interface roles should be defined as WAN.
To enable FortiView from Disk:
- Enable disk logging from the FortiGate GUI.
- Go to Log & Report > Log Settings > Local Log.
- Select the checkbox next to Disk.
- Enable historical FortiView from the FortiGate GUI.
- Go to Log & Report > Log Settings > Local Log.
- Select the checkbox next to Enable Historical FortiView.
- Click Apply.
To include sniffer traffic and local-deny traffic when FortiView from Disk:
This feature is only supported through the CLI.
config report setting
set report-source forward-traffic sniffer-traffic local-deny-traffic
end
Source View
Top Level
Sample entry:
Time |
|
Graph |
|
Bubble Chart |
|
Columns |
|
Drilldown Level
Sample entry:
Graph |
|
Summary Information |
|
Tabs |
|
Troubleshooting
- Use
diagnose debug application httpsd -1
to check which filters were passed through httpsd.
For example:[httpsd 3163 - 1546543360 info] api_store_parameter[227] -- add API parameter 'filter': '{ "source": "10.1.100.30", "application": "TCP\/5228", "srcintfrole": [ "lan", "dmz", "undefined" ] }' (type=object)
- Use
diagnose debug application miglogd 0x70000
to check what the SQL command is that is passed to the underlying SQL database.
For example:fortiview_request_data()-898: total:31 start:1546559580 end:1546563179
_dump_sql()-799: dataset=fv.general.chart, sql:select a.timestamp1,ses_al,ses_bk,r,s,ifnull(sc_l,0),ifnull(sc_m,0),ifnull(sc_h,0),ifnull(sc_c,0) from (select timestamp-(timestamp%60) timestamp1 ,sum(case when passthrough<>'block' then sessioncount else 0 end) ses_al,sum(case when passthrough='block' then sessioncount else 0 end) ses_bk,sum(rcvdbyte) r,sum(sentbyte) s from grp_traffic_all_src where timestamp BETWEEN 1546559580 and 1546563179 and 1=1 AND srcip in ('10.1.100.11') AND srcintfrole in ('lan','dmz','undefined') group by timestamp1 ) a left join (select timestamp-(timestamp%60) timestamp1 ,sum(case when threat_level=1 then crscore else 0 end) sc_l,sum(case when threat_level=2 then crscore else 0 end) sc_m,sum(case when threat_level=3 then crscore else 0 end) sc_h,sum(case when threat_level=4 then crscore else 0 end) sc_c from grp_threat where timestamp BETWEEN 1546559580 and 1546563179 and 1=1 AND srcip in ('10.1.100.11') AND srcintfrole in ('lan','dmz','undefined') group by timestamp1 ) b on a.timestamp1 = b.timestamp1;
takes 40(ms), agggr:0(ms) - Use
execute report flush-cache
andexecute report recreate-db
to clear up any irregularities that may be caused by upgrading or cache issues.