Zum Hauptinhalt springen

ServiceNow-Integration

Die ServiceNow-Integration (Admin > Einstellungen > ServiceNow) ermöglicht eine bidirektionale Synchronisation zwischen Canopy und Ihrem ServiceNow CMDB. Dieses Handbuch behandelt alles von der Ersteinrichtung über fortgeschrittene Rezepte bis hin zu operativen Best Practices.

ServiceNow-Integration

Warum ServiceNow mit Canopy integrieren?

ServiceNow CMDB und Enterprise Architecture-Werkzeuge dienen unterschiedlichen, aber sich ergänzenden Zwecken:

ServiceNow CMDBCanopy
FokusIT-Betrieb — was läuft, wem gehört es, welche Incidents gab esStrategische Planung — wie soll die Landschaft in 3 Jahren aussehen?
Gepflegt vonIT-Betrieb, Asset ManagementEA-Team, Business-Architekten
StärkeAutomatische Erkennung, ITSM-Workflows, operative GenauigkeitGeschäftskontext, Fähigkeitszuordnung, Lebenszyklusplanung, Beurteilungen
Typische DatenHostnamen, IPs, Installationsstatus, Zuweisungsgruppen, VerträgeGeschäftskritikalität, funktionale Eignung, technische Schulden, strategische Roadmap

Canopy ist das führende System für Ihre Architekturlandschaft — Namen, Beschreibungen, Lebenszykluspläne, Beurteilungen und Geschäftskontext befinden sich alle hier. ServiceNow ergänzt Canopy mit operativen und technischen Metadaten (Hostnamen, IPs, SLA-Daten, Installationsstatus), die aus automatischer Erkennung und ITSM-Workflows stammen. Die Integration hält diese beiden Systeme verbunden und respektiert dabei, dass Canopy führt.

Was Sie tun können

  • Pull-Synchronisation — Canopy mit CIs aus ServiceNow befüllen, dann die Verantwortung übernehmen. Laufende Pulls aktualisieren nur operative Felder (IPs, Status, SLAs), die SNOW automatisch erkennt
  • Push-Synchronisation — Von EA kuratierte Daten zurück an ServiceNow exportieren (Namen, Beschreibungen, Beurteilungen, Lebenszykluspläne), damit ITSM-Teams EA-Kontext sehen
  • Bidirektionale Synchronisation — Canopy führt die meisten Felder; SNOW führt eine kleine Menge operativer/technischer Felder. Beide Systeme bleiben synchron
  • Identitätszuordnung — Persistente Kreuzreferenzverfolgung (sys_id <-> Karten-UUID) stellt sicher, dass Datensätze über Synchronisationen hinweg verknüpft bleiben

Integrationsarchitektur

+------------------+ HTTPS / Table API +------------------+
| Canopy | <--------------------------------> | ServiceNow |
| | | |
| Karten | Pull: SNOW CIs -> Turbo-Karten | CMDB CIs |
| (Application, | Push: Turbo-Karten -> SNOW CIs | (cmdb_ci_appl, |
| ITComponent, | | cmdb_ci_server, |
| Provider, ...) | Identity Map verfolgt sys_id &lt;-> UUID | core_company) |
+------------------+ +------------------+

Die Integration nutzt die Table API von ServiceNow über HTTPS. Anmeldedaten werden im Ruhezustand mit Fernet (AES-128-CBC), abgeleitet von Ihrem SECRET_KEY, verschlüsselt. Alle Synchronisationsoperationen werden als Events mit source: "servicenow_sync" protokolliert für eine vollständige Audit-Spur.


Planung Ihrer Integration

Bevor Sie etwas konfigurieren, beantworten Sie diese Fragen:

1. Welche Kartentypen benötigen Daten aus ServiceNow?

Fangen Sie klein an. Die häufigsten Integrationspunkte sind:

PrioritätCanopy-TypServiceNow-QuelleWarum
HochApplicationcmdb_ci_business_appAnwendungen sind der Kern von EA — CMDB hat autoritative Namen, Eigentümer und Status
HochITComponent (Software)cmdb_ci_spkgSoftwareprodukte fließen in EOL-Tracking und Tech-Radar ein
MittelITComponent (Hardware)cmdb_ci_serverServerlandschaft für Infrastrukturabbildung
MittelProvidercore_companyAnbieterregister für Kosten- und Beziehungsmanagement
NiedrigInterfacecmdb_ci_endpointIntegrationsendpunkte (oft manuell in EA gepflegt)
NiedrigDataObjectcmdb_ci_databaseDatenbankinstanzen

2. Welches System ist die Quelle der Wahrheit für jedes Feld?

Dies ist die wichtigste Entscheidung. Der Standard sollte sein Canopy führt — das EA-Werkzeug ist das führende System für Ihre Architekturlandschaft. ServiceNow sollte nur für eine enge Menge operativer und technischer Felder führen, die aus automatischer Erkennung oder ITSM-Workflows stammen. Alles andere — Namen, Beschreibungen, Beurteilungen, Lebenszyklusplanung, Kosten — wird vom EA-Team in Canopy gepflegt und kuratiert.

Empfohlenes Modell — «Canopy führt, SNOW ergänzt»:

FeldtypQuelle der WahrheitWarum
Namen und BeschreibungenTurbo führtEA-Team kuratiert autoritative Namen und schreibt strategische Beschreibungen; CMDB-Namen können unordentlich oder automatisch generiert sein
GeschäftskritikalitätTurbo führtStrategische Bewertung des EA-Teams — keine operativen Daten
Funktionale/technische EignungTurbo führtTIME-Modell-Bewertungen sind eine EA-Angelegenheit
Lebenszyklus (alle Phasen)Turbo führtPlan, Einführung, Aktiv, Auslauf, Lebensende — alles EA-Planungsdaten
KostendatenTurbo führtEA verfolgt die Gesamtbetriebskosten; CMDB kann Vertragsposten haben, aber EA besitzt die konsolidierte Ansicht
Hosting-Typ, KategorieTurbo führtEA klassifiziert Anwendungen nach Hosting-Modell für strategische Analyse
Technische MetadatenSNOW führtIPs, OS-Versionen, Hostnamen, Seriennummern — automatische Erkennungsdaten, die EA nicht pflegt
SLA / operativer StatusSNOW führtInstallationsstatus, SLA-Ziele, Verfügbarkeitsmetriken — operative ITSM-Daten
Zuweisungsgruppe / SupportSNOW führtOperative Zuständigkeit, die in ServiceNow-Workflows verfolgt wird
ErkennungsdatenSNOW führtZuerst/zuletzt erkannt, letzter Scan — CMDB-Automatisierungs-Metadaten

