Kommunal räddningstjänst – systemarkitektur och infrastruktur
Version 1.0 – September 2025
Systemet är byggt för att stödja både små kommunala räddningstjänster och stora räddningstjänstförbund med flera kommuner och stationer. Arkitekturen är designad för hög tillgänglighet, säkerhet och skalbarhet.
Översiktsdiagram över systemarkitekturen med alla komponenter och deras relationer.
Systemet kräver en robust infrastruktur med redundans och hög tillgänglighet. Följande komponenter är nödvändiga:
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Operativsystem | Ubuntu Server 22.04 LTS | Långtidsstöd, säkerhetsuppdateringar till 2027 |
| Webbserver | Nginx 1.22+ eller Apache 2.4+ | Reverse proxy och statisk filhantering |
| Applikationsserver | PHP 8.1+ (FPM) eller Node.js 18+ | Kör applikationslogiken |
| Process Manager | PM2 (Node.js) eller PHP-FPM | Hanterar applikationsprocesser |
| Minne | 8 GB RAM (min), 16 GB (rekommenderat) | För applikationsprocesser |
| CPU | 4 kärnor (min), 8 kärnor (rekommenderat) | För parallell bearbetning |
| Disk | 100 GB SSD (min), 500 GB SSD (rekommenderat) | För operativsystem och applikationer |
| Nätverk | 1 Gbps (min), 10 Gbps (rekommenderat) | För extern kommunikation |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Load Balancer | HAProxy 2.6+ eller Nginx | Fördelar trafik mellan applikationsservrar |
| SSL/TLS | Let's Encrypt eller kommersiell certifikat | Krypterad kommunikation (HTTPS) |
| Health Checks | Inbyggt i HAProxy/Nginx | Kontrollerar att servrar är tillgängliga |
| Session Persistence | Sticky sessions | För användarsessioner |
| Minne | 4 GB RAM | För load balancer-processer |
| CPU | 2 kärnor | För trafikhantering |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Monitoring | Prometheus + Grafana | Mätvärden och visualisering |
| Logging | ELK Stack (Elasticsearch, Logstash, Kibana) | Centraliserad logghantering |
| Minne | 16 GB RAM | För loggindexering och queries |
| CPU | 4 kärnor | För loggbehandling |
| Disk | 500 GB SSD + 2 TB HDD | SSD för index, HDD för arkiv |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Databasmotor | PostgreSQL 15+ | Relationsdatabas med ACID-garantier |
| Geodata | PostGIS 3.3+ | Geografiska funktioner (SWEREF 99 TM, WGS84) |
| Replikation | Streaming Replication | Primary + Standby för hög tillgänglighet |
| Backup | pgBackRest eller pg_basebackup | Automatiska säkerhetskopior |
| Minne | 32 GB RAM (min), 64 GB (rekommenderat) | För databasbuffer och cache |
| CPU | 8 kärnor (min), 16 kärnor (rekommenderat) | För databasprocesser |
| Disk | 1 TB SSD (min), 2 TB SSD (rekommenderat) | För databasfiler |
| Backup Storage | 5 TB HDD eller objektlagring | För säkerhetskopior |
| Connection Pooling | PgBouncer | Hanterar databasanslutningar |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Integrationsmotor | Teis 4.0+ | Enterprise Service Bus för systemintegration |
| Protokoll | REST, SOAP, FTP/SFTP, JMS, MQTT | Stöd för olika kommunikationsprotokoll |
| Meddelandeformat | JSON, XML, CSV, EDI | Olika dataformat för integration |
| Transformering | XSLT, JSONPath, XPath | Datatransformering mellan system |
| Routning | Content-based routing | Intelligent meddelanderoutning |
| Felhantering | Dead Letter Queue | Hantering av misslyckade meddelanden |
| Monitoring | Inbyggd dashboard | Övervakning av integrationer |
| Minne | 16 GB RAM | För integrationsprocesser |
| CPU | 8 kärnor | För parallell bearbetning |
| Disk | 200 GB SSD | För Teis-installation och loggar |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| IdP | Keycloak 20+ eller Shibboleth IdP 4+ | Centraliserad identitetshantering |
| Protokoll | SAML 2.0, OpenID Connect, OAuth 2.0 | Standardiserade autentiseringsprotokoll |
| Användarregister | LDAP/Active Directory eller lokal databas | Användarhantering |
| Tvåfaktor | TOTP (Google Authenticator), SMS, E-post | Ytterligare säkerhetslager |
| Enkel inloggning | SSO via SAML2 | En inloggning för alla system |
| Session Management | Inbyggt i IdP | Hantering av användarsessioner |
| Minne | 8 GB RAM | För IdP-processer |
| CPU | 4 kärnor | För autentiseringsprocesser |
| Disk | 100 GB SSD | För IdP-installation och loggar |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| SAML2 SP | mod_auth_mellon (Apache) eller Shibboleth SP | SAML2-autentisering för webbapplikationer |
| Metadata | XML-filer för IdP och SP | Konfiguration av SAML2-federation |
| Assertion | SAML2 Assertion | Autentiseringsbevis från IdP |
| Attribute Mapping | Användarattribut från IdP | Mappning av användarattribut |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Firewall | iptables eller UFW | Nätverkssäkerhet |
| SSL/TLS | TLS 1.3, Let's Encrypt | Krypterad kommunikation |
| Intrusion Detection | Fail2ban | Skydd mot brute force-attacker |
| Vulnerability Scanning | OpenVAS eller Nessus | Regelbunden sårbarhetsskanning |
| Backup Encryption | GPG eller AES-256 | Krypterade säkerhetskopior |
| Access Control | RBAC (Role-Based Access Control) | Rollbaserad åtkomstkontroll |
| Audit Logging | Centraliserad loggning | Spårbarhet av användaraktivitet |
| System | Protokoll | Beskrivning |
|---|---|---|
| SOS Alarm | REST API, SOAP | Larmmottagning och insatsrapportering |
| MSB | REST API | Händelserapportering och statistik |
| T-Kartor GIS | WMS, WFS, REST API | Kartdata och geografiska tjänster |
| Rakel | REST API | Talgruppskommunikation och samverkan |
| Ekonomisystem | REST API, SOAP, CSV | Fakturering och ekonomidata |
| E-postserver | SMTP, IMAP | E-postnotifieringar |
| SMS-gateway | REST API, SMPP | SMS-notifieringar |
| LDAP/Active Directory | LDAP, LDAPS | Användarregister för IdP |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Metrics Collection | Prometheus 2.40+ | Insamling av mätvärden |
| Visualization | Grafana 9.0+ | Visualisering av mätvärden |
| Alerting | Alertmanager | Varningar vid problem |
| System Metrics | Node Exporter | Systemmätvärden (CPU, minne, disk) |
| Database Metrics | PostgreSQL Exporter | Databasmätvärden |
| Application Metrics | Custom exporters | Applikationsspecifika mätvärden |
| Uptime Monitoring | Uptime Kuma eller Pingdom | Övervakning av systemtillgänglighet |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| Log Aggregation | Elasticsearch 8.0+ | Centraliserad loggsamling och sökning |
| Log Processing | Logstash 8.0+ | Loggbehandling och transformering |
| Log Visualization | Kibana 8.0+ | Visualisering och analys av loggar |
| Log Shipping | Filebeat, Fluentd | Transport av loggar från servrar |
| Application Logs | Structured logging (JSON) | Strukturerade applikationsloggar |
| Audit Logs | Separate audit log index | Spårbarhet för säkerhetsgranskning |
| Log Retention | 90 dagar (aktiv), 1 år (arkiv) | Lagringstid för loggar |
| Typ | Frekvens | Retention | Beskrivning |
|---|---|---|---|
| Full Backup | Veckovis | 4 veckor | Komplett säkerhetskopia av databas |
| Incremental Backup | Dagligen | 30 dagar | Inkrementella säkerhetskopior |
| Transaction Log Backup | Var 15:e minut | 7 dagar | Transaktionsloggar för point-in-time recovery |
| File System Backup | Dagligen | 30 dagar | Säkerhetskopior av konfigurationsfiler |
| Application Backup | Dagligen | 30 dagar | Säkerhetskopior av applikationsfiler |
| Komponent | Specifikation | Beskrivning |
|---|---|---|
| DMZ | Separate network segment | Demilitariserad zon för externa tjänster |
| Internal Network | Private network (10.0.0.0/8) | Internt nätverk för applikationsservrar |
| Database Network | Private network (10.1.0.0/16) | Isolerat nätverk för databasservrar |
| Management Network | Private network (10.2.0.0/16) | Hanteringsnätverk för administration |
| VPN | OpenVPN eller WireGuard | Fjärråtkomst för administration |
| DNS | Internal DNS server | Namnmatchning för interna tjänster |
| NTP | Internal NTP server | Tidssynkronisering |
Källor (urval): MSBFS 2020:7/2020:8 (IT-säkerhetsskydd); GDPR (personuppgiftshantering); Ubuntu Server dokumentation; PostgreSQL dokumentation; Teis dokumentation; SAML2 specifikation; Keycloak dokumentation.