Can I get a Template for Meraki MX devices?

Templates, scripts for templates, scripts and requests for templates.

Moderators: Moderators, Developers

Author
Message
Jeffreys
Posts: 2
Joined: Mon Apr 14, 2014 2:02 pm

Can I get a Template for Meraki MX devices?

#1 Post by Jeffreys » Mon Apr 14, 2014 2:06 pm

I am not sure how to create a new template from a MIB but am willing to try if I can get some help. Below is the MIB from Meraki for their MX devices. How do I get a template made from this?


-- Copyright 2011 Meraki, Inc. All rights reserved.

MERAKI-CLOUD-CONTROLLER-MIB

DEFINITIONS ::= BEGIN

IMPORTS
enterprises, MODULE-IDENTITY, OBJECT-TYPE, IpAddress, Counter32
FROM SNMPv2-SMI
DateAndTime, DisplayString
FROM SNMPv2-TC
ifIndex, InterfaceIndex
FROM IF-MIB
PhysAddress
FROM RFC1213-MIB;

cloudController MODULE-IDENTITY
LAST-UPDATED "201205240001Z"
ORGANIZATION "Meraki, Inc."
CONTACT-INFO
"Meraki, Inc.
660 Alabama St.,
San Francisco, CA 94110
USA
Tel: +1-415-632-5800"
DESCRIPTION
"Management information base in SMI v2 for the Meraki Cloud Controller."
::= { meraki 1 }

meraki OBJECT IDENTIFIER ::= { enterprises 29671 }

organization OBJECT IDENTIFIER ::= { cloudController 1 }

merakiProducts OBJECT IDENTIFIER ::= { meraki 2 }

organizationName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Organization name."
::= { organization 1 }

networkTable OBJECT-TYPE
SYNTAX SEQUENCE OF MerakiNetwork
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Networks table."
::= { organization 2 }

networkEntry OBJECT-TYPE
SYNTAX MerakiNetwork
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Describes each network."
INDEX { networkId }
::= { networkTable 1 }

MerakiNetwork ::= SEQUENCE {
networkId OCTET STRING,
networkName DisplayString
}

networkId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Network id, consists of 8 octets. Remains the same even
if the name of the network changes"
::= { networkEntry 1 }

networkName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Network name."
::= { networkEntry 2 }

ssidTable OBJECT-TYPE
SYNTAX SEQUENCE OF MerakiSSID
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "SSID table."
::= { organization 3 }

ssidEntry OBJECT-TYPE
SYNTAX MerakiSSID
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Describes each SSID."
INDEX { networkId, ssidNumber }
::= { ssidTable 1 }

MerakiSSID ::= SEQUENCE {
ssidNetworkName DisplayString,
ssidNumber INTEGER,
ssidName DisplayString
}

ssidNetworkName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The name of the network the SSID is part of."
::= { ssidEntry 1 }

ssidNumber OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "SSID number."
::= { ssidEntry 2 }

ssidName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "SSID name."
::= { ssidEntry 3 }

devTable OBJECT-TYPE
SYNTAX SEQUENCE OF MerakiDev
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Device table."
::= { organization 4 }

devEntry OBJECT-TYPE
SYNTAX MerakiDev
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Describes each device."
INDEX { devMac }
::= { devTable 1 }

MerakiDev ::= SEQUENCE {
devMac PhysAddress,
devName DisplayString,
devStatus INTEGER,
devContactedAt DateAndTime,
devClientCount INTEGER,
devMeshStatus INTEGER,
devPublicIp IpAddress,
devSerial DisplayString,
devProductCode DisplayString,
devProductDescription DisplayString,
devNetworkName DisplayString
}

devMac OBJECT-TYPE
SYNTAX PhysAddress (SIZE(6))
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The MAC address of the device."
::= { devEntry 1 }

devName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Device name."
::= { devEntry 2 }

devStatus OBJECT-TYPE
SYNTAX INTEGER { offline(0), online(1) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The status of the device's connection to the Meraki Cloud Controller"
::= { devEntry 3 }

devContactedAt OBJECT-TYPE
SYNTAX DateAndTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The last time the device contacted the Cloud Controller."
::= { devEntry 4 }

devClientCount OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of clients currently associated with the device."
::= { devEntry 5 }

devMeshStatus OBJECT-TYPE
SYNTAX INTEGER { gateway(0), repeater(1) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Whether the device is currently acting as a gateway or a repeater."
::= { devEntry 6 }

devPublicIp OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Whether the device is currently acting as a gateway (as opposed to a repeater)."
::= { devEntry 7 }

devSerial OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Device serial number."
::= { devEntry 8 }

devProductCode OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Device product code."
::= { devEntry 9 }

devProductDescription OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Device product description."
::= { devEntry 10 }

devNetworkName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The name of the network this device is in. Useful in tables."
::= { devEntry 11 }

devInterfaceTable OBJECT-TYPE
SYNTAX SEQUENCE OF MerakiDev
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Device interfaces table."
::= { organization 5 }

devInterfaceEntry OBJECT-TYPE
SYNTAX MerakiDev
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Describes each device."
INDEX { devInterfaceDevMac, devInterfaceIndex }
::= { devInterfaceTable 1 }

MerakiDev ::= SEQUENCE {
devInterfaceDevMac PhysAddress,
devInterfaceIndex INTEGER,
devInterfaceName DisplayString,
devInterfaceSentPkts Counter32,
devInterfaceRecvPkts Counter32,
devInterfaceSentBytes Counter32,
devInterfaceRecvBytes Counter32
}

devInterfaceDevMac OBJECT-TYPE
SYNTAX PhysAddress (SIZE(6))
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The MAC address of the device."
::= { devInterfaceEntry 1 }

devInterfaceIndex OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The index of this interface."
::= { devInterfaceEntry 2 }

devInterfaceName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The name of this interface."
::= { devInterfaceEntry 3 }

devInterfaceSentPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of packets sent on this interface."
::= { devInterfaceEntry 4 }

devInterfaceRecvPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of packets received on this interface."
::= { devInterfaceEntry 5 }

devInterfaceSentBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of bytes sent on this interface."
::= { devInterfaceEntry 6 }

devInterfaceRecvBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of bytes received on this interface."
::= { devInterfaceEntry 7 }

vlanTable OBJECT-TYPE
SYNTAX SEQUENCE OF MerakiVLAN
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "VLAN table."
::= { organization 6 }

vlanEntry OBJECT-TYPE
SYNTAX MerakiVLAN
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Describes each VLAN."
INDEX { networkId, vlanNumber }
::= { vlanTable 1 }

MerakiVLAN ::= SEQUENCE {
vlanNetworkName DisplayString,
vlanNumber INTEGER
}

vlanNetworkName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The name of the network the VLAN is part of."
::= { vlanEntry 1 }

vlanNumber OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "VLAN number."
::= { vlanEntry 2 }

vlanName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "VLAN name."
::= { vlanEntry 3 }

mini OBJECT IDENTIFIER ::= { merakiProducts 1 }
id2 OBJECT IDENTIFIER ::= { merakiProducts 2 }
wpg OBJECT IDENTIFIER ::= { merakiProducts 3 }
od1 OBJECT IDENTIFIER ::= { merakiProducts 4 }
od2 OBJECT IDENTIFIER ::= { merakiProducts 5 }
od3 OBJECT IDENTIFIER ::= { merakiProducts 6 }
mo1 OBJECT IDENTIFIER ::= { merakiProducts 7 }
sol OBJECT IDENTIFIER ::= { merakiProducts 8 }
lr1 OBJECT IDENTIFIER ::= { merakiProducts 9 }
mr11 OBJECT IDENTIFIER ::= { merakiProducts 10 }
mr12 OBJECT IDENTIFIER ::= { merakiProducts 11 }
mr14 OBJECT IDENTIFIER ::= { merakiProducts 12 }
mr16 OBJECT IDENTIFIER ::= { merakiProducts 13 }
mr24 OBJECT IDENTIFIER ::= { merakiProducts 14 }
mr62 OBJECT IDENTIFIER ::= { merakiProducts 15 }
mr66 OBJECT IDENTIFIER ::= { merakiProducts 16 }
mr34 OBJECT IDENTIFIER ::= { merakiProducts 17 }
mr18 OBJECT IDENTIFIER ::= { merakiProducts 18 }
mr26 OBJECT IDENTIFIER ::= { merakiProducts 19 }

z1 OBJECT IDENTIFIER ::= { merakiProducts 100 }
mx70 OBJECT IDENTIFIER ::= { merakiProducts 101 }
mx80 OBJECT IDENTIFIER ::= { merakiProducts 102 }
mx90 OBJECT IDENTIFIER ::= { merakiProducts 103 }
mx400 OBJECT IDENTIFIER ::= { merakiProducts 104 }
mx600 OBJECT IDENTIFIER ::= { merakiProducts 105 }
mx100 OBJECT IDENTIFIER ::= { merakiProducts 106 }
mx60 OBJECT IDENTIFIER ::= { merakiProducts 107 }
mx60w OBJECT IDENTIFIER ::= { merakiProducts 108 }

merakiVM10 OBJECT IDENTIFIER ::= { merakiProducts 200 }

ms22 OBJECT IDENTIFIER ::= { merakiProducts 300 }
ms22p OBJECT IDENTIFIER ::= { merakiProducts 301 }
ms42 OBJECT IDENTIFIER ::= { merakiProducts 302 }
ms42p OBJECT IDENTIFIER ::= { merakiProducts 303 }

END

Jeffreys
Posts: 2
Joined: Mon Apr 14, 2014 2:02 pm

Re: Can I get a Template for Meraki MX devices?

#2 Post by Jeffreys » Thu Apr 17, 2014 1:05 pm

Any help on creating a template based on the MIB provided by Meraki?

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#3 Post by ddunlap123 » Wed Jun 10, 2015 11:21 am

The attached Meraki host template uses the MERAKI-CLOUD-CONTROLLER mib to poll client count (devClientCount) on their access-points. This was tested on MR access-points with Cacti 0.8.8b. The host would be the cloud controller found in Network-wide > Organization > Settings > SNMP with the udp port being 16100 and snmp v2. The script needs to go in /usr/share/cacti/resource/snmp_queries/MerDQ.xml prior to template import and use by cloud host. Import should show:

Cacti has imported the following items:

GPRINT Preset

[success] myrealvalues [new]

Data Input Method

[success] Get SNMP Data (Indexed) [update]

Data Template

[success] MerDT [new]

Graph Template

[success] MerGT [new]

Data Query

[success] MerDQ [new]

Host Template

[success] MerHT [new]

(Permissions did not allow template-posting in docs.cacti.net/templates)
Attachments
meraki.zip
(3.89 KiB) Downloaded 493 times

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#4 Post by ddunlap123 » Wed Jun 10, 2015 11:36 am

And the graphs are attached.
Attachments
mgraphs.jpg
mgraphs.jpg (114.96 KiB) Viewed 6318 times

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#5 Post by ddunlap123 » Sat Jul 04, 2015 12:55 pm

The Meraki host template has been modified to add cloud AP interface graphs. (NaNs in the graph are due to use on 2-interface single-band AP).
Attachments
mergraph.png
mergraph.png (53.46 KiB) Viewed 6207 times
meraki.zip
template
(159.76 KiB) Downloaded 395 times

Ruggero
Posts: 7
Joined: Wed Apr 29, 2015 8:27 am

Re: Can I get a Template for Meraki MX devices?

#6 Post by Ruggero » Thu Jul 23, 2015 10:01 am

Hi ddunlap123, I tried your template to monitoring and graphic MX80 but it still not working.
Data query return this message:
+ Running data query [12].
+ Found type = '3' [SNMP Query].
+ Found data query XML file at '/usr/share/cacti/resource/snmp_queries/merakiout.xml'
+ XML file parsed ok.
+ <oid_num_indexes> missing in XML file, 'Index Count Changed' emulated by counting oid_index entries
+ Executing SNMP walk for list of indexes @ '.1.3.6.1.4.1.29671.1.1.4.1.2' Index Count: 0
+ No SNMP data returned

I tried the cisco template standard and it return correctly with any interfaces of but it still don't graph with this error:
ERROR: opening '/usr/share/cacti/site/rra/mx_fgh_traffic_in_720.rrd': No such file or directory

Do you have an idea?
Thanks

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#7 Post by ddunlap123 » Thu Jul 23, 2015 10:35 am

If you do an snmpwalk of .1.3.6.1.4.1.29671.1.1.4.1.2 outside Cacti, does that work?
For example:
snmpwalk -v 2c -c <your> <yourcloud:16100> .1.3.6.1.4.1.29671.1.1.4.1.2
does that work?

Ruggero
Posts: 7
Joined: Wed Apr 29, 2015 8:27 am

Re: Can I get a Template for Meraki MX devices?

#8 Post by Ruggero » Thu Jul 23, 2015 11:03 am

Hi ddunlap123, this is the result of snmpwalk:
snmpwalk -v 2c -c ferretti 10.140.254.254:161 .1.3.6.1.4.1.29671.1.1.4.1.2
iso.3.6.1.4.1.29671.1.1.4.1.2 = No more variables left in this MIB View (It is past the end of the MIB tree)

Ruggero
Posts: 7
Joined: Wed Apr 29, 2015 8:27 am

Re: Can I get a Template for Meraki MX devices?

#9 Post by Ruggero » Thu Jul 23, 2015 11:13 am

If I put the host of the cloud in the snmpwalk, it return me all my meraki devices names like this:
iso.3.6.1.4.1.29671.1.1.4.1.2.136.21.68.63.80.168 = STRING: "Ferretti Hong Kong Office"

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#10 Post by ddunlap123 » Thu Jul 23, 2015 11:49 am

It could be the MX device which is a firewall doesn't support the same mib. This was tested on access-points. If you look at Organization > Settings where it says something like:
snmpwalk -v2c -c cmy -Ob -M +. -m +MERAKI-CLOUD-CONTROLLER-MIB n#.meraki.com:16100 .1
does it say it supports that mib?
If you snmpwalk .1.3.6.1.4.1.29671 does it return anything?

Ruggero
Posts: 7
Joined: Wed Apr 29, 2015 8:27 am

Re: Can I get a Template for Meraki MX devices?

#11 Post by Ruggero » Thu Jul 23, 2015 11:51 am

Ok ddunlap123, now I understand your template, it take all the devices from the MERAKI-CLOUD-CONTROLLER, I was hoping to just monitor one device and his interfaces with in and out, I don't not read well your explanation, sorry. But if you know something about my request, you are welcome :)

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#12 Post by ddunlap123 » Thu Jul 23, 2015 11:57 am

I don't have one of these devices but if you want to send me a link to its mib and maybe an snmpwalk, I can see how involved it would be or else point you in the right direction...

Ruggero
Posts: 7
Joined: Wed Apr 29, 2015 8:27 am

Re: Can I get a Template for Meraki MX devices?

#13 Post by Ruggero » Fri Jul 24, 2015 3:23 am

The MIB file should be the same for all meraki devices, while the snmpwalk on the device MX80 return me this:
iso.3.6.1.2.1.1.1.0 = STRING: "Meraki MX80 Cloud Managed Security Appliance"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.29671.2.103
iso.3.6.1.2.1.1.5.0 = STRING: "FGAAMFCMX001"
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.2.1.31
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The MIB module for SNMPv2 entities"
iso.3.6.1.2.1.1.9.1.3.2 = STRING: "View-based Access Control Model for SNMP."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The MIB module to describe generic objects fo r network interface sub-layers"
iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (3) 0:00:00.03
iso.3.6.1.2.1.2.1.0 = INTEGER: 5
iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
iso.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4
iso.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "wan1"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "lan2"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "lan3"
iso.3.6.1.2.1.2.2.1.2.4 = STRING: "lan4"
iso.3.6.1.2.1.2.2.1.2.5 = STRING: "lan5"
iso.3.6.1.2.1.2.2.1.3.1 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.3 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.4 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.3.5 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.4 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.4.5 = INTEGER: 1500
iso.3.6.1.2.1.2.2.1.5.1 = Gauge32: 100000000
iso.3.6.1.2.1.2.2.1.5.2 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.3 = Gauge32: 1000000000
iso.3.6.1.2.1.2.2.1.5.4 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.5 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 00 18 0A 07 E6 89
iso.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 00 18 0A 07 E6 88
iso.3.6.1.2.1.2.2.1.6.3 = Hex-STRING: 00 18 0A 07 E6 88
iso.3.6.1.2.1.2.2.1.6.4 = Hex-STRING: 00 18 0A 07 E6 88
iso.3.6.1.2.1.2.2.1.6.5 = Hex-STRING: 00 18 0A 07 E6 88
iso.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.3 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.4 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.7.5 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.8.3 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.4 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.8.5 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.2 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.3 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.4 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.9.5 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.2.1.10.1 = Counter32: 694757437
iso.3.6.1.2.1.2.2.1.10.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.10.3 = Counter32: 4020686538
iso.3.6.1.2.1.2.2.1.10.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.10.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.11.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.12.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.1 = Counter32: 849760136
iso.3.6.1.2.1.2.2.1.16.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.3 = Counter32: 2540412305
iso.3.6.1.2.1.2.2.1.16.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.17.1 = Counter32: 8177085
iso.3.6.1.2.1.2.2.1.17.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.17.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.17.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.17.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.18.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.18.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.18.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.18.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.18.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.19.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.19.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.19.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.19.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.19.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.3 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.4 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.5 = Counter32: 0
iso.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.21.3 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.21.4 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.21.5 = Gauge32: 0
iso.3.6.1.2.1.2.2.1.22.1 = OID: ccitt.0
iso.3.6.1.2.1.2.2.1.22.2 = OID: ccitt.0
iso.3.6.1.2.1.2.2.1.22.3 = OID: ccitt.0
iso.3.6.1.2.1.2.2.1.22.4 = OID: ccitt.0
iso.3.6.1.2.1.2.2.1.22.5 = OID: ccitt.0
iso.3.6.1.2.1.31.1.1.1.1.1 = STRING: "wan1"
iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "lan2"
iso.3.6.1.2.1.31.1.1.1.1.3 = STRING: "lan3"
iso.3.6.1.2.1.31.1.1.1.1.4 = STRING: "lan4"
iso.3.6.1.2.1.31.1.1.1.1.5 = STRING: "lan5"
iso.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.2.2 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.2.3 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.2.4 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.2.5 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.3.2 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.3.3 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.3.4 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.3.5 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.4.2 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.4.3 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.4.4 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.4.5 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.5.2 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.5.3 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.5.4 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.5.5 = Counter32: 0
iso.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 695590415
iso.3.6.1.2.1.31.1.1.1.6.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.6.3 = Counter64: 4021319497
iso.3.6.1.2.1.31.1.1.1.6.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.6.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.7.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.7.3 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.7.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.7.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.8.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.8.3 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.8.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.8.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.9.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.9.3 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.9.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.9.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 850474814
iso.3.6.1.2.1.31.1.1.1.10.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.10.3 = Counter64: 2541161074
iso.3.6.1.2.1.31.1.1.1.10.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.10.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 8177102
iso.3.6.1.2.1.31.1.1.1.11.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.11.3 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.11.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.11.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.12.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.12.3 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.12.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.12.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.13.2 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.13.3 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.13.4 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.13.5 = Counter64: 0
iso.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 100
iso.3.6.1.2.1.31.1.1.1.15.2 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.15.3 = Gauge32: 1000
iso.3.6.1.2.1.31.1.1.1.15.4 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.15.5 = Gauge32: 10
iso.3.6.1.2.1.31.1.1.1.18.1 = ""
iso.3.6.1.2.1.31.1.1.1.18.2 = ""
iso.3.6.1.2.1.31.1.1.1.18.3 = ""
iso.3.6.1.2.1.31.1.1.1.18.4 = ""
iso.3.6.1.2.1.31.1.1.1.18.5 = ""
Attachments
MERAKI-CLOUD-CONTROLLER-MIB.rar
(3.28 KiB) Downloaded 224 times

ddunlap123
Posts: 20
Joined: Fri May 15, 2015 7:08 pm

Re: Can I get a Template for Meraki MX devices?

#14 Post by ddunlap123 » Fri Jul 24, 2015 7:00 am

The walk you did only shows mib2, i.e. .1.3.6.1.2.etc. If you snmpwalk .1.3.6.1.4.1.29671 does it return anything? What is it you're wanting to graph? If interface traffic only, you should be able to use the standard SNMP - Network Interfaces.

Ruggero
Posts: 7
Joined: Wed Apr 29, 2015 8:27 am

Re: Can I get a Template for Meraki MX devices?

#15 Post by Ruggero » Fri Jul 24, 2015 8:11 am

Hi ddunlap123, the problem, in fact, is that it seems that Cacti is able to recognize all the interfaces, as you see below,from the standard "SNMP - Network Interfaces", but the problem is that then does not come out anything from the graph template standard "Cisco - CPU Usage" :
Data Query Debug Information
+ Running data query [1].
+ Found type = '3' [SNMP Query].
+ Found data query XML file at '/usr/share/cacti/site/resource/snmp_queries/interface.xml'
+ XML file parsed ok.
+ Executing SNMP get for num of indexes @ '.1.3.6.1.2.1.2.1.0' Index Count: 5
+ Executing SNMP walk for list of indexes @ '.1.3.6.1.2.1.2.2.1.1' Index Count: 5
+ Index found at OID: '1.3.6.1.2.1.2.2.1.1.1' value: '1'
+ Index found at OID: '1.3.6.1.2.1.2.2.1.1.2' value: '2'
+ Index found at OID: '1.3.6.1.2.1.2.2.1.1.3' value: '3'
+ Index found at OID: '1.3.6.1.2.1.2.2.1.1.4' value: '4'
+ Index found at OID: '1.3.6.1.2.1.2.2.1.1.5' value: '5'
+ Located input field 'ifIndex' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.1'
+ Found item [ifIndex='1'] index: 1 [from value]
+ Found item [ifIndex='2'] index: 2 [from value]
+ Found item [ifIndex='3'] index: 3 [from value]
+ Found item [ifIndex='4'] index: 4 [from value]
+ Found item [ifIndex='5'] index: 5 [from value]
+ Located input field 'ifOperStatus' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.8'
+ Found item [ifOperStatus='Up'] index: 1 [from value]
+ Found item [ifOperStatus='Down'] index: 2 [from value]
+ Found item [ifOperStatus='Up'] index: 3 [from value]
+ Found item [ifOperStatus='Down'] index: 4 [from value]
+ Found item [ifOperStatus='Down'] index: 5 [from value]
+ Located input field 'ifDescr' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.2'
+ Found item [ifDescr='wan1'] index: 1 [from value]
+ Found item [ifDescr='lan2'] index: 2 [from value]
+ Found item [ifDescr='lan3'] index: 3 [from value]
+ Found item [ifDescr='lan4'] index: 4 [from value]
+ Found item [ifDescr='lan5'] index: 5 [from value]
+ Located input field 'ifName' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.1'
+ Found item [ifName='wan1'] index: 1 [from value]
+ Found item [ifName='lan2'] index: 2 [from value]
+ Found item [ifName='lan3'] index: 3 [from value]
+ Found item [ifName='lan4'] index: 4 [from value]
+ Found item [ifName='lan5'] index: 5 [from value]
+ Located input field 'ifAlias' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.18'
+ Found item [ifAlias=''] index: 1 [from value]
+ Found item [ifAlias=''] index: 2 [from value]
+ Found item [ifAlias=''] index: 3 [from value]
+ Found item [ifAlias=''] index: 4 [from value]
+ Found item [ifAlias=''] index: 5 [from value]
+ Located input field 'ifType' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.3'
+ Found item [ifType='6'] index: 1 [from value]
+ Found item [ifType='6'] index: 2 [from value]
+ Found item [ifType='6'] index: 3 [from value]
+ Found item [ifType='6'] index: 4 [from value]
+ Found item [ifType='6'] index: 5 [from value]
+ Located input field 'ifSpeed' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.5'
+ Found item [ifSpeed='100000000'] index: 1 [from value]
+ Found item [ifSpeed='10000000'] index: 2 [from value]
+ Found item [ifSpeed='1000000000'] index: 3 [from value]
+ Found item [ifSpeed='10000000'] index: 4 [from value]
+ Found item [ifSpeed='10000000'] index: 5 [from value]
+ Located input field 'ifHwAddr' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.6'
+ Found item [ifHwAddr='00:18:0A:07:E6:89'] index: 1 [from value]
+ Found item [ifHwAddr='00:18:0A:07:E6:88'] index: 2 [from value]
+ Found item [ifHwAddr='00:18:0A:07:E6:88'] index: 3 [from value]
+ Found item [ifHwAddr='00:18:0A:07:E6:88'] index: 4 [from value]
+ Found item [ifHwAddr='00:18:0A:07:E6:88'] index: 5 [from value]
+ Located input field 'ifIP' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.4.20.1.2'

and this is what happens when I request the graphic from the interface:

RRDTool Command:
/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-300 \
--title='MX_AMF - Traffic - wan1' \
--rigid \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit='0' \
--vertical-label='bits per second' \
--slope-mode \
--font TITLE:10: \
--font AXIS:7: \
--font LEGEND:8: \
--font UNIT:7: \
DEF:a='/usr/share/cacti/site/rra/mx_amf_traffic_in_733.rrd':'traffic_in':AVERAGE \
DEF:b='/usr/share/cacti/site/rra/mx_amf_traffic_in_733.rrd':'traffic_out':AVERAGE \
CDEF:cdefa='a,8,*' \
CDEF:cdefe='b,8,*' \
AREA:cdefa#00CF00FF:'Inbound' \
GPRINT:cdefa:LAST:' Current\:%8.2lf %s' \
GPRINT:cdefa:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefa:MAX:'Maximum\:%8.2lf %s\n' \
LINE1:cdefe#002A97FF:'Outbound' \
GPRINT:cdefe:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefe:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefe:MAX:'Maximum\:%8.2lf %s\n'
RRDTool Says:
ERROR: opening '/usr/share/cacti/site/rra/mx_amf_traffic_in_733.rrd': No such file or directory

Post Reply