3. Wie oft sollten Sie synchronisieren?

SzenarioHäufigkeitHinweise
ErstimportEinmaligAdditiver Modus, sorgfältig prüfen
Aktive LandschaftspflegeTäglichAutomatisiert per Cron außerhalb der Hauptzeiten
Compliance-BerichterstattungWöchentlichVor der Berichtserstellung
Ad-hocNach BedarfVor wichtigen EA-Reviews oder Präsentationen

Schritt 1: ServiceNow-Voraussetzungen

Service-Konto erstellen

Erstellen Sie in ServiceNow ein dediziertes Service-Konto (verwenden Sie nie persönliche Konten):

RolleZweckErforderlich?
itilLesezugriff auf CMDB-TabellenJa
cmdb_readConfiguration Items lesenJa
rest_api_explorerHilfreich zum Testen von AbfragenEmpfohlen
import_adminSchreibzugriff auf ZieltabellenNur für Push-Synchronisation

Best Practice: Erstellen Sie eine benutzerdefinierte Rolle mit Nur-Lese-Zugriff auf nur die spezifischen Tabellen, die Sie synchronisieren möchten. Die itil-Rolle ist breit gefasst — eine benutzerdefinierte, eingegrenzte Rolle begrenzt den Wirkungsradius.

Netzwerkanforderungen

  • Das Canopy-Backend muss Ihre SNOW-Instanz über HTTPS (Port 443) erreichen
  • Konfigurieren Sie Firewall-Regeln und IP-Allowlists
  • Instanz-URL-Format: https://unternehmen.service-now.com oder https://unternehmen.servicenowservices.com

Authentifizierungsmethode wählen

MethodeVorteileNachteileEmpfehlung
Basic AuthEinfache EinrichtungAnmeldedaten bei jeder Anfrage gesendetNur für Entwicklung/Tests
OAuth 2.0Token-basiert, eingegrenzt, audit-freundlichMehr EinrichtungsschritteEmpfohlen für Produktion

Für OAuth 2.0:

  1. In ServiceNow: System OAuth > Application Registry
  2. Erstellen Sie einen neuen OAuth API-Endpunkt für externe Clients
  3. Notieren Sie Client-ID und Client-Secret
  4. Rotieren Sie Geheimnisse im 90-Tage-Zyklus

Schritt 2: Verbindung erstellen

Navigieren Sie zu Admin > ServiceNow > Verbindungen-Tab.

Erstellen und Testen

  1. Klicken Sie auf Verbindung hinzufügen
  2. Füllen Sie aus:
FeldBeispielwertHinweise
NameProduktions-CMDBBeschreibende Bezeichnung für Ihr Team
Instanz-URLhttps://unternehmen.service-now.comMuss HTTPS verwenden
Auth-TypBasic Auth oder OAuth 2.0OAuth für Produktion empfohlen
Anmeldedaten(je nach Auth-Typ)Verschlüsselt gespeichert via Fernet
  1. Klicken Sie auf Erstellen, dann klicken Sie auf das Testsymbol (WLAN-Symbol), um die Konnektivität zu überprüfen
  • Grüner «Verbunden»-Chip — Bereit
  • Roter «Fehlgeschlagen»-Chip — Überprüfen Sie Anmeldedaten, Netzwerk und URL

Mehrere Verbindungen

Sie können mehrere Verbindungen erstellen für:

  • Produktions- vs. Entwicklungs-Instanzen
  • Regionale SNOW-Instanzen (z.B. EMEA, APAC)
  • Verschiedene Teams mit separaten Service-Konten

Jede Zuordnung referenziert eine bestimmte Verbindung.


Schritt 3: Zuordnungen gestalten

Wechseln Sie zum Zuordnungen-Tab. Eine Zuordnung verbindet einen Canopy-Kartentyp mit einer ServiceNow-Tabelle.

Eine Zuordnung erstellen

Klicken Sie auf Zuordnung hinzufügen und konfigurieren Sie:

FeldBeschreibungBeispiel
VerbindungWelche ServiceNow-Instanz verwendet werden sollProduktions-CMDB
KartentypDer zu synchronisierende Canopy-KartentypApplication
SNOW-TabelleDer API-Name der ServiceNow-Tabellecmdb_ci_business_app
SynchronisationsrichtungWelche Operationen verfügbar sind (siehe unten)ServiceNow -> Canopy
SynchronisationsmodusWie mit Löschungen umgegangen wirdKonservativ
Max. LöschquoteSicherheitsschwelle für Massenlöschungen50%
FilterabfrageServiceNow Encoded Query zur Eingrenzungactive=true^install_status=1
Staging überspringenÄnderungen direkt ohne Überprüfung anwendenAus (empfohlen für erste Synchronisation)

Gängige SNOW-Tabellenzuordnungen

Canopy-TypServiceNow-TabelleBeschreibung
Applicationcmdb_ci_business_appGeschäftsanwendungen (am häufigsten)
Applicationcmdb_ci_applAllgemeine Anwendungs-CIs
ITComponent (Software)cmdb_ci_spkgSoftwarepakete
ITComponent (Hardware)cmdb_ci_serverPhysische/virtuelle Server
ITComponent (SaaS)cmdb_ci_cloud_service_accountCloud-Service-Konten
Providercore_companyAnbieter / Unternehmen
Interfacecmdb_ci_endpointIntegrationsendpunkte
DataObjectcmdb_ci_databaseDatenbankinstanzen
Systemcmdb_ci_computerComputer-CIs
Organizationcmn_departmentAbteilungen

