Additional Information
This section list the devices currently supported by the Managed Devices service on Cisco MSX and information on the JSON file required to support additional device models on MSX.
Configuring Switch Ports
Cisco MSX provides the ability to create configuration and deploy them to multiple switch ports using the pre-defined templates that are available within the Cisco MSX.
![]() Note |
|
Creating Switch Port Configuration
Cisco MSX provides a switch configuration feature template to create new port configurations and apply them to the ports within a tenant hierarchy. Use this template to create configurations with which you can turn ports on/off, enable spanning tree (RSTP), define port types (access/trunk), and specify VLANs (data and voice). Feature template is helpful in scenarios when the switches or the ports in organizations are configured in a similar manner. Once the new configurations are created and tagged appropriately, you can apply these configurations to ports or devices across a tenant hierarchy that uses the same tags.
To create a new switch port configuration using out-of-the-box template available within MSX:
Procedure
| Step 1 |
Log in to the Cisco MSX portal. |
||
| Step 2 |
From the left pane, choose Tenant Workspace > Service Controls. |
||
| Step 3 |
Select Switch Management to create new switch configurations.
|
||
| Step 4 |
On the Switch Management page, click + or New Configuration option to create a new switch configuration. The Create Configurationwizard is displayed. |
||
| Step 5 |
Click Get Started. The Add Configuration Information window is displayed. ![]() |
||
| Step 6 |
Enter a unique name for the new port configuration and its description, and select an existing feature template. Next, select one or more tags that categorize entities based on common criteria. Tags can be region-based or department-based. Examples of Tags in a School system can be Classroom, Auditorium, and so on. The configurations will be only applied to target entities that uses all the specified tags.
|
||
| Step 7 |
Click > to move to the Enter Configuration page. |
||
| Step 8 |
Enter further configurations based on the template that was selected to create this new configuration. These configurations apply to tenants that use the same tags. If locked, tenants would not be able to modify these values.
|
||
| Step 9 |
Click > to move to the Review and Save page. |
||
| Step 10 |
Review the details and click Submit to complete the process. Under the Switch Management page, you can view the newly created switch port configuration, and apply these configuration to a destination target. ![]() |
Editing Switch Port Configuration
To edit switch port configuration:
Procedure
| Step 1 |
Log in to the Cisco MSX portal. |
| Step 2 |
From the left pane, choose Tenant Workspace > Service Controls. |
| Step 3 |
Select Switch Management to edit new switch configurations. The Switch Management page lists configurations that were created and saved. |
| Step 4 |
Select a configuration and click on the ellipsis (…) > Edit Configuration. The Edit Configuration window is displayed. ![]() |
| Step 5 |
Edit to modify an existing switch port configurations. These configurations apply to tenants that use the same tags. If locked, tenants would not be able to modify these values. |
| Step 6 |
Click > to move to the Review and Save page. |
| Step 7 |
Review the details and click Submit to complete the process. Under the Switch Management page, you can view the edited switch port configuration, and apply these configuration to a destination target. |
Applying Switch Port Configuration
To apply a new switch port configuration:
Before you begin
Make sure the entities where the configurations have to be applied are pre-configured with tags outside of MSX. For example, for Meraki, the Switch Ports can be tagged from the Meraki Dashboard. For more information, see Manage Tags in Meraki Documentation.
Procedure
| Step 1 |
Log in to the Cisco MSX portal. |
| Step 2 |
From the left pane, choose Tenant Workspace > Service Controls > Switch Management tile. |
| Step 3 |
On the Switch Management page, select a configuration, and click the ellipsis (...), and choose Apply Configuration. ![]() |
| Step 4 |
Click Apply Configuration to deploy the configuration on entities that use similar tags across a tenant hierarchy. |
| Step 5 |
To track the status of the deployment, from the Switch Management page, click on the clock icon on the top right side to display the list of user actions. Click the ellipsis (...) and choose View Details. The Deployment Activity page displays the Status of applied configurations for entities that used similar tag(s). You can filter the list by Status or sort this list in a particular order. |
Devices Supported by Managed Device Service Pack
Cisco MSX Managed Device service pack supports various device types, such as:
-
CISCO CSR 1000v
-
CISCO IR 829
-
CISCO ISR 1100
-
CISCO ISR 4221
-
CISCO ISR 4321
-
CISCO ISR 4331
-
CISCO ISR 4351
-
CISCO ISR 4431
-
CISCO ISR 4451
-
Catalyst 300 switch
-
CISCO IOS XR
-
CISCO NX-OS
-
CISCO CAT
-
CISCO ASA
-
Cisco Meraki. For the Meraki devices supported on MSX, see Managing Meraki.
-
Catalyst 9000
-
JUNIPER SRX
-
FORTINET
![]() Note |
For adding a new device model, see Importing Device Model.
|
Sample JSON File for Importing New Device Model
The Cisco MSX Managed Device service pack allows you to import a new device model. You can download the sample JSON file and update this file as required. Upload this file to import the new device model into Cisco MSX.
Downloaded Sample JSON File from the Cisco MSX
The downloaded sample JSON file for importing a new device model:
{
"deviceModels": [
{
"//comment_1": "'deviceModelName' is where the actual device model needs to be filled, 'CISCO ISR 4451', 'CISCO IR 829' are used here for as examples.",
"//comment_2": "The List 'interfaces' is for device models where there is no distinction between wan and lan interfaces, i.e. any interface can be selected as WAN or LAN. Ex: ISR 4451, ISR 4431 etc.",
"//comment_3": "Lists 'wan' and 'lan' are for device models where the interfaces are classified as WAN and LAN and cannot be interchangeably used. Ex: IR 829, ISR 11xx etc.",
"//comment_4": "Lists 'interfaces', 'wan' and 'lan' are mutually exclusive, i.e. if interface names are populated in 'interfaces' list, they cannot be populated in 'wan' or 'lan' lists and vice versa.",
"//comment_5": "'wan' and 'lan' lists can be empty when 'interfaces' is populated and 'interfaces' can be empty when 'wan' and 'lan' are populated. If 'interfaces' is populated, then 'wan' and 'lan' entries must also exist in 'interfaces'",
"//comment_6": "Because on-boarding interface will be picked from the list of 'interfaces' or from 'wan' list, either of them ('interfaces' or 'wan') lists is mandatory but 'lan' list is not mandatory.",
"//comment_7": "'ned-id' is mandatory parameter which SP has to enter, MSX 3.5 release supports cisco-ios ned only, this ned covers all the Cisco devices running ios and ios-xe.",
"//comment_8": "Multiple device models can be defined in single JSON file upload.",
"//comment_9": "Maximum number of interfaces which can be defined is 20, individually 10 each for lan and wan type.",
"//comment_10": "Overwriting the device model is allowed only if no devices are using the device model.",
"//comment_11": "MSX install comes with pre loaded device model definitions, which can be overwritten provided no devices are using the device model.",
"//comment_12": "Device Type was added in 3.7.0 this is a required field. This must be one of: cli, netconf, snmp or generic",
"//comment_13": "directSecureTemplate was added in 3.7.0 this is a required filed.In this the User has to provide both the secure credentials and onboarding template",
"//comment_14": "directTemplate was added in 3.7.0 this is a required field.In this User needs to provide just the onboarding template to be applied on to the device",
"//comment_15": "pnpDayZeroFile was added in 3.7.0 this is a required field.If provided from UI, then it should be pushed to the device instead the one generated from NSO",
"//comment_16": "platformDeviceType is added in 3.8.0 and is tied to a deviceType for collecting health metrics",
"//comment_17": "platformDeviceSubType is added in 3.8.0 and is tied to a deviceType for collecting health metrics",
"deviceModelName": "CISCO ISR 4451",
"interfaces": [
"GigabitEthernet0/0/1",
"GigabitEthernet0/0/0",
"GigabitEthernet0/0/2",
"GigabitEthernet0/0/3"
],
"lan": [],
"wan": [],
"nedId": "cisco-ios",
"deviceType": "cli",
"directSecureTemplate": "TestDirectSecureTemplate",
"directTemplate": "TestDirectTemplate",
"pnpDayZeroFile": "TestPnpDayZeroFile",
"platformDeviceType": "CPE",
"platformDeviceSubType": "ISR",
"snmpDetails": {
"snmpAuthProto": "sha",
"snmpVersion": "3",
"snmpPrivProto": "PrivateProto",
"snmpUserName": "Username"
}
},
{
"deviceModelName": "CISCO IR 829",
"interfaces": [],
"lan": [
"Vlan1"
],
"wan": [
"GigabitEthernet0"
],
"nedId": "cisco-ios",
"deviceType": "cli",
"directSecureTemplate": "TestDirectSecureTemplate",
"directTemplate": "TestDirectTemplate",
"pnpDayZeroFile": "TestPnpDayZeroFile",
"platformDeviceType": "CPE",
"platformDeviceSubType": "ISR",
"snmpDetails": {
"snmpAuthProto": "sha",
"snmpVersion": "3",
"snmpPrivProto": "PrivateProto",
"snmpUserName": "Username"
}
},
{
"deviceModelName": "CISCO All Interfaces Model",
"interfaces": [
"GigabitEthernet0",
"GigabitEthernet1",
"GigabitEthernet2",
"GigabitEthernet3"
],
"lan": [
"GigabitEthernet0"
],
"wan": [
"GigabitEthernet1",
"GigabitEthernet2"
],
"nedId": "cisco-ios",
"deviceType": "cli",
"directSecureTemplate": "TestDirectSecureTemplate",
"directTemplate": "TestDirectTemplate",
"pnpDayZeroFile": "TestPnpDayZeroFile",
"platformDeviceType": "CPE",
"platformDeviceSubType": "ISR"
},
{
"deviceModelName": "Cisco ASA",
"platformDeviceType": "CPE",
"platformDeviceSubType": "ASA",
"interfaces": [
"Adaptive Security Appliance 'GigabitEthernet0/1' interface",
"Adaptive Security Appliance 'GigabitEthernet0/2' interface",
"Adaptive Security Appliance 'mgmt_int' interface"
],
"lan": [],
"wan": [],
"nedId": "cisco-asa",
"deviceType": "cli",
"directTemplate": "ASA_CONFIG_TEMPLATE"
}
],
"deviceMetricConfigurations": [
{
"//comment_1": "(Required) 'platformDeviceSubType' is a string that maps the device metric configuration to matching device model.",
"//comment_2": "(Required) 'platformDeviceType' is used to identify what type of device. This is used in conjunction with subtype to match device metric configurations.",
"//comment_3": "(Required) 'snmpDetails' provides information on how to connect to the device using SNMP. It will provide information like snmp version, snmp auth protocal, snmp username, etc",
"//comment_4": "(Optional) 'snmpOidList' provides a list of oid to append to existing list to collect data from. In certain cases of 3rd party device you might have to specify which OID to collect data from.",
"//comment_5": "(Optional) 'snmpCpuMemoryUptimeQueryTemplate' is the query template defined to retrieve and transform CPU, Memory Free/Used and Uptime. In some cases query might have to be updated based on device type.",
"//comment_6": "'snmpCpuMemoryUptimeQueryTemplate' is expected as a JSON object.",
"//comment_7": "If an existing device metric configuration for subtype exists, we will overwrite if you proceed.",
"//comment_8": "NOTE: You may have to create a config template and upload it to NSO to configure SNMP on device on onboarding. To do this use 'directTemplate' attribute in device model",
"snmpDetails": {
"snmpAuthProto": "md5",
"snmpVersion": "3",
"snmpPrivProto": "PrivateProto",
"snmpUserName": "Username"
},
"platformDeviceType": "CPE",
"platformDeviceSubType": "JUNOS",
"snmpOidList": [
".1.3.6.1.4.1.2636.3.1.13.1.21",
".1.3.6.1.4.1.2636.3.1.13.1.11"
],
"snmpCpuMemoryUptimeQueryTemplate": {
"size": 0,
"query": {
"bool": {
"must": [
{
"match": {
"deviceId": "{{ device_id }}"
}
},
{
"match": {
"serviceId": "{{ service_id }}"
}
},
{
"range": {
"@timestamp": {
"gte": "now-5m",
"lt": "now"
}
}
}
]
}
},
"aggs": {
"per_interval": {
"date_histogram": {
"field": "@timestamp",
"interval": "5m"
},
"aggs": {
"UptimeMS": {
"max": {
"field": "sysUpTimeInstance"
}
},
"UptimeHours": {
"bucket_script": {
"buckets_path": {
"uptime": "UptimeMS"
},
"script": {
"inline": "params.uptime / 360000"
}
}
},
"5minCPU": {
"avg": {
"field": "jnxOperating5MinLoadAvg.9.1.0.0"
}
},
"PctMemUsed": {
"avg": {
"field": "jnxOperatingBuffer.9.1.0.0"
}
}
}
}
}
}
},
{
"snmpDetails": {
"snmpAuthProto": "sha",
"snmpVersion": "3",
"snmpPrivProto": "Privateproto",
"snmpUserName": "Username"
},
"platformDeviceType": "CPE",
"platformDeviceSubType": "ASA",
"snmpCpuMemoryUptimeQueryTemplate": {
"query": {
"bool": {
"must": [
{
"match": {
"deviceId": "{{ device_id }}"
}
},
{
"match": {
"serviceId": "{{ service_id }}"
}
},
{
"range": {
"@timestamp": {
"lt": "now",
"gte": "now-5m"
}
}
}
]
}
},
"aggs": {
"per_interval": {
"date_histogram": {
"field": "@timestamp",
"interval": "5m"
},
"aggs": {
"5minCPU": {
"avg": {
"field": "cpmCPUTotal5minRev.6"
}
},
"UptimeHours": {
"bucket_script": {
"buckets_path": {
"uptime": "UptimeMS"
},
"script": {
"inline": "params.uptime / 360000"
}
}
},
"UsedMem": {
"avg": {
"field": "System memory.ciscoMemoryPoolUsed"
}
},
"PctMemUsed": {
"bucket_script": {
"buckets_path": {
"used": "UsedMem",
"free": "FreeMem"
},
"script": {
"inline": "params.used / params.free * 100"
}
}
},
"UptimeMS": {
"max": {
"field": "sysUpTimeInstance"
}
},
"FreeMem": {
"avg": {
"field": "System memory.ciscoMemoryPoolFree"
}
}
}
}
},
"size": 0
}
}
]
}
Sample JSON File for Importing a Device Model on the New Device Type
Sample JSON file:
{
"deviceModels": [{
"deviceModelName": "Juniper JUNOS",
"platformDeviceType": "CPE",
"platformDeviceSubType": "JUNOS",
"interfaces": [
"ge-0/0/0",
"gr-0/0/0"
],
"lan": [],
"wan": [],
"nedId": "netconf",
"deviceType": "netconf",
"directTemplate": "junos-snmp"
}],
"deviceMetricConfigurations": [{
"snmpDetails": {
"snmpAuthProto": "md5",
"snmpVersion": "3",
"snmpPrivProto": "PrivProto",
"snmpUserName": "Username"
},
"platformDeviceType": "CPE",
"platformDeviceSubType": "JUNOS",
"snmpOidList":[".1.3.6.1.4.1.2636.3.1.13.1.21",".1.3.6.1.4.1.2636.3.1.13.1.11"],
"snmpCpuMemoryUptimeQueryTemplate": {
"size":0,
"query": {
"bool": {
"must": [
{
"match": {
"deviceId": "{{ device_id }}"
}
},
{
"match": {
"serviceId": "{{ service_id }}"
}
},
{
"range": {
"@timestamp": {
"gte": "now-5m",
"lt": "now"
}
}
}
]
}
},
"aggs": {
"per_interval": {
"date_histogram": {
"field": "@timestamp",
"interval": "5m"
},
"aggs": {
"UptimeMS": {
"max": {
"field": "sysUpTimeInstance"
}
},
"UptimeHours": {
"bucket_script": {
"buckets_path": {
"uptime": "UptimeMS"
},
"script": {
"inline": "params.uptime / 360000"
}
}
},
"5minCPU": {
"avg": {
"field": "enterprises.2636.3.1.13.1.21.9.1.0.0"
}
},
"PctMemUsed": {
"avg": {
"field": "enterprises.2636.3.1.13.1.11.9.1.0.0"
}
}
}
}
}
}
}]
}





Feedback