Report für Patching Plan erstellen
-
Hallo zusammen,
ich habe wieder mal eine Bastelaufgabe speziell für die SQL Experten unter euch:
Ich möchte einen Report erstellen, der mir quasi einen Patching Plan für einen oder mehrere Switches auswirft. Enthalten sein soll klarerweise die Liste der angelegten Ports u8nd dazu jeweils der Name des angeschlossenen Gerätes (General -> Title) und die damit verbundene MAC Adresse.
Manche Endgeräte haben mehere Ports und mehrere MAC Adressen. Es wäre dann immer nur die primäre MAC Adresse aufzuführen.
Wenn das ginge wäre mir sehr geholfen! Vielen Dank für eure Unterstützung!
LG
MaM -
Hallo MaM,
hast Du mal mit dem Abfrage Editor versucht, eine solche Abfrage zu erstellen?
War mit ein paar Klicks erledigt:
https://demo.i-doit.com/index.php?moduleID=1004&treeNode=10042&rpID=3&mNavID=2&reportID=18Woher bekommst Du bei den Endgeraeten die Information zur primaeren MAC Adresse?
Ist es die, welche tatsaechlich mit dem Switch verbunden ist?
Vgl. im Demo Report die MAC Adressen von backup001, da ist nur der Port mit der MAC 01 am Ende verbunden, es werden aber trotzdem alle MACs dargestellt (weil die Abfrage das so verlangt).Gruss,
jkondek -
Hallo,
Eine Abfrage zum der "Patching Plan" habe ich bei mir auch erstellt und ich bin bei folgendem Problem hängen geblieben:
Wenn auch das Engerät mehrere Ports hat, dann entsteht pro Port am Endgerät eine Zeile im Report. Ich hätte aber nur gerne eine Zeile pro Switchport - und zwar entweder den Port, die mit dem Switch verbunden ist (das wäre die sauberste Lösung), oder den als primär gekennzeichnete Port (das wäre ein Workaround, der machbar wäre).
LG
MaM -
Hallo MaM,
damit sollte es gehen (die sauberste Loesung):
SELECT
j1.isys_obj__title AS Switch,
j2.isys_catg_port_list__title AS "Switch Port",
j4.isys_obj__title AS "Verbunden mit",
j5.isys_catg_port_list__title AS "Server Port",
j5.isys_catg_port_list__mac AS "MAC Adresse"FROM isys_obj AS j1
LEFT JOIN isys_catg_port_list AS j2
ON j2.isys_catg_port_list__isys_obj__id = j1.isys_obj__idLEFT JOIN isys_catg_connector_list AS j3
ON j3.isys_catg_connector_list__id = j2.isys_catg_port_list__isys_catg_connector_list__idLEFT JOIN isys_catg_relation_list
ON isys_catg_relation_list__id = j3.isys_catg_connector_list__isys_catg_relation_list__idLEFT JOIN isys_obj AS j4
ON j4.isys_obj__id = isys_catg_relation_list__isys_obj__id__slaveLEFT JOIN isys_catg_port_list AS j5
ON j5.isys_catg_port_list__isys_obj__id = j4.isys_obj__idLEFT JOIN isys_catg_connector_list AS j6
ON j6.isys_catg_connector_list__id = j5.isys_catg_port_list__isys_catg_connector_list__idWHERE TRUE
AND j1.isys_obj__isys_obj_type__id = 6
AND isys_catg_relation_list__isys_obj__id__master = j1.isys_obj__id
AND j6.isys_catg_connector_list__isys_catg_relation_list__id IS NOT NULLGruss,
jkondek -
Hallo nochmal,
ich hab dieses SQL Statement ausprobiert (und auch viele Varianten, die ich daraus abgeleitet habe), allerdings habe ich dabei immer noch ein Problem. Wenn ich an beiden "Seiten" Geräte mit mehreren Netzwerkports habe (z.B. ein 24er Swtich und ein Server mit 8 Netzwerkports), dann gibt mir der Report für jeden Port an jedem Gerät eine Zeile aus. In dem vorhin genannten Beispiel, würde der Report für den einen Switchport, der mit dem Server verbunden ist 8 Zeilen ausgeben.
Ich hätte aber gerne, dass er nur tatsächlich verbundene Ports ausgibt (es soll ja letztendlich ein Patchplan sein, der alle Ports eines Geräts auflistet und mit welchem Gerät und an welchem Port sie dort verbunden sind.
Ich denke, dass es an den letzten Joins liegt, weil da ja zum verbundenen Objekt (j4) alle Ports hinzugefügt werden, oder nicht?Jedenfalls wäre ich sehr dankbar, wenn jemand mir noch einen Hinweis geben könnte, damit ich endlich meinen Patchplan automatisch aus i-doit ausgeben lassen kann.
Viele Grüße,
MaM