Filterabfrage-Beispiele

Filtern Sie immer, um den Import veralteter oder stillgelegter Datensätze zu vermeiden:

# Nur aktive CIs (empfohlener Mindestfilter)
active=true

# Aktive CIs mit Installationsstatus "Installiert"
active=true^install_status=1

# Anwendungen in Produktivnutzung
active=true^used_for=Production

# CIs, die in den letzten 30 Tagen aktualisiert wurden
active=true^sys_updated_on>=javascript:gs.daysAgoStart(30)

# Bestimmte Zuweisungsgruppe
active=true^assignment_group.name=IT Operations

# Stillgelegte CIs ausschließen
active=true^install_statusNOT IN7,8

Best Practice: Schließen Sie mindestens active=true immer ein. CMDB-Tabellen enthalten oft Tausende von stillgelegten oder außer Betrieb genommenen Datensätzen, die nicht in Ihre EA-Landschaft importiert werden sollten.


Schritt 4: Feldzuordnungen konfigurieren

Jede Zuordnung enthält Feldzuordnungen, die definieren, wie einzelne Felder zwischen den beiden Systemen übersetzt werden. Das Canopy-Feld-Eingabefeld bietet Autovervollständigungsvorschläge basierend auf dem ausgewählten Kartentyp — einschließlich Kernfeldern, Lebenszyklus-Daten und allen benutzerdefinierten Attributen aus dem Typschema.

Felder hinzufügen

Für jede Feldzuordnung konfigurieren Sie:

EinstellungBeschreibung
Canopy-FeldFeldpfad in Canopy (Autovervollständigung schlägt Optionen basierend auf dem Kartentyp vor)
SNOW-FeldAPI-Name der ServiceNow-Spalte (z.B. name, short_description)
RichtungPro-Feld-Quelle der Wahrheit: SNOW führt oder Turbo führt
TransformationWie Werte konvertiert werden: Direkt, Wertzuordnung, Datum, Boolean
Identität (ID-Checkbox)Wird zum Abgleich von Datensätzen bei der Erstsynchronisation verwendet

Canopy-Feldpfade

Die Autovervollständigung gruppiert Felder nach Abschnitt. Hier die vollständige Pfadreferenz:

PfadZielBeispielwert
nameKarten-Anzeigename"SAP S/4HANA"
descriptionKartenbeschreibung"Kern-ERP-System für Finanzen"
lifecycle.planLebenszyklus: Planungsdatum"2024-01-15"
lifecycle.phaseInLebenszyklus: Einführungsdatum"2024-03-01"
lifecycle.activeLebenszyklus: Aktivdatum"2024-06-01"
lifecycle.phaseOutLebenszyklus: Auslaufdatum"2028-12-31"
lifecycle.endOfLifeLebenszyklus: Lebensenddatum"2029-06-30"
attributes.<schlüssel>Beliebiges benutzerdefiniertes Attribut aus dem Feldschemata des KartentypsVariiert je nach Feldtyp

Wenn Ihr Application-Typ beispielsweise ein Feld mit dem Schlüssel businessCriticality hat, wählen Sie attributes.businessCriticality aus dem Dropdown.

Identitätsfelder — Wie der Abgleich funktioniert

Markieren Sie ein oder mehrere Felder als Identität (Schlüsselsymbol). Diese werden bei der ersten Synchronisation verwendet, um ServiceNow-Datensätze mit bestehenden Canopy-Karten abzugleichen:

  1. Identity-Map-Suche — Wenn eine sys_id <-> Karten-UUID-Verknüpfung bereits existiert, wird sie verwendet
  2. Exakter Namensabgleich — Abgleich über den Identitätsfeldwert (z.B. Abgleich nach Anwendungsname)
  3. Fuzzy-Abgleich — Wenn kein exakter Treffer, wird SequenceMatcher mit 85% Ähnlichkeitsschwelle verwendet

Best Practice: Markieren Sie immer das name-Feld als Identitätsfeld. Wenn sich Namen zwischen den Systemen unterscheiden (z.B. SNOW enthält Versionsnummern wie «SAP S/4HANA v2.1», aber Canopy hat «SAP S/4HANA»), bereinigen Sie diese vor der ersten Synchronisation für bessere Abgleichqualität.

Nach der ersten Synchronisation, die Identity-Map-Verknüpfungen erstellt, verwenden nachfolgende Synchronisationen die persistente Identity Map und verlassen sich nicht mehr auf Namensabgleich.


Schritt 5: Ihre erste Synchronisation ausführen

Wechseln Sie zum Synchronisations-Dashboard-Tab.

Eine Synchronisation auslösen

Für jede aktive Zuordnung sehen Sie Pull- und/oder Push-Schaltflächen, abhängig von der konfigurierten Synchronisationsrichtung:

  • Pull (Cloud-Download-Symbol) — Ruft Daten von SNOW in Canopy ab
  • Push (Cloud-Upload-Symbol) — Sendet Canopy-Daten an ServiceNow

Was während einer Pull-Synchronisation passiert

1. ABRUFEN Alle passenden Datensätze aus SNOW abrufen (Batches von 500)
2. ABGLEICH Jeden Datensatz mit einer bestehenden Karte abgleichen:
a) Identity Map (persistenter sys_id &lt;-> Karten-UUID-Lookup)
b) Exakter Namensabgleich über Identitätsfelder
c) Fuzzy-Namensabgleich (85% Ähnlichkeitsschwelle)
3. TRANSFORM Feldzuordnungen anwenden, um SNOW -> Canopy-Format zu konvertieren
4. DIFF Transformierte Daten mit bestehenden Kartenfeldern vergleichen
5. STAGING Jedem Datensatz eine Aktion zuweisen:
- erstellen: Neu, keine passende Karte gefunden
- aktualisieren: Treffer gefunden, Felder unterscheiden sich
- überspringen: Treffer gefunden, keine Unterschiede
- löschen: In Identity Map, aber in SNOW abwesend
6. ANWENDEN Staging-Aktionen ausführen (Karten erstellen/aktualisieren/archivieren)

