Änderungen von Dokument NATS - Technisches Setup
Zuletzt geändert von Daniel Herrmann am 2025/12/14 16:20
Von Version
9.2
bearbeitet von Daniel Herrmann
am 2025/09/20 09:59
am 2025/09/20 09:59
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version
20.1
bearbeitet von Daniel Herrmann
am 2025/12/14 16:18
am 2025/12/14 16:18
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
Details
- Seiteneigenschaften
-
- Titel
-
... ... @@ -1,1 +1,1 @@ 1 -NATS Setup 1 +NATS - Technisches Setup - Übergeordnete Seite
-
... ... @@ -1,0 +1,1 @@ 1 +PROJ.Digitale Mitgliederverwaltung.Technische Dokumentation.WebHome - Inhalt
-
... ... @@ -44,7 +44,7 @@ 44 44 45 45 == Authentifizierung == 46 46 47 -Die Kommunikation ist TLS verschlüsselt, es kommen die TLS Zertifikate aus [[HashiCorp KeyVault>>doc:xwiki:IN.IT Infrastruktur. KubernetesCluster.Hashicorp Vault.WebHome]] zum Einsatz. Diese werden dann einzelnen Accounts zugewiesen. Der NATS Server validiert das Zertifikat an Hand der Zertifikatskette und mapt dann die Zertifikatsinformationen zu einem User. Üblicherweise wird dabei ein SAN (Subject Alternative Name) in Form einer Mail-Adresse verwendet. Diese gibt es in unserem Fall nicht, sodass das Subject verwendet wird. Wichtig ist, dass das Subject in RFC2253 Form verwendet werden muss.47 +Die Kommunikation ist TLS verschlüsselt, es kommen die TLS Zertifikate aus [[HashiCorp KeyVault>>doc:xwiki:IN.IT Infrastruktur.Services.Hashicorp Vault.WebHome]] zum Einsatz. Diese werden dann einzelnen Accounts zugewiesen. Der NATS Server validiert das Zertifikat an Hand der Zertifikatskette und mapt dann die Zertifikatsinformationen zu einem User. Üblicherweise wird dabei ein SAN (Subject Alternative Name) in Form einer Mail-Adresse verwendet. Diese gibt es in unserem Fall nicht, sodass das Subject verwendet wird. Wichtig ist, dass das Subject in RFC2253 Form verwendet werden muss. 48 48 49 49 {{code language="shell"}} 50 50 $ openssl x509 -noout -text -nameopt RFC2253 -in backend.mksp-da.de.crt ... ... @@ -112,9 +112,9 @@ 112 112 Zur Administration bietet sich die Verwendung der [[NATS CLI >>url:https://github.com/nats-io/natscli||shape="rect"]]an. Diese muss einmalig eingerichtet werden, dafür sind die entsprechenden Zertifikatsdateien notwendig. Wir legen zwei Kontexte an, einen für den Cluster Admin, einen für den JetStream Admin: 113 113 114 114 {{code language="shell"}} 115 -nats context add mksp-sysadmin --server ds-hetzner.mksp-da.de:4222 --description "MKSP NATS SYS Admin" --tlscert /path/to/admin.mksp-da.de.crt --tlskey /path/to/admin.mksp-da.de.key --tlsca /path/to/mksp_root_x1_ca.crt115 +nats context add mksp-sysadmin --server nats.mksp-da.de:4222 --description "MKSP NATS SYS Admin" --tlscert /path/to/admin.mksp-da.de.crt --tlskey /path/to/admin.mksp-da.de.key --tlsca /path/to/mksp_root_x1_ca.crt 116 116 117 -nats context add mksp-jsadmin --server ds-hetzner.mksp-da.de:4222 --description "MKSP NATS JetStream" --tlscert /path/to/jsadmin.mksp-da.de.crt --tlskey /path/to/jsadmin.mksp-da.de.key --tlsca /path/to/mksp_root_x1_ca.crt117 +nats context add mksp-jsadmin --server nats.mksp-da.de:4222 --description "MKSP NATS JetStream" --tlscert /path/to/js-admin.mksp-da.de.crt --tlskey /path/to/js-admin.mksp-da.de.key --tlsca /path/to/mksp_root_x1_ca.crt 118 118 {{/code}} 119 119 120 120 Anschließend wählen wir den richtigen Kontext aus, in diesem Fall den JetStream Admin Context: ... ... @@ -150,9 +150,11 @@ 150 150 Schema 151 151 ))) 152 152 |((( 153 -{{code language="none"}} 154 154 mksp.backend.briefing.offer.cancelled 155 -{{/code}} 154 + 155 +((( 156 + 157 +))) 156 156 )))|((( 157 157 backend_briefing_offer_cancelled 158 158 )))|((( ... ... @@ -159,9 +159,11 @@ 159 159 (% class="nc" %)##BriefingOfferEvent## 160 160 ))) 161 161 |((( 162 -{{code language="none"}} 163 163 mksp.backend.briefing.offer.created 164 -{{/code}} 165 + 166 +((( 167 + 168 +))) 165 165 )))|((( 166 166 backend_briefing_offer_created 167 167 )))|((( ... ... @@ -168,7 +168,7 @@ 168 168 (% class="nc" %)##BriefingOfferEvent## 169 169 ))) 170 170 |((( 171 - (% class="s" %)##mksp.backend.briefing.offer.updated##175 +mksp.backend.briefing.offer.updated 172 172 )))|((( 173 173 backend_briefing_offer_updated 174 174 )))|((( ... ... @@ -175,9 +175,11 @@ 175 175 (% class="nc" %)##BriefingOfferEvent## 176 176 ))) 177 177 |((( 178 -{{code language="none"}} 179 179 mksp.backend.briefing.created 180 -{{/code}} 183 + 184 +((( 185 + 186 +))) 181 181 )))|((( 182 182 backend_briefing_created 183 183 )))|((( ... ... @@ -184,7 +184,7 @@ 184 184 (% class="n" %)##BriefingEvent## 185 185 ))) 186 186 |((( 187 - (% class="s" %)##mksp.backend.key.assigned##193 +mksp.backend.key.assigned 188 188 )))|((( 189 189 backend_key_assigned 190 190 )))|((( ... ... @@ -191,7 +191,7 @@ 191 191 (% class="nc" %)##KeyEvent## 192 192 ))) 193 193 |((( 194 - (% class="s" %)##mksp.backend.key.unassigned##200 +mksp.backend.key.unassigned 195 195 )))|((( 196 196 backend_key_unassigned 197 197 )))|((( ... ... @@ -198,7 +198,7 @@ 198 198 (% class="nc" %)##KeyEvent## 199 199 ))) 200 200 |((( 201 - (% class="s" %)##mksp.backend.storage.reserved##207 +mksp.backend.storage.reserved 202 202 )))|((( 203 203 backend_storage_reserved 204 204 )))|((( ... ... @@ -205,7 +205,7 @@ 205 205 (% class="nc" %)##StorageSpaceEvent## 206 206 ))) 207 207 |((( 208 - (% class="s" %){{code language="none"}}mksp.backend.storage.released{{/code}}214 +mksp.backend.storage.released 209 209 )))|((( 210 210 backend_storage_released 211 211 )))|((( ... ... @@ -212,7 +212,7 @@ 212 212 (% class="nc" %)##StorageSpaceEvent## 213 213 ))) 214 214 |((( 215 - (% class="s" %){{code language="none"}}mksp.backend.storage.expired{{/code}}221 +mksp.backend.storage.expired 216 216 )))|((( 217 217 backend_storage_expired 218 218 )))|((( ... ... @@ -219,7 +219,7 @@ 219 219 (% class="nc" %){{code language="none"}}StorageSpaceEvent{{/code}} 220 220 ))) 221 221 |((( 222 - (% class="s" %){{code language="none"}}mksp.backend.user.converted_to_member{{/code}}228 +mksp.backend.user.converted_to_member 223 223 )))|((( 224 224 backend_user_converted_to_member 225 225 )))|((( ... ... @@ -226,12 +226,30 @@ 226 226 (% class="nc" %){{code language="none"}}UserEvent{{/code}} 227 227 ))) 228 228 |((( 229 - (% class="s" %){{code language="none"}}mksp.backend.user.converted_to_guest{{/code}}235 +mksp.backend.user.converted_to_guest 230 230 )))|((( 231 231 backend_user_converted_to_guest 232 232 )))|((( 233 233 (% class="nc" %){{code language="none"}}UserEvent{{/code}} 234 234 ))) 241 +|((( 242 +mksp.backend.user.created 243 +)))|backend_user_created|UserEvent 244 +|((( 245 +mksp.docuseal.document.signed 246 +)))|docuseal_document_signed|((( 247 +SignatureEvent 248 +))) 249 +|((( 250 +mksp.docuseal.signature.expired 251 +)))|docuseal_signature_expired|((( 252 +SignatureEvent 253 +))) 254 +|((( 255 +mksp.docuseal.signature.completed 256 +)))|docuseal_signature_completed|((( 257 +SignatureEvent 258 +))) 235 235 236 236 Die Consumer können dann wie folgt angelegt werden: 237 237 ... ... @@ -243,13 +243,13 @@ 243 243 nats consumer add backend_events backend_key_assigned --pull --filter="mksp.backend.key.assigned" --defaults 244 244 {{/code}} 245 245 246 -= {{id name="NATSSetup-Troubleshooting"/}}Troubleshooting=270 += Troubleshooting = 247 247 248 248 Man kann über die NATS CLI mit dem Server interagieren. 249 249 250 -== {{id name="NATSSetup-JetStream"/}}JetStream==274 +== JetStream == 251 251 252 -=== {{id name="NATSSetup-Streams"/}}Streams===276 +=== Streams === 253 253 254 254 Man kann sich die vorhandenen Streams und die Anzahl der Nachrichten anschauen. Die Anzahl sollte üblicherweise 0 sein, wenn die Zahl höher ist, werden Events nicht richtig abgearbeitet. 255 255 ... ... @@ -275,11 +275,11 @@ 275 275 {"timestamp":"2025-09-08T09:06:00.062358","stora 276 276 {{/code}} 277 277 278 -=== {{id name="NATSSetup-Consumer"/}}Consumer===302 +=== Consumer === 279 279 280 280 Die bestehenden Consumer kann man sich ebenfalls im Jetstream Context anzeigen lassen: 281 281 282 -{{code language="json"}}306 +{{code}} 283 283 $ nats consumer ls backend_events 284 284 ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ 285 285 │ Consumers │ ... ... @@ -296,7 +296,7 @@ 296 296 297 297 In dieser Tabelle sieht man bereits die "unprocessed" Nachrichten. Ist diese Zahl größer als 0 s sieht also gut, wenn n8n die Nachrichten nicht korrekt verarbeitet. Man kann sich ebenfalls die Details eines Consumers anzeigen lassen: 298 298 299 -{{code language="json"}}323 +{{code}} 300 300 $ nats consumer info backend_events backend_briefing_offer_cancelled 301 301 302 302 Information for Consumer backend_events > backend_briefing_offer_cancelled created 2025-09-09 22:53:26 ... ... @@ -330,7 +330,7 @@ 330 330 * **Unprocessed Messages** sind Nachrichten, die noch nicht abgerufen wurden. Dies sollte immer 0 sein 331 331 * **Waiting Pulls**: die Anzahl der verbundenen Clients. Üblicherweise sollte das nur n8n sein, also immer 1. 332 332 333 -== {{id name="NATSSetup-Server"/}}Server==357 +== Server == 334 334 335 335 Man kann sich ebenfalls die aktiven Verbindungen anzeigen: 336 336 ... ... @@ -364,15 +364,15 @@ 364 364 365 365 Der Name ist hierbei frei vergeben, in unserem Fall im Backend Code. Wir erwarten die folgenden Clients: 366 366 367 -|=( % scope="col" %)(((391 +|=((( 368 368 Client 369 -)))|=( % scope="col" %)(((393 +)))|=((( 370 370 Anzahl 371 -)))|=( % scope="col" %)(((395 +)))|=((( 372 372 Komponente 373 -)))|=( % scope="col" %)(((397 +)))|=((( 374 374 Art 375 -)))|=( % scope="col" %)(((399 +)))|=((( 376 376 Beschreibung 377 377 ))) 378 378 |((( ... ... @@ -480,4 +480,4 @@ 480 480 ] 481 481 {{/code}} 482 482 483 - \\507 +