LAN Network

Product uses SNMP v1,2c,3 read-only access (port 161 UDP) to get data from LAN switches.
Generally majority of network switch devices should work.

Switch configuration

  • Enable SNMP communication from XorMon server to all LAN switches on port 161, UDP
    Connections are always initiated from XorMon server side

  • SNMP v3 setup:
    Perl SNMP v3 compatibility Auth & Priv support matrix
    snmp-server contact "<contact>" location "<location>"
    snmpv3 enable
    snmpv3 only
    snmpv3 user xormon auth sha <AuthPass> priv aes <PrivPass>
    snmpv3 group managerpriv user "xormon" sec-model ver3        
    
  • To monitor VLAN must be enabled on the switch this:
    $ interface vlan { vlan-id | vlan-range}
    

Add a switch into XorMon

    Settings icon ➡ Devices ➡ Network ➡ LAN ➡ New ➡ Vendor:device : Cisco incompatible
    Cisco LAN monitoring non Cisco

    If you switch has a management IP and an inband IP, then use inband IP in XorMon configuration.

Troubleshooting

    This must work from cmd line, it must provide name of the switch (place your IP and community string)
    snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1.5
    
XorMon uses SNMP v1,2c,3 read-only access (port 161 UDP) to get data from LAN switches.

Supported models

  • Cisco ASA 5500 Series
  • Cisco ASA 5500-X Series
  • Cisco Firepower 1000 Series (FPR1010, FPR1120, FPR1140, FPR1150, ...)
  • Cisco Firepower 2100 Series
  • Cisco Firepower 4100 Series
  • Cisco Firepower 9300 Series
  • Cisco Secure Firewall appliances
  • Firepower Threat Defense (FTD) deployments

Switch configuration


Add a firewall into XorMon

    Settings icon ➡ Devices ➡ Network ➡ LAN ➡ New ➡ Vendor:device : Cisco Secure Firewall
    Cisco firewall monitoring

    If your firewall has a management IP and an inband IP, then use inband IP in XorMon configuration.

Troubleshooting

    This must work from cmd line, it must provide name of the switch (place your IP and community string)
    snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1.5
    