Wenn Staging überspringen aktiviert ist, verschmelzen die Schritte 5 und 6 — Aktionen werden direkt ohne Staging-Datensätze angewendet.

Synchronisationsergebnisse überprüfen

Die Synchronisationshistorie-Tabelle zeigt nach jedem Lauf:

SpalteBeschreibung
GestartetWann die Synchronisation begann
RichtungPull oder Push
Statusabgeschlossen, fehlgeschlagen oder laufend
AbgerufenInsgesamt von ServiceNow abgerufene Datensätze
ErstelltNeue Karten in Canopy erstellt
AktualisiertBestehende Karten aktualisiert
GelöschtKarten archiviert (weich gelöscht)
FehlerDatensätze, die nicht verarbeitet werden konnten
DauerGesamtlaufzeit

Klicken Sie auf das Listensymbol bei einem beliebigen Lauf, um einzelne Staging-Datensätze zu inspizieren, einschließlich des feldweisen Diffs für jede Aktualisierung.

Empfohlenes Vorgehen für die erste Synchronisation

1. Zuordnung auf ADDITIV-Modus mit Staging EIN setzen
2. Pull-Synchronisation ausführen
3. Staging-Datensätze überprüfen — prüfen, ob Erstellungen korrekt aussehen
4. Zum Inventar gehen, importierte Karten überprüfen
5. Feldzuordnungen oder Filterabfrage bei Bedarf anpassen
6. Erneut ausführen bis zufriedenstellend
7. Auf KONSERVATIV-Modus für den laufenden Betrieb umstellen
8. Nach mehreren erfolgreichen Läufen Staging überspringen aktivieren

Synchronisationsrichtung vs. Feldrichtung verstehen

Dies ist das am häufigsten missverstandene Konzept. Es gibt zwei Richtungsebenen, die zusammenwirken:

Tabellenebene: Synchronisationsrichtung

Auf der Zuordnung selbst festgelegt. Steuert, welche Synchronisationsoperationen verfügbar sind im Synchronisations-Dashboard:

SynchronisationsrichtungPull-Schaltfläche?Push-Schaltfläche?Verwenden wenn...
ServiceNow -> CanopyJaNeinCMDB ist die Hauptquelle, Sie importieren nur
Canopy -> ServiceNowNeinJaEA-Werkzeug bereichert CMDB mit Beurteilungen
BidirektionalJaJaBeide Systeme tragen verschiedene Felder bei

Feldebene: Richtung

Pro Feldzuordnung festgelegt. Steuert, welcher Systemwert gewinnt während eines Synchronisationslaufs:

FeldrichtungWährend Pull (SNOW -> Turbo)Während Push (Turbo -> SNOW)
SNOW führtWert wird aus ServiceNow importiertWert wird übersprungen (nicht gepusht)
Turbo führtWert wird übersprungen (nicht überschrieben)Wert wird nach ServiceNow exportiert

Wie sie zusammenwirken — Beispiel

Zuordnung: Application <-> cmdb_ci_business_app, Bidirektional

FeldRichtungPull macht...Push macht...
nameTurbo führtÜberspringt (EA kuratiert Namen)Pusht EA-Name -> SNOW
descriptionTurbo führtÜberspringt (EA schreibt Beschreibungen)Pusht Beschreibung -> SNOW
lifecycle.activeTurbo führtÜberspringt (EA verwaltet Lebenszyklus)Pusht Go-Live-Datum -> SNOW
attributes.businessCriticalityTurbo führtÜberspringt (EA-Beurteilung)Pusht Beurteilung -> SNOW-Custom-Feld
attributes.ipAddressSNOW führtImportiert IP aus ErkennungÜberspringt (operative Daten)
attributes.installStatusSNOW führtImportiert operativen StatusÜberspringt (ITSM-Daten)

Wesentliche Erkenntnis: Die Richtung auf Tabellenebene bestimmt, welche Schaltflächen erscheinen. Die Richtung auf Feldebene bestimmt, welche Felder tatsächlich übertragen werden bei jeder Operation. Eine bidirektionale Zuordnung, bei der Canopy die meisten Felder führt und SNOW nur operative/technische Felder führt, ist die leistungsfähigste Konfiguration.

Best Practice: Feldrichtung nach Datentyp

Der Standard sollte Turbo führt für die überwiegende Mehrheit der Felder sein. Setzen Sie SNOW führt nur für operative und technische Metadaten, die aus automatischer Erkennung oder ITSM-Workflows stammen.

DatenkategorieEmpfohlene RichtungBegründung
Namen, AnzeigebezeichnungenTurbo führtEA-Team kuratiert autoritative, saubere Namen — CMDB-Namen sind oft automatisch generiert oder inkonsistent
BeschreibungTurbo führtEA-Beschreibungen erfassen strategischen Kontext, Geschäftswert und architektonische Bedeutung
Geschäftskritikalität (TIME-Modell)Turbo führtKernbewertung der EA — keine operativen Daten
Funktionale/technische EignungTurbo führtEA-spezifische Bewertung und Roadmap-Klassifizierung
Lebenszyklus (alle Phasen)Turbo führtPlanung, Einführung, Aktiv, Auslauf, Lebensende sind alles EA-Planungsentscheidungen
KostendatenTurbo führtEA verfolgt Gesamtbetriebskosten und Budgetzuweisung
Hosting-Typ, KlassifizierungTurbo führtStrategische Kategorisierung durch Architekten gepflegt
Anbieter-/Provider-InformationenTurbo führtEA verwaltet Anbieterstrategie, Verträge und Risiko — SNOW hat möglicherweise einen Anbieternamen, aber EA besitzt die Beziehung
Technische Metadaten (OS, IP, Hostname)SNOW führtAutomatische Erkennungsdaten — EA pflegt das nicht
SLA-Ziele, VerfügbarkeitsmetrikenSNOW führtOperative Daten aus ITSM-Workflows
Installationsstatus, operativer ZustandSNOW führtCMDB verfolgt, ob ein CI installiert, stillgelegt usw. ist
Zuweisungsgruppe, Support-TeamSNOW führtOperative Zuständigkeit in ServiceNow verwaltet
Erkennungs-Metadaten (zuerst/zuletzt gesehen)SNOW führtCMDB-Automatisierungs-Zeitstempel

