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 :
| Numéros de ligne | Description |
|---|---|
| 1-4 | Indiquez les données à afficher dans les résultats comme suit :
|
| 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.
Nom de l'entité |
Nom de classe |
ID objet système |
Type de périphérique |
|---|---|---|---|
192.168.15.23 |
3ComSuperStack |
|
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 |