Mikrotik

Mikrotik

MikroTik is a Latvian network equipment manufacturer. The company develops and sells wired and wireless network routers, network switches, access points, as well as operating systems and auxiliary software.

Available solutions




Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/net/mikrotik_snmp


Mikrotik SNMP

Overview

For Zabbix version: 5.2 and higher

Setup

Refer to the vendor documentation.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$CPU.UTIL.CRIT}

-

90
{$IFNAME.LTEMODEM.MATCHES}

This macro is used in LTE modem discovery. It can be overridden on the host.

^lte
{$IFNAME.WIFI.MATCHES}

This macro is used in CAPsMAN AP channel discovery. It can be overridden on the host level.

WIFI
{$LTEMODEM.RSRP.MIN.WARN}

The LTE modem RSRP minimum value for warning trigger expression.

-100
{$LTEMODEM.RSRQ.MIN.WARN}

The LTE modem RSRQ minimum value for warning trigger expression.

-20
{$LTEMODEM.RSSI.MIN.WARN}

The LTE modem RSSI minimum value for warning trigger expression.

-100
{$LTEMODEM.SINR.MIN.WARN}

The LTE modem SINR minimum value for warning trigger expression.

0
{$MEMORY.UTIL.MAX}

-

90
{$TEMP_CRIT:"CPU"}

-

75
{$TEMP_CRIT_LOW}

-

5
{$TEMP_CRIT}

-

60
{$TEMP_WARN:"CPU"}

-

70
{$TEMP_WARN}

-

50
{$VFS.FS.PUSED.MAX.CRIT}

-

90
{$VFS.FS.PUSED.MAX.WARN}

-

80

Template links

Name
Generic SNMP
Interfaces SNMP

Discovery rules

Name Description Type Key and additional info
CPU discovery

HOST-RESOURCES-MIB::hrProcessorTable discovery

SNMP hrProcessorLoad.discovery
Temperature CPU discovery

MIKROTIK-MIB::mtxrHlProcessorTemperature

Since temperature of CPU is not available on all Mikrotik hardware, this is done to avoid unsupported items.

SNMP mtxrHlProcessorTemperature.discovery
Temperature sensor discovery

MIKROTIK-MIB::mtxrHlTemperature

Since temperature sensor is not available on all Mikrotik hardware,

this is done to avoid unsupported items.

SNMP mtxrHlTemperature.discovery
LTE modem discovery

MIKROTIK-MIB::mtxrLTEModemInterfaceIndex

SNMP mtxrLTEModem.discovery

Filter:

AND