Staging überspringen — Wann verwenden

Standardmäßig folgen Pull-Synchronisationen einem Staging-dann-Anwenden-Workflow:

Abrufen -> Abgleich -> Transformation -> Diff -> STAGING -> Überprüfung -> ANWENDEN

Datensätze werden in eine Staging-Tabelle geschrieben, sodass Sie überprüfen können, was sich ändern wird, bevor Sie es anwenden. Dies ist im Synchronisations-Dashboard unter «Staging-Datensätze anzeigen» sichtbar.

Staging-überspringen-Modus

Wenn Sie Staging überspringen bei einer Zuordnung aktivieren, werden Datensätze direkt angewendet:

Abrufen -> Abgleich -> Transformation -> Diff -> DIREKT ANWENDEN

Keine Staging-Datensätze werden erstellt — Änderungen erfolgen sofort.

Staging (Standard)Staging überspringen
ÜberprüfungsschrittJa — Diffs vor dem Anwenden inspizierenNein — Änderungen werden sofort angewendet
Staging-Datensätze-TabelleWird mit Erstellen/Aktualisieren/Löschen-Einträgen befülltWird nicht befüllt
Audit-SpurStaging-Datensätze + Event-HistorieNur Event-Historie
LeistungEtwas langsamer (schreibt Staging-Zeilen)Etwas schneller
Rückgängig machenKann vor dem Anwenden abbrechenMuss manuell zurücksetzen

Wann welchen Modus verwenden

SzenarioEmpfehlung
Erstmaliger ImportStaging verwenden — Überprüfen, was erstellt wird, bevor es angewendet wird
Neue oder geänderte ZuordnungStaging verwenden — Überprüfen, dass Feldtransformationen korrekte Ausgabe erzeugen
Stabile, gut getestete ZuordnungStaging überspringen — Keine Notwendigkeit, jeden Lauf zu überprüfen
Automatisierte tägliche Synchronisationen (Cron)Staging überspringen — Unbeaufsichtigte Läufe können nicht auf Überprüfung warten
Großes CMDB (10.000+ CIs)Staging überspringen — Vermeidet das Erstellen Tausender Staging-Zeilen
Compliance-sensible UmgebungStaging verwenden — Vollständige Audit-Spur in der Staging-Tabelle beibehalten

Best Practice: Beginnen Sie mit aktiviertem Staging für Ihre ersten Synchronisationen. Sobald Sie sicher sind, dass die Zuordnung korrekte Ergebnisse liefert, aktivieren Sie Staging überspringen für automatisierte Läufe.


Synchronisationsmodi und Löschungssicherheit

Synchronisationsmodi

ModusErstelltAktualisiertLöschtAm besten für
AdditivJaJaNieErstimporte, risikoarme Umgebungen
KonservativJaJaNur durch Synchronisation erstellte KartenStandard für laufende Synchronisationen
StriktJaJaAlle verknüpften KartenVollständiger Spiegel des CMDB

Additiv entfernt nie Karten aus Canopy, was es zur sichersten Option für Erstimporte und Umgebungen macht, in denen Canopy Karten enthält, die nicht in ServiceNow vorhanden sind (manuell erstellte Karten, Karten aus anderen Quellen).

Konservativ (Standard) verfolgt, ob jede Karte ursprünglich vom Synchronisationsmotor erstellt wurde. Nur diese Karten können automatisch archiviert werden, wenn sie aus ServiceNow verschwinden. Manuell in Canopy erstellte oder aus anderen Quellen importierte Karten werden nie berührt.

Strikt archiviert jede verknüpfte Karte, deren entsprechendes ServiceNow CI nicht mehr in den Abfrageergebnissen erscheint, unabhängig davon, wer sie erstellt hat. Verwenden Sie dies nur, wenn ServiceNow die absolute Quelle der Wahrheit ist und Sie möchten, dass Canopy es exakt spiegelt.

Max. Löschquote — Sicherheitsnetz

Als Sicherheitsnetz überspringt der Motor alle Löschungen, wenn die Anzahl das konfigurierte Verhältnis übersteigt:

Löschungen / gesamt_verknüpft > max_löschquote -> ALLE LÖSCHUNGEN ÜBERSPRINGEN

Beispiel mit 10 verknüpften Datensätzen und 50%-Schwelle:

SzenarioLöschungenQuoteErgebnis
3 CIs normal entfernt3 / 10 = 30%Unter SchwelleLöschungen werden ausgeführt
6 CIs auf einmal entfernt6 / 10 = 60%Über SchwelleAlle Löschungen übersprungen
SNOW gibt leer zurück (Ausfall)10 / 10 = 100%Über SchwelleAlle Löschungen übersprungen

Dies verhindert katastrophalen Datenverlust durch Filterabfrage-Änderungen, temporäre ServiceNow-Ausfälle oder falsch konfigurierte Tabellennamen.

Best Practice: Halten Sie die Löschquote bei 50% oder niedriger für Tabellen mit weniger als 100 Datensätzen. Für große Tabellen (1.000+) können Sie sicher 25% einstellen.

Empfohlene Progression

Woche 1: ADDITIV-Modus, Staging EIN, manuell ausführen, jeden Datensatz überprüfen
Woche 2-4: KONSERVATIV-Modus, Staging EIN, täglich ausführen, Ergebnisse stichprobenartig prüfen
Monat 2+: KONSERVATIV-Modus, Staging AUS (überspringen), automatisierter täglicher Cron

Empfohlene Rezepte nach Typ

Rezept 1: Anwendungen aus CMDB (Am häufigsten)

Ziel: Die Anwendungslandschaft aus ServiceNow importieren, dann die Verantwortung für Namen, Beschreibungen, Beurteilungen und Lebenszyklus in Canopy übernehmen. SNOW führt nur operative Felder.

Zuordnung:

EinstellungWert
KartentypApplication
SNOW-Tabellecmdb_ci_business_app
RichtungBidirektional
ModusKonservativ
Filteractive=true^install_status=1