XorMon monitors FortiGate firewalls through the FortiOS REST API v2 (/api/v2/monitor/* and /api/v2/cmdb/*). No SNMP is required. Managed FortiSwitch and FortiAP devices are discovered through the FortiGate controller API.

Official Fortinet documentation (public):

Detailed API reference lives on Fortinet Developer Network (FNDN) and requires a Fortinet account. The steps below are taken from the public Administration Guide.

Supported FortiOS versions

  • FortiOS 7.0 and later — supported target (XorMon UI: FortiOS REST API v2 / 7.0+).
  • FortiOS 6.x is not supported.
  • FortiADC is a different product — not covered here.

Authentication methods

XorMon supports both options in the device configuration dialog:

Method XorMon UI FortiOS mechanism Recommendation
API Token API Token REST API Admin user; header Authorization: Bearer <token>. Fortinet recommends token authentication for automated API access (Using APIs). Recommended
Username / Password Username / Password (session) Standard administrator account; session login via /logincheck with session cookie reused for API requests. Each login consumes a session slot until logout or timeout. Fallback only

Read-only only. Fortinet recommends least privilege: avoid super_admin for monitoring. Use a custom profile with Read permissions, or the built-in super_admin_readonly profile (REST API administrator). XorMon must not use Read-Write or admin tokens for routine polling.


FortiGate connectivity

  • Allow HTTPS from the XorMon host to the FortiGate management interface (default port 443).
  • Fortinet enforces HTTPS for API token use — HTTP cannot be used (Using APIs).
  • Configure Trusted Hosts on the REST API admin — multiple hosts/subnets supported; 0.0.0.0/0 is not allowed.
  • Self-signed certificate: trust the FortiGate CA on the collector or use curl --insecure when verifying the token.

FortiGate configuration

Only a super_admin can create REST API administrators (REST API administrator).

1. Administrator profile (read-only)

GUI (from Administrator profiles):

  1. Log in as super_admin.
  2. Go to System → Admin Profiles → Create New.
  3. Name: e.g. xormon_ro (remember the name for Step 2).
  4. For each permission category required by monitoring, set access to Read (not Read-Write):
    • System (sysgrp)
    • Network (netgrp)
    • Firewall (fwgrp)
    • VPN (vpngrp)
    • WiFi & Switch Controller (wifi) — required for managed FortiSwitch/FortiAP
    • Log & Report (loggrp)
    • Security Fabric (secfabgrp) — if Security Fabric metrics are used
  5. Click OK.

Alternative: assign built-in profile super_admin_readonly instead of a custom profile (Fortinet documented option for generic read-only API access).

CLI (config system accprofile):

config system accprofile
    edit "xormon_ro"
        set secfabgrp read
        set ftviewgrp read
        set authgrp read
        set sysgrp read
        set netgrp read
        set loggrp read
        set fwgrp read
        set vpngrp read
        set utmgrp read
        set wanoptgrp read
        set wifi read
    next
end

2A. REST API Admin + API token (recommended)

GUI (from REST API administrator):

  1. Go to System → Administrators.
  2. Select Create New → REST API Admin.
  3. Username — e.g. xormon_api. Do not use characters < > ( ) # " ' in the username (XSS risk per Fortinet).
  4. Administrator Profile — select xormon_ro from Step 1 (minimum permissions required).
  5. Trusted Hosts — add XorMon collector IP/subnet (e.g. 10.0.0.100/32). IPv6 supported.
  6. PKI Group — leave disabled unless client-certificate auth is required.
  7. CORS Allow Origin — leave disabled for monitoring-only use.
  8. Click OK.
  9. Copy the API token immediately. Fortinet: “An API token is generated. Make note of the token, as it is only shown once.” It cannot be retrieved later — only regenerated (which invalidates the previous token).

CLI (config system api-user):

config system api-user
    edit "xormon_api"
        set accprofile "xormon_ro"
        set vdom "root"
        config trusthost
            edit 1
                set ipv4-trusthost 10.0.0.100/32
            next
        end
    next
end

execute api-user generate-key xormon_api

3. Verify token (Bearer header)

Fortinet recommended authentication (Using APIs):

curl --insecure \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  https://FORTIGATE_IP/api/v2/monitor/system/status

Expected: JSON with "status": "success".

Do not pass the token in the URL (?access_token=). Fortinet strongly recommends the request header. XorMon uses Bearer header only. URL query tokens require config system global → set rest-api-key-url-query enable and are discouraged.


2B. Standard administrator (username / password, session fallback)

Use only when REST API Admin cannot be created:

  1. Go to System → Administrators → Create New → Administrator.
  2. Assign read-only profile xormon_ro or super_admin_readonly.
  3. Set trusted hosts if available.

Session auth consumes FortiGate login slots. Prefer API token where possible.


XorMon configuration

Add the FortiGate from the UI:

  1. Configuration → Device → Network → LAN → New — select vendor/device FortiGate.
  2. Device alias — display name.
  3. Host name or IP — management FQDN or IP.
  4. Port — FortiGate HTTPS port (default 443; use custom port if management HTTPS listens elsewhere).
  5. Authentication method — API Token (recommended) or Username / Password (session).
  6. Paste API token or enter session credentials.
  7. Click Save, then run Test — must show OK.
XorMon Edit Fortinet FortiGate dialog — host, port, API Token or Username/Password
XorMon device dialog: FortiOS REST API v2 / 7.0+, API Token or Username/Password (session).

Verify connection

  1. Run Test on the configured device — result must be OK.
  2. Wait for the next collection cycle, then reload the UI.
  3. FortiGate metrics should appear: CPU, memory, interfaces, VPN, HA, etc.

Managed FortiSwitch and FortiAP

  • Monitored through the FortiGate — no separate switch/AP credentials.
  • Read-only profile must include WiFi → Read (switch-controller + wifi monitor APIs).
  • API paths: /api/v2/monitor/switch-controller/*, /api/v2/monitor/wifi/*.

HA cluster

  • Point XorMon at the cluster management IP or VIP reachable from the collector.
  • One XorMon device entry per logical cluster.

Troubleshooting

SymptomLikely causeAction
HTTP 401 Invalid/expired token; wrong credentials Regenerate token; verify profile assignment
HTTP 403 on some endpoints Missing Read on accprofile group Add Read permissions on the relevant accprofile groups
Connection timeout Firewall, trusted hosts, wrong port Open HTTPS; add collector IP to trusted hosts
SSL error Self-signed cert Trust CA on the collector or use curl --insecure for verification
No switches/APs Missing wifi read; devices not FortiLink-managed Check accprofile; verify FortiLink on FortiGate
Session limit (password auth) Too many concurrent logins Switch to API token

References

Product uses SNMP v1,2c,3 read-only access (port 161 UDP) to get data from LAN switches.
Generally all network devices having SNMP MIBs compatible with Cisco should work.

It uses LLDP and CDP protocols for LAN Topology feature.

Switch configuration

  • Enable SNMP communication from XorMon server to all LAN switches on port 161, UDP
    Connections are always initiated from XorMon server side

  • SNMP v3 setup:
    Perl SNMP v3 compatibility Auth & Priv support matrix

    • Cisco: follow XorMon setup example or the Cisco official one

    • HPE Aruba:
      • AuthPriv and AuthPass passwords to be a minimum of 8 characters.
      • User on the switch itself needs to be placed in a specific SNMPv3 group (see config below)
      • SNMPv3 server on the switch might respond on the first IP address configured only on the switch.
        (unsure whether this is a limitation, bug, or due to the actual management interface not being configured, use that IP or modify your DNS to point to it)
      snmp-server contact "<contact>" location "<location>"
      snmpv3 enable
      snmpv3 only
      snmpv3 user xormon auth sha <AuthPass> priv aes <PrivPass>
      snmpv3 group managerpriv user "xormon" sec-model ver3        
      
  • To monitor VLAN must be enabled on the switch this:
    $ interface vlan { vlan-id | vlan-range}
    
  • Enable LLDP and CDP protocols for LAN Topology feature.


Add a switch into XorMon

    Add switches into configuration:
    Settings icon ➡ Devices ➡ Network ➡ LAN ➡ New ➡ Vendor:device : Cisco
    Cisco LAN monitoring

    If you switch has a management IP and an inband IP, then use inband IP in XorMon configuration.

Troubleshooting

    This must work from cmd line, it must provide name of the switch (place your IP and community string)
    snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.1.5