- A: {#IFTYPE} MATCHES_REGEX ^1$

- B: {#IFNAME} MATCHES_REGEX {$IFNAME.LTEMODEM.MATCHES}

AP channel discovery

MIKROTIK-MIB::mtxrWlAp

SNMP mtxrWlAp.discovery

Filter:

AND

- A: {#IFTYPE} MATCHES_REGEX ^71$

- B: {#IFADMINSTATUS} MATCHES_REGEX ^1$

CAPsMAN AP channel discovery

MIKROTIK-MIB::mtxrWlCMChannel

SNMP mtxrWlCMChannel.discovery

Filter:

AND

- A: {#IFTYPE} MATCHES_REGEX ^1$

- B: {#IFNAME} MATCHES_REGEX {$IFNAME.WIFI.MATCHES}

Storage discovery

HOST-RESOURCES-MIB::hrStorage discovery with storage filter

SNMP storage.discovery

Filter:

OR

- B: {#STORAGE_TYPE} MATCHES_REGEX .+4$

- A: {#STORAGE_TYPE} MATCHES_REGEX .+hrStorageFixedDisk

Items collected

Group Name Description Type Key and additional info
CPU #{#SNMPINDEX}: CPU utilization

MIB: HOST-RESOURCES-MIB

The average, over the last minute, of the percentage of time that this processor was not idle. Implementations may approximate this one minute smoothing period if necessary.

SNMP system.cpu.util[hrProcessorLoad.{#SNMPINDEX}]
Inventory Operating system

MIB: MIKROTIK-MIB

Software version.

SNMP system.sw.os[mtxrLicVersion.0]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Inventory Hardware model name

-

SNMP system.hw.model

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Inventory Hardware serial number

MIB: MIKROTIK-MIB

RouterBOARD serial number.

SNMP system.hw.serialnumber

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Inventory Firmware version

MIB: MIKROTIK-MIB

Current firmware version.

SNMP system.hw.firmware

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Memory Used memory

MIB: HOST-RESOURCES-MIB

The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.

SNMP vm.memory.used[hrStorageUsed.Memory]

Preprocessing:

- MULTIPLIER: 1024

Memory Total memory

MIB: HOST-RESOURCES-MIB

The size of the storage represented by this entry, in

units of hrStorageAllocationUnits. This object is

writable to allow remote configuration of the size of

the storage area in those cases where such an

operation makes sense and is possible on the

underlying system. For example, the amount of main

memory allocated to a buffer pool might be modified or

the amount of disk space allocated to virtual memory

might be modified.

SNMP vm.memory.total[hrStorageSize.Memory]

Preprocessing:

- MULTIPLIER: 1024

Memory Memory utilization

Memory utilization in %

CALCULATED vm.memory.util[memoryUsedPercentage.Memory]

Expression:

last("vm.memory.used[hrStorageUsed.Memory]")/last("vm.memory.total[hrStorageSize.Memory]")*100
Storage Disk-{#SNMPINDEX}: Used space

MIB: HOST-RESOURCES-MIB

The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.

SNMP vfs.fs.used[hrStorageSize.{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 1024

Storage Disk-{#SNMPINDEX}: Total space

MIB: HOST-RESOURCES-MIB

The size of the storage represented by this entry, in

units of hrStorageAllocationUnits. This object is

writable to allow remote configuration of the size of

the storage area in those cases where such an

operation makes sense and is possible on the

underlying system. For example, the amount of main

memory allocated to a buffer pool might be modified or

the amount of disk space allocated to virtual memory

might be modified.

SNMP vfs.fs.total[hrStorageSize.{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 1024

Storage Disk-{#SNMPINDEX}: Space utilization

Space utilization in % for Disk-{#SNMPINDEX}

CALCULATED vfs.fs.pused[hrStorageSize.{#SNMPINDEX}]

Expression:

(last("vfs.fs.used[hrStorageSize.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100
Temperature CPU: Temperature

MIB: MIKROTIK-MIB

mtxrHlProcessorTemperature Processor temperature in Celsius (degrees C).

Might be missing in entry models (RB750, RB450G..).

SNMP sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 0.1

Temperature Device: Temperature

MIB: MIKROTIK-MIB

mtxrHlTemperature Device temperature in Celsius (degrees C).

Might be missing in entry models (RB750, RB450G..).

Reference: http://wiki.mikrotik.com/wiki/Manual:SNMP

SNMP sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 0.1

Wireless Interface {#IFNAME}({#IFALIAS}): LTE modem RSSI

MIB: MIKROTIK-MIB

mtxrLTEModemSignalRSSI Received Signal Strength Indicator.

SNMP lte.modem.rssi[mtxrLTEModemSignalRSSI.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): LTE modem RSRP

MIB: MIKROTIK-MIB

mtxrLTEModemSignalRSRP Reference Signal Received Power.

SNMP lte.modem.rsrp[mtxrLTEModemSignalRSRP.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): LTE modem RSRQ

MIB: MIKROTIK-MIB

mtxrLTEModemSignalRSRQ Reference Signal Received Quality.

SNMP lte.modem.rsrq[mtxrLTEModemSignalRSRQ.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): LTE modem SINR

MIB: MIKROTIK-MIB

mtxrLTEModemSignalSINR Signal to Interference & Noise Ratio.

SNMP lte.modem.sinr[mtxrLTEModemSignalSINR.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): SSID

MIB: MIKROTIK-MIB

mtxrWlApSsid Service Set Identifier.

SNMP ssid.name[mtxrWlApSsid.{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Wireless Interface {#IFNAME}({#IFALIAS}): AP band

MIB: MIKROTIK-MIB

mtxrWlApBand

SNMP ssid.band[mtxrWlApBand.{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Wireless Interface {#IFNAME}({#IFALIAS}): AP noise floor

MIB: MIKROTIK-MIB

mtxrWlApNoiseFloor

SNMP ssid.noise[mtxrWlApNoiseFloor.{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 15m

Wireless Interface {#IFNAME}({#IFALIAS}): AP registered clients

MIB: MIKROTIK-MIB

mtxrWlApClientCount Client established connection to AP, but didn't finish all authetncation procedures for full connection.

SNMP ssid.regclient[mtxrWlApClientCount.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): AP authenticated clients

MIB: MIKROTIK-MIB

mtxrWlApAuthClientCount Number of authentication clients.

SNMP ssid.authclient[mtxrWlApAuthClientCount.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): AP channel

MIB: MIKROTIK-MIB

mtxrWlCMChannel

SNMP ssid.channel[mtxrWlCMChannel.{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Wireless Interface {#IFNAME}({#IFALIAS}): AP state

MIB: MIKROTIK-MIB

mtxrWlCMState Wireless interface state.

SNMP ssid.state[mtxrWlCMState.{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Wireless Interface {#IFNAME}({#IFALIAS}): AP registered clients

MIB: MIKROTIK-MIB

mtxrWlCMRegClientCount Client established connection to AP, but didn't finish all authetncation procedures for full connection.

SNMP ssid.regclient[mtxrWlCMRegClientCount.{#SNMPINDEX}]
Wireless Interface {#IFNAME}({#IFALIAS}): AP authenticated clients

MIB: MIKROTIK-MIB

mtxrWlCMAuthClientCount Number of authentication clients.

SNMP ssid.authclient[mtxrWlCMAuthClientCount.{#SNMPINDEX}]

Triggers

Name Description Expression Severity Dependencies and additional info
#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)

CPU utilization is too high. The system might be slow to respond.

{TEMPLATE_NAME:system.cpu.util[hrProcessorLoad.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT} WARNING
Operating system description has changed

Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.

{TEMPLATE_NAME:system.sw.os[mtxrLicVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[mtxrLicVersion.0].strlen()}>0 INFO

Manual close: YES

Device has been replaced (new serial number received)

Device serial number has changed. Ack to close

{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0 INFO

Manual close: YES

Firmware has changed

Firmware version has changed. Ack to close

{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0 INFO

Manual close: YES

High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)

The system is running out of free memory.

{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.Memory].min(5m)}>{$MEMORY.UTIL.MAX} AVERAGE
Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)

Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}.

Second condition should be one of the following:

- The disk free space is less than 5G.

- The disk will be full in less than 24 hours.

{TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and (({Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d) AVERAGE

Manual close: YES

Disk-{#SNMPINDEX}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}%)

Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}.

Second condition should be one of the following:

- The disk free space is less than 10G.

- The disk will be full in less than 24 hours.

{TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and (({Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d) WARNING

Manual close: YES

Depends on:

- Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)

CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}

This trigger uses temperature sensor values as well as temperature sensor status if available

{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}

Recovery expression:

{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3
WARNING

Depends on:

- CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}

CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}

This trigger uses temperature sensor values as well as temperature sensor status if available

{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}

Recovery expression:

{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3
HIGH
CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}

-

{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}

Recovery expression:

{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3
AVERAGE
Device: Temperature is above warning threshold: >{$TEMP_WARN:"Device"}

This trigger uses temperature sensor values as well as temperature sensor status if available

{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Device"}

Recovery expression:

{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Device"}-3
WARNING

Depends on:

- Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}

Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}

This trigger uses temperature sensor values as well as temperature sensor status if available

{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Device"}

Recovery expression:

{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Device"}-3
HIGH
Device: Temperature is too low: <{$TEMP_CRIT_LOW:"Device"}

-

{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Device"}

Recovery expression:

{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Device"}+3
AVERAGE
Interface {#IFNAME}({#IFALIAS}): LTE modem RSSI is low (below {$LTEMODEM.RSSI.MIN.WARN}dbm for 5m)

-

{TEMPLATE_NAME:lte.modem.rssi[mtxrLTEModemSignalRSSI.{#SNMPINDEX}].max(5m)} < {$LTEMODEM.RSSI.MIN.WARN} WARNING
Interface {#IFNAME}({#IFALIAS}): LTE modem RSRP is low (below {$LTEMODEM.RSRP.MIN.WARN}dbm for 5m)

-

{TEMPLATE_NAME:lte.modem.rsrp[mtxrLTEModemSignalRSRP.{#SNMPINDEX}].max(5m)} < {$LTEMODEM.RSRP.MIN.WARN} WARNING
Interface {#IFNAME}({#IFALIAS}): LTE modem RSRQ is low (below {$LTEMODEM.RSRQ.MIN.WARN}db for 5m)

-

{TEMPLATE_NAME:lte.modem.rsrq[mtxrLTEModemSignalRSRQ.{#SNMPINDEX}].max(5m)} < {$LTEMODEM.RSRQ.MIN.WARN} WARNING
Interface {#IFNAME}({#IFALIAS}): LTE modem SINR is low (below {$LTEMODEM.SINR.MIN.WARN}db for 5m)

-

{TEMPLATE_NAME:lte.modem.sinr[mtxrLTEModemSignalSINR.{#SNMPINDEX}].max(5m)} < {$LTEMODEM.SINR.MIN.WARN} WARNING
Interface {#IFNAME}({#IFALIAS}): AP interface {#IFNAME}({#IFALIAS}) is not running

Access point interface can be not running by different reasons - disabled interface, power off, network link down.

{TEMPLATE_NAME:ssid.state[mtxrWlCMState.{#SNMPINDEX}].last()}<>"running-ap" WARNING

Feedback

Please report any issues with the template at https://support.zabbix.com

Known Issues

  • Description: Doesn't have ifHighSpeed filled. fixed in more recent versions

    • Version: RouterOS 6.28 or lower
  • Description: Doesn't have any temperature sensors

    • Version: RouterOS 6.38.5
    • Device: Mikrotik 941-2nD, Mikrotik 951G-2HnD

Articles and documentation

+ Propose new article
Add your solution