Feldzuordnungen:

Canopy-FeldSNOW-FeldRichtungTransformationID?
namenameTurbo führtDirektJa
descriptionshort_descriptionTurbo führtDirekt
lifecycle.activego_live_dateTurbo führtDatum
lifecycle.endOfLiferetirement_dateTurbo führtDatum
attributes.businessCriticalitybusines_criticalityTurbo führtWertzuordnung
attributes.hostingTypehosting_typeTurbo führtDirekt
attributes.installStatusinstall_statusSNOW führtDirekt
attributes.ipAddressip_addressSNOW führtDirekt

Wertzuordnungskonfiguration für businessCriticality:

{
"mapping": {
"1 - most critical": "missionCritical",
"2 - somewhat critical": "businessCritical",
"3 - less critical": "businessOperational",
"4 - not critical": "administrativeService"
}
}

Tipp für die erste Synchronisation: Beim allerersten Pull werden SNOW-Werte alle Felder befüllen (da Karten noch nicht existieren). Danach gehören Turbo-führt-Felder dem EA-Team — nachfolgende Pulls aktualisieren nur die operativen SNOW-führt-Felder (Installationsstatus, IP), während das EA-Team alles andere direkt in Canopy verwaltet.

Nach dem Import: Anwendungsnamen verfeinern, strategische Beschreibungen schreiben, Geschäftsfähigkeiten zuordnen, Beurteilungen der funktionalen/technischen Eignung hinzufügen und Lebenszyklusphasen setzen — all dies gehört nun Canopy und wird bei Push-Synchronisationen an ServiceNow zurückgesendet.


Rezept 2: IT-Komponenten (Server)

Ziel: Serverinfrastruktur für Infrastrukturabbildung und Abhängigkeitsanalyse importieren. Server sind operativer als Anwendungen, daher kommen mehr Felder von SNOW — aber Canopy führt weiterhin bei Namen und Beschreibungen.

Zuordnung:

EinstellungWert
KartentypITComponent
SNOW-Tabellecmdb_ci_server
RichtungBidirektional
ModusKonservativ
Filteractive=true^hardware_statusNOT IN6,7

Feldzuordnungen:

Canopy-FeldSNOW-FeldRichtungTransformationID?
namenameTurbo führtDirektJa
descriptionshort_descriptionTurbo führtDirekt
attributes.manufacturermanufacturer.nameTurbo führtDirekt
attributes.operatingSystemosSNOW führtDirekt
attributes.ipAddressip_addressSNOW führtDirekt
attributes.serialNumberserial_numberSNOW führtDirekt
attributes.hostnamehost_nameSNOW führtDirekt

Hinweis: Bei Servern kommen operative/Erkennungsfelder wie OS, IP, Seriennummer und Hostname natürlich aus SNOWs automatischer Erkennung. Aber das EA-Team besitzt weiterhin den Anzeigenamen (der sich vom Hostnamen unterscheiden kann) und die Beschreibung für strategischen Kontext.

Nach dem Import: IT-Komponenten mit Anwendungen über Beziehungen verknüpfen, was den Abhängigkeitsgraphen und Infrastrukturberichte speist.


Rezept 3: Softwareprodukte mit EOL-Tracking

Ziel: Softwareprodukte importieren und mit Canopys endoflife.date-Integration kombinieren. Canopy führt bei Namen, Beschreibungen und Anbieter — Version ist ein faktisches Feld, bei dem SNOW führen kann.

Zuordnung:

EinstellungWert
KartentypITComponent
SNOW-Tabellecmdb_ci_spkg
RichtungBidirektional
ModusKonservativ
Filteractive=true

Feldzuordnungen:

Canopy-FeldSNOW-FeldRichtungTransformationID?
namenameTurbo führtDirektJa
descriptionshort_descriptionTurbo führtDirekt
attributes.versionversionSNOW führtDirekt
attributes.vendormanufacturer.nameTurbo führtDirekt

Nach dem Import: Gehen Sie zu Admin > EOL und verwenden Sie die Massensuche, um importierte IT-Komponenten automatisch mit endoflife.date-Produkten abzugleichen. Dies gibt Ihnen automatisiertes EOL-Risiko-Tracking, das CMDB-Inventar mit öffentlichen Lebenszyklus-Daten kombiniert.


Rezept 4: Anbieter / Provider (Bidirektional)

Ziel: Das Anbieterregister synchron halten. Canopy besitzt Anbieternamen, Beschreibungen und strategischen Kontext. SNOW ergänzt operative Kontaktdaten.

Zuordnung:

EinstellungWert
KartentypProvider
SNOW-Tabellecore_company
RichtungBidirektional
ModusAdditiv
Filtervendor=true

Feldzuordnungen:

Canopy-FeldSNOW-FeldRichtungTransformationID?
namenameTurbo führtDirektJa
descriptionnotesTurbo führtDirekt
attributes.websitewebsiteTurbo führtDirekt
attributes.contactEmailemailSNOW führtDirekt

Warum Turbo bei den meisten Feldern führt: Das EA-Team kuratiert die Anbieterstrategie, verwaltet Beziehungen und verfolgt Risiken — dies umfasst den Anzeigenamen des Anbieters, die Beschreibung und die Web-Präsenz. SNOW führt nur bei operativen Kontaktdaten, die von Beschaffungs- oder Asset-Management-Teams aktualisiert werden können.


Rezept 5: EA-Beurteilungen an ServiceNow zurückpushen

Ziel: EA-spezifische Beurteilungen in ServiceNow-Custom-Felder exportieren, damit ITSM-Teams EA-Kontext sehen.

Zuordnung:

EinstellungWert
KartentypApplication
SNOW-Tabellecmdb_ci_business_app
RichtungCanopy -> ServiceNow
ModusAdditiv

Feldzuordnungen:

Canopy-FeldSNOW-FeldRichtungTransformationID?
namenameSNOW führtDirektJa
attributes.businessCriticalityu_ea_business_criticalityTurbo führtWertzuordnung
attributes.functionalSuitabilityu_ea_functional_fitTurbo führtWertzuordnung
attributes.technicalSuitabilityu_ea_technical_fitTurbo führtWertzuordnung

Wichtig: Push-Synchronisation zu Custom-Feldern (mit Präfix u_) erfordert, dass diese Spalten bereits in ServiceNow existieren. Arbeiten Sie mit Ihrem ServiceNow-Administrator zusammen, um sie vor der Konfiguration der Push-Zuordnung zu erstellen. Das Service-Konto benötigt die Rolle import_admin für Schreibzugriff.

Warum das wichtig ist: ITSM-Teams sehen EA-Beurteilungen direkt in ServiceNow-Incident-/Change-Workflows. Wenn eine «Mission Critical»-Anwendung einen Incident hat, können Prioritätseskalationsregeln den von EA bereitgestellten Kritikalitätswert verwenden.


Transformationstypen-Referenz

Direkt (Standard)

Übergibt den Wert unverändert. Verwenden Sie dies für Textfelder, die in beiden Systemen das gleiche Format haben.

Wertzuordnung

Übersetzt aufgezählte Werte zwischen Systemen. Konfigurieren Sie mit einer JSON-Zuordnung:

{
"mapping": {
"1": "missionCritical",
"2": "businessCritical",
"3": "businessOperational",
"4": "administrativeService"
}
}

Die Zuordnung kehrt sich automatisch um, wenn von Canopy nach ServiceNow gepusht wird. Zum Beispiel wird beim Push "missionCritical" zu "1".

Datumsformat

Kürzt ServiceNow-Datumszeitwerte (2024-06-15 14:30:00) auf nur das Datum (2024-06-15). Verwenden Sie dies für Lebenszyklusphasen-Daten, bei denen die Uhrzeit irrelevant ist.

Boolean

Konvertiert zwischen ServiceNow-String-Booleans ("true", "1", "yes") und nativen Booleans. Nützlich für Felder wie «is_virtual», «active» usw.


Sicherheits-Best-Practices

Anmeldedatenverwaltung

PraxisDetails
Verschlüsselung im RuhezustandAlle Anmeldedaten via Fernet (AES-128-CBC) verschlüsselt, abgeleitet vom SECRET_KEY. Wenn Sie SECRET_KEY rotieren, geben Sie alle ServiceNow-Anmeldedaten erneut ein.
Minimale BerechtigungErstellen Sie ein dediziertes SNOW-Service-Konto mit Nur-Lese-Zugriff auf spezifische Tabellen. Gewähren Sie nur Schreibzugriff bei Verwendung von Push-Synchronisation.
OAuth 2.0 bevorzugtBasic Auth sendet Anmeldedaten bei jedem API-Aufruf. OAuth verwendet kurzlebige Tokens mit Bereichsbeschränkungen.
Anmeldedaten-RotationPasswörter oder Client-Secrets alle 90 Tage rotieren.

Netzwerksicherheit

PraxisDetails
HTTPS erzwungenHTTP-URLs werden bei der Validierung abgelehnt. Alle Verbindungen müssen HTTPS verwenden.
Tabellennamen-ValidierungTabellennamen werden gegen ^[a-zA-Z0-9_]+$ validiert, um Injection zu verhindern.
sys_id-Validierungsys_id-Werte werden als 32-stellige Hex-Strings validiert.
IP-AllowlistingKonfigurieren Sie die ServiceNow IP Access Control so, dass nur die IP Ihres Canopy-Servers erlaubt ist.

Zugriffskontrolle

PraxisDetails
RBAC-geschütztLesende ServiceNow-Endpunkte erfordern die Berechtigung servicenow.view; alle Änderungen erfordern servicenow.manage.
Audit-SpurAlle durch Synchronisation erstellten Änderungen veröffentlichen Events mit source: "servicenow_sync", sichtbar in der Kartenhistorie.
Keine Anmeldedaten-OffenlegungPasswörter und Geheimnisse werden nie in API-Antworten zurückgegeben.

Produktions-Checkliste

  • Dediziertes ServiceNow-Service-Konto (kein persönliches Konto)
  • OAuth 2.0 mit Client-Credentials-Grant
  • Anmeldedaten-Rotationsplan (alle 90 Tage)
  • Service-Konto auf nur zugeordnete Tabellen beschränkt
  • ServiceNow-IP-Allowlist für Canopy-Server-IP konfiguriert
  • Max. Löschquote auf 50% oder niedriger eingestellt
  • Synchronisationsläufe auf ungewöhnliche Fehler- oder Löschungszahlen überwacht
  • Filterabfragen enthalten mindestens active=true

Operatives Runbook

Initiale Einrichtungssequenz

1. ServiceNow-Service-Konto mit minimal erforderlichen Rollen erstellen
2. Netzwerkkonnektivität überprüfen (kann Canopy SNOW über HTTPS erreichen?)
3. Verbindung in Canopy erstellen und testen
4. Überprüfen, dass Metamodell-Typen alle Felder haben, die Sie synchronisieren möchten
5. Erste Zuordnung mit ADDITIV-Modus erstellen, Staging EIN
6. Vorschau-Schaltfläche (via API) verwenden, um zu überprüfen, dass die Zuordnung korrekte Ausgabe erzeugt
7. Erste Pull-Synchronisation ausführen — Staging-Datensätze im Synchronisations-Dashboard überprüfen
8. Staging-Datensätze anwenden
9. Importierte Karten im Inventar überprüfen
10. Feldzuordnungen bei Bedarf anpassen, erneut ausführen
11. Zuordnung auf KONSERVATIV-Modus für laufenden Betrieb umstellen
12. Nach mehreren erfolgreichen Läufen Staging überspringen für Automatisierung aktivieren

Laufender Betrieb

AufgabeHäufigkeitWie
Pull-Synchronisation ausführenTäglich oder wöchentlichSynchronisations-Dashboard > Pull-Schaltfläche (oder Cron)
Synchronisationsstatistiken überprüfenNach jedem LaufFehler-/Löschungszahlen prüfen
Verbindungen testenMonatlichTest-Schaltfläche bei jeder Verbindung klicken
Anmeldedaten rotierenVierteljährlichSowohl in SNOW als auch in Canopy aktualisieren
Identity Map überprüfenVierteljährlichVerwaiste Einträge über Synchronisationsstatistiken prüfen
Kartenhistorie prüfenNach BedarfEvents nach servicenow_sync-Quelle filtern

