How to get Fortigate interface statistics such as errors/discards

Recently I have needed to get the interface statistics like errors and discards for a Fortigate 5.2. I was using the normal commands that I knew, and some from google such as “diag hardware deviceinfo nic wan1” But had no luck with these commands getting errors/discard count. Maybe this is something they removed.

Update- this has been changed to :

“diag hardware nic INT”    for example, at the bottom of the page is the output from running “diag hardware nic port40”— this was the results from a 1500D that is running 10 gig.

I started doing some research and found that there was a command that would drop you down to a very limited Linux shell. There are a few commands that are support such as “ifconfig”. This blew me away. I have been wondering if there was a command like this for a long time.

Log in through CLI, and run ” fnsysctl <command>” for example “fnsysctl ls”.

So to get the interface stats, I would just run: “fnsysctl ifconfig port16” or whatever port you want to look at.


And there we go. I have search for some other ways to get this, and have not found anything. If someone finds something better please pass it along.


FGT# get hardware nic port40
Description :FortiASIC NP6 Adapter
Driver Name :FortiASIC Unified NPU Driver
Name :np6_1
PCI Slot :0000:0d:00.0
irq :40
Board :FGT1500D
SN :FG1K5D3I15800578
Major ID :3
Minor ID :0
lif id :19
lif oid :171
netdev oid :171
netdev flags :1303
Current_HWaddr 00:09:0f:09:00:24
Permanent_HWaddr 08:5b:0e:e3:45:1f
phy name :port40
bank_id :3
phy_addr :0x1f
lane :3
flags :804006
sw_port :8
sw_np_port :12
vid_phy[6] :[0x7f][0x29][0x00][0x00][0x00][0x00]
vid_fwd[6] :[0x7e][0x00][0x00][0x00][0x00][0x00]
oid_fwd[6] :[0xd9][0x00][0x00][0x00][0x00][0x00]
========== Link Status ==========
Admin :up
netdev status :up
link_setting :1
link_speed :10000
link_duplex :1
Speed :10000
Duplex :Full
link_status :Up
rx_link_status :0
int_phy_link :0
local_fault :0
local_warning :0
remote_fault :0
============ Counters ===========
rx_error :0
rx_crc_error :0
rx_carrier :0
rx_oversize :0
rx_undersize :0
tx_collision :0
Rx Pkts :109497620
Rx Bytes :150634406914
Tx Pkts :74293345
Tx Bytes :42164760114
Host Rx Pkts :30734166
Host Rx Bytes :38611688664
Host Rx dropped :0
Host Tx Pkts :41309687
Host Tx Bytes :20219939267
Host Tx dropped :46
sw_rx_pkts :109497628
sw_rx_bytes :150634408123
sw_tx_pkts :74293361
sw_tx_bytes :42164761592
sw_rx_mc_pkts :301
sw_rx_bc_pkts :970
sw_in_drop_pkts :0
sw_np_rx_pkts :92470644
sw_np_rx_bytes :80482907648
sw_np_tx_pkts :143654631
sw_np_tx_bytes :183360431151



4 responses to “How to get Fortigate interface statistics such as errors/discards

  1. vigyu October 10, 2014 at 8:06 am


    Thanks for this useful info.
    I tried it on a FortiOS 4 MR3. It works on this version too.

  2. CyberNorris November 22, 2015 at 4:17 pm

    Thanks. Just needed to get error counts to prove a P2P circuit wasn’t passing traffic. This works in 5.2.4 and 5.4 RC1

  3. Freen December 4, 2015 at 1:23 am

    diagnose netlink interface list {interface}, then look for (errors) txe/rxe, (discards) txd/rxd, etc.

  4. JeroGT September 22, 2016 at 1:27 pm

    The command works in this version too!
    Version: FortiWiFi-60D v5.0,build8231,150123 (GA)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: