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 Cisco MSX.

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 Cisco 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"
                  }
                }
              }
            }
          }
        }
    }]
}