Automatisierte Synchronisationen einrichten

Synchronisationen können per API für die Automatisierung ausgelöst werden:

# Tägliche Pull-Synchronisation um 2:00 Uhr
0 2 * * * curl -s -X POST \
-H "Authorization: Bearer $TURBOEA_TOKEN" \
"https://canopy.unternehmen.com/api/v1/servicenow/sync/pull/$MAPPING_ID" \
>> /var/log/canopy-sync.log 2>&1

Best Practice: Führen Sie Synchronisationen außerhalb der Hauptverkehrszeiten aus. Für große CMDB-Tabellen (10.000+ CIs) rechnen Sie mit 2-5 Minuten je nach Netzwerklatenz und Datensatzanzahl.

Kapazitätsplanung

CMDB-GrößeErwartete DauerEmpfehlung
< 500 CIs< 30 SekundenTäglich synchronisieren, Staging optional
500-5.000 CIs30s - 2 MinutenTäglich synchronisieren, Staging überspringen
5.000-20.000 CIs2-5 MinutenNächtlich synchronisieren, Staging überspringen
20.000+ CIs5-15 MinutenWöchentlich synchronisieren, Filterabfragen zum Aufteilen verwenden

Fehlerbehebung

Verbindungsprobleme

SymptomUrsacheLösung
Connection failed: [SSL]Selbstsigniertes oder abgelaufenes ZertifikatStellen Sie sicher, dass SNOW ein gültiges öffentliches CA-Zertifikat verwendet
HTTP 401: UnauthorizedFalsche AnmeldedatenBenutzername/Passwort erneut eingeben; prüfen, ob das Konto nicht gesperrt ist
HTTP 403: ForbiddenUnzureichende Rollenitil und cmdb_read dem Service-Konto gewähren
Connection failed: timed outFirewall-BlockRegeln prüfen; Canopys IP in SNOW auf die Allowlist setzen
Test OK aber Synchronisation schlägt fehlTabellenebene-BerechtigungenLesezugriff auf die spezifische CMDB-Tabelle gewähren

Synchronisationsprobleme

SymptomUrsacheLösung
0 Datensätze abgerufenFalsche Tabelle oder FilterTabellennamen überprüfen; Filterabfrage vereinfachen
Alle Datensätze sind «erstellen»Identitätsfehlername als Identität markieren; überprüfen, ob Namen zwischen den Systemen übereinstimmen
Hohe FehlerzahlTransformationsfehlerStaging-Datensätze auf Fehlermeldungen prüfen
Löschungen übersprungenQuote überschrittenSchwelle erhöhen oder untersuchen, warum CIs verschwunden sind
Änderungen nicht sichtbarBrowser-CacheHart aktualisieren; Kartenhistorie auf Events prüfen
Doppelte KartenMehrere Zuordnungen für denselben TypEine Zuordnung pro Kartentyp pro Verbindung verwenden
Push-Änderungen abgelehntFehlende SNOW-BerechtigungenRolle import_admin dem Service-Konto gewähren

Diagnosewerkzeuge

# Vorschau, wie Datensätze zugeordnet werden (5 Beispiele, keine Seiteneffekte)
POST /api/v1/servicenow/mappings/{mapping_id}/preview

# Tabellen auf der SNOW-Instanz durchsuchen
GET /api/v1/servicenow/connections/{conn_id}/tables?search=cmdb

# Spalten einer Tabelle inspizieren
GET /api/v1/servicenow/connections/{conn_id}/tables/cmdb_ci_business_app/fields

# Staging-Datensätze nach Aktion oder Status filtern
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=create
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=update
GET /api/v1/servicenow/sync/runs/{run_id}/staged?status=error

API-Referenz (Kurzfassung)

Alle Endpunkte erfordern Authorization: Bearer <token>. Lesende Endpunkte benötigen die Berechtigung servicenow.view, ändernde Endpunkte servicenow.manage. Basispfad: /api/v1.

Verbindungen

MethodePfadBeschreibung
GET/servicenow/connectionsVerbindungen auflisten
POST/servicenow/connectionsVerbindung erstellen
GET/servicenow/connections/{id}Verbindung abrufen
PATCH/servicenow/connections/{id}Verbindung aktualisieren
DELETE/servicenow/connections/{id}Verbindung + alle Zuordnungen löschen
POST/servicenow/connections/{id}/testKonnektivität testen
GET/servicenow/connections/{id}/tablesSNOW-Tabellen durchsuchen
GET/servicenow/connections/{id}/tables/{table}/fieldsTabellenspalten auflisten

Zuordnungen

MethodePfadBeschreibung
GET/servicenow/mappingsZuordnungen mit Feldzuordnungen auflisten
POST/servicenow/mappingsZuordnung mit Feldzuordnungen erstellen
GET/servicenow/mappings/{id}Zuordnung mit Feldzuordnungen abrufen
PATCH/servicenow/mappings/{id}Zuordnung aktualisieren (ersetzt Felder wenn angegeben)
DELETE/servicenow/mappings/{id}Zuordnung löschen
POST/servicenow/mappings/{id}/previewProbelauf-Vorschau (5 Beispiel-Datensätze)

Synchronisationsoperationen

MethodePfadBeschreibung
POST/servicenow/sync/pull/{mapping_id}Pull-Synchronisation (?auto_apply=true Standard)
POST/servicenow/sync/push/{mapping_id}Push-Synchronisation
GET/servicenow/sync/runsSynchronisationshistorie auflisten (?limit=20)
GET/servicenow/sync/runs/{id}Laufdetails + Statistiken abrufen
GET/servicenow/sync/runs/{id}/stagedStaging-Datensätze für einen Lauf auflisten
POST/servicenow/sync/runs/{id}/applyAusstehende Staging-Datensätze anwenden