Répertorier toutes les unités avec nom de classe et identificateur d'objet système

Cette requête récupère toutes les unités de noeud principal dans tous les domaines et, pour chaque unité, fournit le nom de classe de l'unité et le type d'unité.

Nom de classe
Fabricant et famille de produit de l'unité. Par exemple, CiscoCat35xx est la famille de produit Cisco Catalyst 3500.
Type de périphérique
Numéro de modèle du périphérique dans la famille de produit du fabricant. Par exemple, catalyst3524XL est le commutateur Cisco Catalyst 3524XL Gigabit Ethernet. La requête détermine le type d'unité en effectuant l'extraction de la valeur de l'identificateur d'objet système (sysObjectId) pour l'unité. Le champ sysObjectId est contenu dans le fichierchassistable, qui est l'une des tables jointes dans le cadre de la requête. L'identificateur d'objet système est une valeur de base d'informations de gestion qui fournit l'identification officielle du vendeur du sous-système de gestion de réseau contenu dans l'entité et sert de moyen simple et clair pour déterminer le type d'unité.

Vous pouvez convertir l'identificateur d'objet système (par exemple, (1.3.6.1.4.1.9.1.248) en texte lisible par l'utilisateur (par exemple, catalyst3524XL), à l'aide d'une instruction OUTER JOIN pour joindremappingsà la requête. Dans lemappingsle groupe de mappage sysObjectId répertorie les chaînes d'identification des objets du système et leurs valeurs correspondantes lisibles par l'homme. :NONE.mappingstable fournit des mappages de chaîne à chaîne, contrairement à laenumerationstable, qui fournit des mappages d'entiers à des chaînes.

Si aucune entrée n'existe dans lemappingspour un identificateur d'objet système spécifique, la requête renvoie une valeur NULL pour le type d'unité. Une instruction OUTER JOIN vous permet d'effectuer cette conversion sans perdre aucune ligne de données de noeud principal. Si aucune chaîne n'existe pour un identificateur d'objet système particulier, l'instruction OUTER JOIN permet néanmoins de ne pas perdre la ligne de données pour l'unité de noeud principal associée à cet identificateur d'objet système.

Exemple

1] SELECT     e.entityName Entity_Name,
2]            ec.className Class_Name,
3]            s.sysObjectId System_Object_ID,
4]            m.mappingValue Device_Type
5]  FROM      entityData e
6]  INNER JOIN physicalChassis c ON c.entityId = e.entityId
7]  INNER JOIN snmpSystem s ON s.entityId = e.entityId
8]  INNER JOIN classMembers cm ON cm.entityId = e.entityId
9]  INNER JOIN entityClass ec ON ec.classId = cm.classId
10]  LEFT OUTER JOIN mappings m ON m.mappingGroup = 'sysObjectId'
11]                 AND m.mappingKey = s.sysObjectId
12] ORDER BY   ec.className, s.sysObjectId

Le tableau suivant décrit cette requête :

Tableau 1. Description de la requête
Numéros de ligne Description
1-4

Indiquez les données à afficher dans les résultats comme suit :

  • Nom d'entité d'une unité, représenté par e.entityName.
  • Nom de classe de l'unité, indiquant le fabricant et la famille de produit. Il est représenté par ec.className, où ec est l'alias utilisé pour désigner la classe entityClass.
  • Identificateur d'objet système pour ce périphérique, représenté par s.sysObjectId. (périphériques SNMP uniquement)
  • Type de périphérique, basé sur une recherche de l'identificateur d'objet système dans lemappingstable. Il est représenté par m.mappingValue.
5 Utilisez laentityDatacomme table de pilotage pour cette requête.
6 Limitez les résultats de la requête aux unités de noeud principal en joignant laphysicalChassisà la tableentityDatatable. Il y a désormais une ligne de données pour chaque unité de noeud principal. Utilisez une instruction INNER JOIN pour garantir que seules les entités étant des unités de noeud principal soient récupérées.
7 Pour les périphériques SNMP, déterminez l'ID d'objet système.
8 Déterminez la classe à laquelle appartient l'unité. C'est un processus en deux étapes. La première étape, indiquée dans cette ligne, consiste à utiliser une instruction INNER JOIN dans la table classMembers afin de récupérer la valeur classId pour la classe à laquelle appartient l'unité.
9 Utilisez le classId récupéré en ligne 7 comme recherche pour déterminer le nom de la classe à laquelle appartient l'unité. Pour cela, spécifiez une instruction INNER JOIN avec la table entityClass. La table entityClass contient les détails de la classe, incluant les noms de classe, le nom de la superclasse et la classe contenant dans la hiérarchie de classes.
10-11 Recherchez l'identificateur d'objet système dans la table mappings afin d'obtenir une chaîne lisible pour le type d'unité. Pour cela, effectuez une jointure sur la table mappings. Utilisez une instruction OUTER JOIN pour pouvoir effectuer cette jointure sans perdre aucune ligne de données de noeud principal. Si aucune chaîne n'existe pour un identificateur d'objet système particulier, l'instruction OUTER JOIN permet néanmoins de ne pas perdre la ligne de données pour l'unité de noeud principal associée à cet identificateur d'objet système.
12 Triez les résultats de la requête pour une lisibilité maximum. Pour cela, répertoriez d'abord les unités par fabricant et famille de produit (nom de classe) puis par modèle (identificateur d'objet système).

Résultats

Le tableau ci-dessous affiche une partie des résultats pour cette requête.

Tableau 2. Résultats de la requête

Nom de l'entité

Nom de classe

ID objet système

Type de périphérique

192.168.15.23 3ComSuperStack
1.3.6.1.4.1.43.10.27.4.1.2.2
3Com SuperStack II
192.168.15.7 3ComSuperStack 1.3.6.1.4.1.43.10.27.4.1.2.2 3Com SuperStack II
172.20.4.16 Cisco26xx 1.3.6.1.4.1.9.1.185 cisco2610
10.1.1.8 Cisco26xx 1.3.6.1.4.1.9.1.186 cisco2611
10.1.1.9 Cisco26xx 1.3.6.1.4.1.9.1.209 cisco2621
172.20.4.15 Cisco36xx 1.3.6.1.4.1.9.1.122 cisco3620
10.1.254.1 Cisco72xx 1.3.6.1.4.1.9.1.222 cisco7206VXR
172.18.1.151 CiscoCat35xx 1.3.6.1.4.1.9.1.247 catalyst3512XL
172.18.1.203 CiscoCat35xx 1.3.6.1.4.1.9.1.248 catalyst3524XL
172.20.1.41 HuaweiARxx 1.3.6.1.4.1.2011.1.1.1.12809 NULL
10.1.1.5 MarconiASX 1.3.6.1.4.1.326.2.2.5 NULL
192.168.32.13 Sun 1.3.6.1.4.1.42 NULL
192.168.34.199 Sun 1.3.6.1.4.1.42.2.1.1 SunMicrosystemsServers
192.168.15.4 Windows 1.3.6.1.4.1.311.1.1.3.1.2 MicrosoftWindowsServer