Skip to content
MikroTik RouterOS Docs

Graphing - Built-in Resource and Traffic Monitoring

Enable resource and interface graphing, then view in your browser.

# Enable resource graphing (CPU, memory, disk)
/tool/graphing/resource add allow-address=0.0.0.0/0
# Enable interface graphing (traffic)
/tool/graphing/interface add interface=all allow-address=0.0.0.0/0

View graphs at: http://[Router_IP]/graphs/

What this does: Graphing collects system data over time and displays it as visual graphs accessible via web browser or WinBox. It monitors:

  • Resource graphs: CPU usage, memory usage, disk usage
  • Interface graphs: Traffic throughput per interface (bytes in/out)
  • Queue graphs: Simple queue bandwidth consumption

When to use this:

  • Quick visual overview of router performance trends
  • Identifying traffic patterns over time (daily, weekly, monthly, yearly)
  • Troubleshooting intermittent performance issues
  • Basic bandwidth monitoring without external tools
  • Showing customers their bandwidth usage (queue graphs)

When NOT to use this:

  • Extensive monitoring of hundreds of queues (use SNMP + external tools)
  • Devices with very limited flash storage (causes wear)
  • Need for data export, alerting, or historical archives
  • Multi-device aggregated monitoring

Prerequisites:

  • Web service enabled (/ip/service www on port 80)
  • Network access to router’s web interface
  • For queue graphs: simple queues must exist
MenuPurpose
/tool/graphingGlobal settings (store interval, page refresh)
/tool/graphing/resourceCPU, memory, disk monitoring
/tool/graphing/interfaceInterface traffic monitoring
/tool/graphing/queueSimple queue bandwidth monitoring

Monitor CPU, memory, and disk usage.

/tool/graphing/resource add allow-address=192.168.88.0/24 store-on-disk=yes

Parameters:

  • allow-address=192.168.88.0/24 - Only allow viewing from this network
  • store-on-disk=yes - Persist data across reboots

Verify:

/tool/graphing/resource print

Monitor traffic on all interfaces or specific ones.

All interfaces:

/tool/graphing/interface add interface=all allow-address=192.168.88.0/24

Specific interface only:

/tool/graphing/interface add interface=ether1 allow-address=192.168.88.0/24

Verify:

/tool/graphing/interface print

Monitor simple queue bandwidth usage.

All simple queues:

/tool/graphing/queue add simple-queue=all allow-address=192.168.88.0/24 allow-target=yes

Specific queue:

/tool/graphing/queue add simple-queue=customer1 allow-address=192.168.88.0/24

Verify:

/tool/graphing/queue print

Web Browser:

  1. Open http://[Router_IP]/graphs/ in your browser
  2. Select the graph type (Resource, Interface, Queue)
  3. Click on the specific item to view

Direct URLs:

  • Resource: http://[Router_IP]/graphs/
  • Specific interface: http://[Router_IP]/graphs/iface/ether1
  • Specific queue: http://[Router_IP]/graphs/queue/QueueName

WebFig:

  1. Log into http://[Router_IP]/webfig
  2. Click menu icon (≡) in top-right
  3. Select “graphs”

WinBox:

  1. Navigate to Tools → Graphing
  2. Double-click an entry to view its graph

Enable all graphing with access from any IP:

# Resource monitoring
/tool/graphing/resource add allow-address=0.0.0.0/0
# All interfaces
/tool/graphing/interface add interface=all allow-address=0.0.0.0/0
# All queues (if using simple queues)
/tool/graphing/queue add simple-queue=all allow-address=0.0.0.0/0

Only allow viewing from 10.0.0.0/24:

/tool/graphing/resource add allow-address=10.0.0.0/24
/tool/graphing/interface add interface=all allow-address=10.0.0.0/24
/tool/graphing/queue add simple-queue=all allow-address=10.0.0.0/24

For devices with limited flash, minimize writes:

# Store data once per day instead of every 5 minutes
/tool/graphing set store-every=24hours
# Or disable disk storage entirely (data lost on reboot)
/tool/graphing/resource set [find] store-on-disk=no
/tool/graphing/interface set [find] store-on-disk=no
/tool/graphing/queue set [find] store-on-disk=no

Only graph the internet-facing interface:

/tool/graphing/interface add interface=ether1-wan allow-address=192.168.88.0/24

Let customers see their own bandwidth usage:

# Create queue with customer's IP as target
/queue/simple add name=customer1 target=192.168.88.100 max-limit=10M/10M
# Enable queue graphing with allow-target
/tool/graphing/queue add simple-queue=customer1 allow-address=192.168.88.0/24 allow-target=yes

Customer at 192.168.88.100 can now view their queue graph at http://[Router_IP]/graphs/queue/customer1

Set how often the graphs page refreshes:

# Refresh every 60 seconds
/tool/graphing set page-refresh=60
# Disable auto-refresh
/tool/graphing set page-refresh=never
PropertyTypeDefaultDescription
store-every5min / hour / 24hours5minHow often data is saved to disk
page-refreshinteger / never300Web page auto-refresh interval (seconds)
ValueWrites/DayMax Data Loss on Reboot
5min2885 minutes
hour241 hour
24hours124 hours
PropertyTypeDefaultDescription
interfaceall / nameallInterface(s) to monitor
allow-addressIP/IPv6 prefix0.0.0.0/0IPs allowed to view graphs
store-on-diskyes / noyesPersist data across reboots
disabledyes / nonoDisable this entry
commentstring-Descriptive comment
PropertyTypeDefaultDescription
allow-addressIP/IPv6 prefix0.0.0.0/0IPs allowed to view graphs
store-on-diskyes / noyesPersist data across reboots
disabledyes / nonoDisable this entry
commentstring-Descriptive comment
PropertyTypeDefaultDescription
simple-queueall / nameallQueue(s) to monitor
allow-addressIP/IPv6 prefix0.0.0.0/0IPs allowed to view graphs
allow-targetyes / noyesAllow queue’s target-address to view
store-on-diskyes / noyesPersist data across reboots
disabledyes / nonoDisable this entry
commentstring-Descriptive comment

Graphs display data across multiple time scales:

PeriodData ShownUse Case
DailyLast 24 hours (detailed)Recent activity, troubleshooting
WeeklyLast 7 daysWeekly patterns
MonthlyLast 30 daysMonthly trends
YearlyLast 365 daysLong-term capacity planning
/tool/graphing print

Expected: Shows store-every and page-refresh settings.

/tool/graphing/interface print

Expected: List of monitored interfaces with allow-address ranges.

/tool/graphing/resource print

Expected: Entry showing allow-address for resource monitoring.

/ip/service print where name=www

Expected: www service enabled (port 80).

Open http://[Router_IP]/graphs/ in browser.

Expected: Graph selection page loads, graphs display data.

SymptomCauseSolution
Graphs page shows title but no graphsClient IP not in allow-addressAdd your IP to allow-address or use 0.0.0.0/0
”Connection refused” accessing graphsWeb service disabledEnable: /ip/service enable www
HTTPS works but graphs don’t loadRouterOS 7 HTTPS issueUse HTTP instead of HTTPS for graphs
Graph data empty after rebootstore-on-disk=no or long store-everySet store-on-disk=yes and reduce store-every
Only resource graphs visibleInterface/queue graphing not enabledAdd entries to /tool/graphing/interface and /queue
Queue graphs visible to wrong usersallow-target=yes with wide target-addressSet allow-target=no or restrict queue target
Cannot access graphs through proxyTransparent proxy intercepts requestsAdd router IP to proxy exceptions
Concerned about flash wearFrequent writes with many graphsSet store-every=24hours or store-on-disk=no

Common Mistakes

  • Forgetting to add graphing entries - By default, graphing is disabled; you must add entries to enable it
  • Wrong allow-address - Your client IP must be within the allow-address range to view graphs
  • Queue graphs security - If queue target-address is 0.0.0.0/0, anyone can view it regardless of allow-address
  • Expecting SNMP-level features - Graphing is basic; no alerting, export, or multi-device aggregation
LimitationDescriptionWorkaround
No external storageCannot store on USB/SD cardUse SNMP + external monitoring
No data exportCannot export to CSV/fileUse SNMP for data collection
Simple queues onlyQueue trees not supportedMonitor parent queues or use SNMP
No alertingDisplay only, no thresholdsUse scripts with scheduler for alerts
Fixed time scalesCannot customize periodsAccept daily/weekly/monthly/yearly
Single router onlyNo multi-device aggregationUse The Dude or other NMS
CommandDescription
/tool/graphing printShow global graphing settings
/tool/graphing setConfigure store-every and page-refresh
/tool/graphing/resource addEnable resource monitoring
/tool/graphing/resource printList resource graphing entries
/tool/graphing/interface addEnable interface monitoring
/tool/graphing/interface printList interface graphing entries
/tool/graphing/queue addEnable queue monitoring
/tool/graphing/queue printList queue graphing entries

Graphing provides built-in visual monitoring for RouterOS:

  1. Enable monitoring with /tool/graphing/resource, /interface, /queue
  2. Configure access with allow-address parameter
  3. View graphs at http://[Router_IP]/graphs/
  4. Manage flash wear with store-every and store-on-disk settings

Key points:

  • Graphing is disabled by default - add entries to enable
  • Restrict access with allow-address for security
  • Use store-every=24hours or store-on-disk=no on flash-limited devices
  • For extensive monitoring, use SNMP with external tools instead
  • Queue graphing only works with simple queues, not queue trees