Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9143e0e58 | ||
|
|
3310732ba4 |
@@ -4,30 +4,45 @@
|
|||||||
BizTalk Server 2020 auf Windows Server 2019. Die Anwendung trennt den
|
BizTalk Server 2020 auf Windows Server 2019. Die Anwendung trennt den
|
||||||
berechtigten BizTalk-Datenzugriff vollstaendig vom Checkmk-Agenten:
|
berechtigten BizTalk-Datenzugriff vollstaendig vom Checkmk-Agenten:
|
||||||
|
|
||||||
```text
|

|
||||||
Scheduled Task (normales dediziertes Servicekonto)
|
|
||||||
|
|
|
||||||
| jede Minute: BizTalkCheckmkPulse.exe --collect
|
|
||||||
v
|
|
||||||
lokales BizTalk-WMI + BizTalk-SQL + Application Event Log
|
|
||||||
|
|
|
||||||
| atomarer, versionierter, SHA-256-geschuetzter Snapshot
|
|
||||||
v
|
|
||||||
%ProgramData%\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot
|
|
||||||
^
|
|
||||||
| nur lesen: BizTalkCheckmkPulse.exe --consume
|
|
||||||
|
|
|
||||||
Checkmk Windows Agent (LocalSystem)
|
|
||||||
|
|
|
||||||
v
|
|
||||||
neun kompakte Checkmk Local Checks
|
|
||||||
```
|
|
||||||
|
|
||||||
Damit bekommt `LocalSystem` keine BizTalk- oder SQL-Berechtigung. Nur das
|
Damit bekommt `LocalSystem` keine BizTalk- oder SQL-Berechtigung. Nur das
|
||||||
dedizierte Provider-Konto wird in die konfigurierte BizTalk Server Read Only
|
dedizierte Provider-Konto wird in die konfigurierte BizTalk Server Read Only
|
||||||
Users-Gruppe aufgenommen. Der Checkmk-Consumer liest keine BizTalk-Datenbank,
|
Users-Gruppe aufgenommen. Der Checkmk-Consumer liest keine BizTalk-Datenbank,
|
||||||
verwendet kein WMI und nimmt keine Identitaetswechsel vor.
|
verwendet kein WMI und nimmt keine Identitaetswechsel vor.
|
||||||
|
|
||||||
|
## Endpoint-Erreichbarkeitspruefung
|
||||||
|
|
||||||
|
Der Provider prueft die netzwerktechnische Erreichbarkeit der externen Ziele
|
||||||
|
aktiver BizTalk Send Ports und Receive Locations. Die Funktion ist im eigenen
|
||||||
|
Checkmk-Service `BizTalk Endpoint Reachability` zusammengefasst:
|
||||||
|
|
||||||
|
- Beruecksichtigt werden nur Send Ports mit `Status=Started` und Receive
|
||||||
|
Locations mit `IsDisabled=false`. Dynamische Send Ports werden nicht als
|
||||||
|
statisches Ziel interpretiert.
|
||||||
|
- Fehlt der lokale Endpoint-Katalog, wird er aus den bereits gelesenen
|
||||||
|
`MSBTS_SendPort`- und `MSBTS_ReceiveLocation`-Daten aufgebaut. Alle
|
||||||
|
168 Stunden erfolgt ein vollstaendiger Abgleich mit der BizTalk-Umgebung.
|
||||||
|
- HTTP(S), SFTP, FTP, WCF/`net.tcp` und UNC/SMB werden durch einen reinen
|
||||||
|
TCP-Verbindungsaufbau zu Host und Port geprueft. Explizite
|
||||||
|
`udp://host:port`-Ziele verwenden ein UDP-Datagramm.
|
||||||
|
- Es werden weder HTTP-Aufrufe noch Anmeldungen, fachliche Requests oder
|
||||||
|
BizTalk-Nachrichten gesendet. Der Check validiert DNS, Netzwerkpfad,
|
||||||
|
Firewall und bei TCP einen annehmenden Zielport, nicht die fachliche
|
||||||
|
Funktion des entfernten Dienstes.
|
||||||
|
- Im OK-Fall meldet Checkmk nur, dass alle aktiven Endpunkte erreichbar sind.
|
||||||
|
Bei einem Fehler werden ausschliesslich die nicht erreichbaren Endpunkte
|
||||||
|
ausgegeben; lange Listen sind begrenzt, die Metriken bleiben vollstaendig.
|
||||||
|
- Doppelte Protokoll-/Host-/Port-Ziele werden nur einmal verbunden. Mit den Defaults
|
||||||
|
benoetigen 70 vollstaendig timeoutende eindeutige Ziele theoretisch etwa
|
||||||
|
15 Sekunden; die harte Standardgrenze von 100 Zielen liegt bei etwa
|
||||||
|
21 Sekunden.
|
||||||
|
|
||||||
|
Der Checkmk-Agent fuehrt diese Netzwerkprobes nicht selbst aus. Er liest als
|
||||||
|
`LocalSystem` weiterhin ausschliesslich den validierten lokalen Snapshot.
|
||||||
|
Details zum Katalog und zu manuellen Overrides stehen in
|
||||||
|
[docs/EndpointCatalog.md](docs/EndpointCatalog.md).
|
||||||
|
|
||||||
## Warum die Architektur geaendert wurde
|
## Warum die Architektur geaendert wurde
|
||||||
|
|
||||||
Der ACC-Test vom 29.07.2026 zeigte:
|
Der ACC-Test vom 29.07.2026 zeigte:
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title description">
|
||||||
|
<title id="title">BizTalk Checkmk Pulse Architektur</title>
|
||||||
|
<desc id="description">Ein privilegierter Scheduled Task liest BizTalk-Daten und prueft aktive Endpunkte. Er schreibt einen validierten Snapshot, den der Checkmk-Agent als LocalSystem nur konsumiert.</desc>
|
||||||
|
<defs>
|
||||||
|
<marker id="arrow-blue" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
|
||||||
|
<path d="M0,0 L0,6 L9,3 z" fill="#2563eb"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="arrow-green" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
|
||||||
|
<path d="M0,0 L0,6 L9,3 z" fill="#059669"/>
|
||||||
|
</marker>
|
||||||
|
<filter id="shadow" x="-10%" y="-10%" width="120%" height="130%">
|
||||||
|
<feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#0f172a" flood-opacity="0.12"/>
|
||||||
|
</filter>
|
||||||
|
<style>
|
||||||
|
.title { font: 700 28px Arial, sans-serif; fill: #0f172a; }
|
||||||
|
.lane-title { font: 700 17px Arial, sans-serif; fill: #334155; }
|
||||||
|
.box-title { font: 700 17px Arial, sans-serif; fill: #0f172a; }
|
||||||
|
.box-text { font: 14px Arial, sans-serif; fill: #334155; }
|
||||||
|
.small { font: 13px Arial, sans-serif; fill: #475569; }
|
||||||
|
.label { font: 700 13px Arial, sans-serif; fill: #1e40af; }
|
||||||
|
.provider-box { fill: #ffffff; stroke: #2563eb; stroke-width: 2; }
|
||||||
|
.endpoint-box { fill: #ecfdf5; stroke: #059669; stroke-width: 2; }
|
||||||
|
.snapshot-box { fill: #fff7ed; stroke: #ea580c; stroke-width: 2; }
|
||||||
|
.consumer-box { fill: #ffffff; stroke: #64748b; stroke-width: 2; }
|
||||||
|
.blue-arrow { fill: none; stroke: #2563eb; stroke-width: 3; marker-end: url(#arrow-blue); }
|
||||||
|
.green-arrow { fill: none; stroke: #059669; stroke-width: 3; marker-end: url(#arrow-green); }
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect width="1200" height="720" rx="18" fill="#f8fafc"/>
|
||||||
|
<text x="60" y="52" class="title">BizTalk Checkmk Pulse</text>
|
||||||
|
<text x="60" y="78" class="small">Privilegierte Datenerfassung und unprivilegierter Checkmk-Consumer</text>
|
||||||
|
|
||||||
|
<rect x="35" y="105" width="1130" height="355" rx="18" fill="#eff6ff" stroke="#bfdbfe" stroke-width="2"/>
|
||||||
|
<text x="60" y="138" class="lane-title">Provider-Zone: dediziertes AD-Servicekonto</text>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="70" y="175" width="245" height="105" rx="14" class="provider-box"/>
|
||||||
|
<text x="192" y="207" text-anchor="middle" class="box-title">Scheduled Task</text>
|
||||||
|
<text x="192" y="232" text-anchor="middle" class="box-text">jede Minute, RunLevel Limited</text>
|
||||||
|
<text x="192" y="254" text-anchor="middle" class="box-text">IgnoreNew verhindert Ueberlappung</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="395" y="165" width="310" height="125" rx="14" class="provider-box"/>
|
||||||
|
<text x="550" y="198" text-anchor="middle" class="box-title">BizTalkCheckmkPulse --collect</text>
|
||||||
|
<text x="550" y="225" text-anchor="middle" class="box-text">BizTalk-WMI + BizTalk-SQL</text>
|
||||||
|
<text x="550" y="247" text-anchor="middle" class="box-text">Application Event Log</text>
|
||||||
|
<text x="550" y="269" text-anchor="middle" class="box-text">aktive Send-/Receive-Artefakte</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="795" y="165" width="330" height="125" rx="14" class="endpoint-box"/>
|
||||||
|
<text x="960" y="198" text-anchor="middle" class="box-title">Externe BizTalk-Endpunkte</text>
|
||||||
|
<text x="960" y="225" text-anchor="middle" class="box-text">TCP: HTTP(S), SFTP, FTP, WCF, SMB</text>
|
||||||
|
<text x="960" y="247" text-anchor="middle" class="box-text">UDP: explizite udp://-Ziele</text>
|
||||||
|
<text x="960" y="269" text-anchor="middle" class="box-text">nur Started / Enabled</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path d="M315 227 H385" class="blue-arrow"/>
|
||||||
|
<path d="M705 227 H785" class="green-arrow"/>
|
||||||
|
<text x="745" y="211" text-anchor="middle" class="label" fill="#047857">TCP / UDP</text>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="395" y="335" width="310" height="90" rx="14" class="snapshot-box"/>
|
||||||
|
<text x="550" y="367" text-anchor="middle" class="box-title">Validierter lokaler Snapshot</text>
|
||||||
|
<text x="550" y="392" text-anchor="middle" class="box-text">atomar + versioniert + SHA-256</text>
|
||||||
|
<text x="550" y="413" text-anchor="middle" class="small">Endpoint-Katalog und kompakte Checkmk-Daten</text>
|
||||||
|
</g>
|
||||||
|
<path d="M550 290 V325" class="blue-arrow"/>
|
||||||
|
<text x="565" y="316" class="label">schreiben</text>
|
||||||
|
|
||||||
|
<line x1="35" y1="485" x2="1165" y2="485" stroke="#94a3b8" stroke-width="2" stroke-dasharray="9 7"/>
|
||||||
|
<rect x="470" y="470" width="260" height="30" rx="15" fill="#f8fafc" stroke="#94a3b8"/>
|
||||||
|
<text x="600" y="490" text-anchor="middle" class="small">Berechtigungsgrenze</text>
|
||||||
|
|
||||||
|
<rect x="35" y="510" width="1130" height="175" rx="18" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
|
||||||
|
<text x="60" y="543" class="lane-title">Checkmk-Zone: LocalSystem ohne BizTalk-/SQL-Rechte</text>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="75" y="575" width="245" height="75" rx="14" class="consumer-box"/>
|
||||||
|
<text x="197" y="607" text-anchor="middle" class="box-title">Checkmk Windows Agent</text>
|
||||||
|
<text x="197" y="632" text-anchor="middle" class="box-text">LocalSystem</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="430" y="565" width="300" height="95" rx="14" class="consumer-box"/>
|
||||||
|
<text x="580" y="597" text-anchor="middle" class="box-title">--consume</text>
|
||||||
|
<text x="580" y="622" text-anchor="middle" class="box-text">liest nur den Snapshot</text>
|
||||||
|
<text x="580" y="643" text-anchor="middle" class="box-text">kein WMI, SQL oder Netzwerkzugriff</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g filter="url(#shadow)">
|
||||||
|
<rect x="840" y="575" width="285" height="75" rx="14" class="consumer-box"/>
|
||||||
|
<text x="982" y="607" text-anchor="middle" class="box-title">9 kompakte Local Checks</text>
|
||||||
|
<text x="982" y="632" text-anchor="middle" class="box-text">inkl. Endpoint Reachability</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path d="M320 612 H420" class="blue-arrow"/>
|
||||||
|
<path d="M730 612 H830" class="blue-arrow"/>
|
||||||
|
<path d="M705 380 H765 V545 H580 V555" class="blue-arrow"/>
|
||||||
|
<text x="775" y="463" class="label">nur lesen</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.1 KiB |
Reference in New Issue
Block a user