MISP high availability

How to design a MISP service that analysts can rely on, covering database replication and backups, Redis and background workers, separate ingestion and analyst instances, and the decisions, build sequence, effort and verification involved.

On this page

How MISP high availability keeps threat intelligence flowing

A team whose detections and partner sharing depend on MISP loses more than a web page when the instance stops. SIEM and IDS feeds stop updating, pushes to partners queue up, and analysts lose the correlation view they rely on during an incident. High availability for MISP means the service keeps answering, keeps synchronizing and keeps its data intact when one component or one site fails, within recovery targets the team sets in writing. Those targets should drive the design. MISP is a PHP web application built on CakePHP, so resilience is a set of separate decisions, one for each part of the stack.

MISP depends on several stateful parts. The web tier serves the interface and API. A relational database holds events, attributes, organizations, sharing groups and users. Redis supports caching and job handling. Background workers run tasks such as pushes, pulls, feed fetching and enrichment. Sync relationships connect the instance to other MISP servers, each with its own certificates and endpoints. Attachments and some configuration sit on the file system. Each part needs its own answer to questions like these: how many web nodes can serve traffic at once, does the database have a standby that can be promoted, what happens to queued jobs when Redis restarts, and where do workers run after the primary moves. Write the answers down before choosing products.

Not every MISP deployment needs this. A single-analyst instance used for occasional lookups can usually tolerate a restore from backup. High availability earns its cost when several things are true: a shared operations center relies on the instance during working hours, an ISAC-style community expects its partners to pull and push on schedule, or automated feeds drive blocking or detection rules in a SIEM or IDS. In those cases a stale feed becomes a gap in coverage that someone must notice and explain. Ask which of these use cases the team actually has, and which outages it can accept for each, before scoping the work.

Three things make MISP harder than it looks. First, state lives in several places, so a failover that moves the web tier while leaving Redis or the file store behind can produce a working login page over broken data. Second, a database failover does not automatically fail over background workers. Workers may keep connecting to the old primary, hold queued jobs, or run the same job twice after recovery, so test the promotion procedure with workers running. Third, replication copies mistakes. An accidental bulk deletion, a bad publish or a misconfigured sharing group reaches the standby as well. Replicas protect against hardware loss, while backups with a point-in-time recovery path protect against the mistake itself.

Database choice shapes the design. MySQL and MariaDB are the long-standing options for MISP. PostgreSQL support arrived with the new database migration system in MISP 2.5.47, released on 17 September 2026. Confirm the current status in the release notes for the version you plan to run, and confirm that your replication, failover and backup tooling supports the engine you pick. Ask your implementation partner to show a tested promotion of the standby with MISP workers, sync and Redis all running, and record the observed recovery steps. Plan to re-test after each MISP upgrade, because the migration path itself changes between releases.

Which MISP components need a continuity plan

A MISP service is a set of cooperating parts, and each one fails in a different way for analysts. Some hold data that cannot be rebuilt, while others only do work that can be restarted or replaced. Sorting them by state and by what breaks first is the starting point for any high availability design.

Web application tier

The PHP application served through a web server holds no event data of its own, so it is largely stateless and can be scaled out behind a load balancer. When it fails, analysts lose the interface and API access but the data remains intact. The design question is how many application nodes you need, how sessions are handled across them, and how the load balancer detects an unhealthy node.

Relational database

MISP stores events, attributes, organizations, sharing groups and user accounts in a relational database, which makes it the stateful core of the service. Its failure stops every read and write, and it is the one component that cannot be rebuilt from other parts. The design question is whether you need replication, how fast a failover must complete, and how point-in-time backups are taken and restored.

Redis

MISP uses Redis for caching and for queuing background jobs. Depending on how it is configured, losing Redis can stall job processing, drop queued work, or slow the interface while caches rebuild. The design question is whether Redis runs as a single node, uses replication with a failover mechanism, or runs in a managed service, and what happens to pending jobs when it restarts.

Background workers

Workers run the jobs that publish events, process imports, run correlation and push or pull synchronization. They hold no authoritative data, but a stopped worker quietly delays sharing and enrichment, which analysts may not notice for hours. The design question is how many workers run, where they run relative to the web tier, and how a stalled queue is detected and alerted on.

File storage for attachments and exports

Attachments uploaded to events and generated exports are stored on disk or in a shared location, so this layer is stateful even though it is not a database. If it is local to one server, a failover can leave events that reference missing files. The design question is whether this storage is shared or replicated across nodes, how it is included in backups, and whether restored instances can read the same paths.

Sync and feed jobs

Synchronization with partner servers and scheduled feed fetches are recurring jobs that depend on the other components and on outbound network paths. If they stop, indicators stop flowing to and from trusted communities without any visible error on the analyst screen. The design question is which instance runs these jobs, how a standby takes them over without duplicating pushes, and how you confirm that partners still receive new events.

Which high availability pattern fits MISP

This table compares four ways to keep MISP available, from a single node with tested restores to a split between ingestion and analyst instances. Read each row against your own tolerance for downtime and lost events, since the recovery targets are decisions your team must set before choosing a pattern. The main takeaway is that more continuity usually means more people time to operate, test and keep synchronized.

PatternWhen it fitsOperational cost and recovery effect
Single node with tested restoreSmall teams where short outages are tolerable and events can be re-entered or re-synced from partners after a lossLowest complexity. Recovery depends on backup frequency and how long a rebuild takes; restores must be rehearsed to confirm the time and data loss you can accept
Warm standby promoted by handTeams that need a second server ready but can accept an operator decision and a short manual cutoverStandby must be kept in step with the primary and tested on a schedule. Recovery time depends on how fast an operator acts; data loss depends on replication lag at failure
Database replica with separate application tierOrganizations with sustained analyst traffic that need the database protected separately from web and worker nodesAdds replication monitoring, failover steps for the database and application configuration checks. Data loss depends on replication mode; the team must confirm Redis and file storage handling
Ingestion instance and analyst instance kept in syncTeams that want feeds and sync intake isolated from analyst work, or that share intelligence with several partnersHighest complexity: two instances, sync configuration, distribution rules and upgrades on both. Analysts keep working if ingestion fails, but sync lag and conflicting edits must be managed

Why replication alone does not make MISP highly available

A database replica protects one layer of a MISP instance, and it is the layer that is easiest to plan for. The harder question is what else must be running, present and consistent on the server that takes over. MISP is built on PHP with CakePHP, MySQL or MariaDB and Redis, so a failover plan that only promotes a replica leaves several components behind. Before any design is approved, the team should write down each stateful dependency, who owns it, and what happens to it during a switch.

Redis is the first gap. It holds queued background jobs and cached state, and neither is captured by a MySQL or MariaDB replica. If the standby starts with an empty or stale Redis, work that was queued on the failed node may be lost or silently skipped, and cached data may be served from a state that no longer matches the database. The team should confirm how the chosen MISP version handles queue recovery after an unplanned loss of Redis, and whether Redis itself is replicated, clustered or rebuilt from scratch on failover. Those are separate decisions with separate risks.

Background workers and file storage are the next two gaps. Workers that process jobs such as imports, exports, correlation and sync must be running on whichever instance accepts traffic, and their configuration must match the primary. Attachments and other stored files live on the filesystem, not in the database, so a standby without a synchronized copy will show events whose attachments are broken or missing. Cron-driven tasks add a further risk: after a switch, a scheduled job may run on both nodes during a split or may not run at all until someone notices. The runbook should name each scheduled task, state where it runs, and define how duplicate or missed runs are detected.

Splitting ingestion from analyst instances changes where data arrives and where it is read. If feeds and submissions land on an ingestion node and analysts query a separate instance, that analyst instance is only as current as the synchronization between them. Analysts may see events that are minutes or hours behind, and a failure in sync can look like an empty or outdated threat picture rather than an outage. This makes sync a continuity mechanism in its own right, with its own health checks: last successful run, lag between instances, rejected or failed items, and whether restored data matches what was published. Confirm with your team which instance is the system of record for each type of data before any failover is tested.

How to build a highly available MISP service in sequence

This sequence turns a single MISP instance into a service that can survive a host or database failure with a known recovery path. Each step closes with a check that proves the component works before the next one depends on it.

  1. Agree the target pattern and recovery goals

    Start with the business owners of threat sharing, not the server design. Agree which functions must stay available during an outage, such as analyst access, sync with partners, feed updates and API consumers, and how much recent data the organization can afford to lose. Record the failure scenarios you will design for, including host loss, database loss, storage loss and a failed upgrade, and the response expected for each. Done when the signed recovery goals list each scenario with an owner and a response, and the platform team can point to the design decision that covers it.

  2. Build the primary instance on MISP 2.5

    Install MISP from a supported installation method on the 2.5 line, which the project recommends for new deployments. The MISP download page recommends Ubuntu 24.04 with the provided installer and also lists Docker images, Ansible roles, Puppet and RPM packages. Avoid building new instances on 2.4, which is end of life for everything except security fixes. Record the exact release, operating system, PHP and database versions, and keep the configuration in version control so the standby can be built the same way. Done when the admin interface reports the expected version, a test user can log in, and a test event can be created and retrieved through the UI and the API.

  3. Configure the database replica and test promotion

    MISP uses MySQL or MariaDB, so configure replication from the primary database to a standby with the replication method your database team supports for the chosen version. Confirm with the database vendor or your DBA which topology is supported for your MISP release and how the application connection string changes on promotion. Write the promotion procedure as explicit commands, including how writes are stopped on the old primary. Done when a promotion dry run on a non-production clone moves MISP to the replica, a test event is written and read back, and the fallback to the original primary is also tested.

  4. Place Redis and workers for clean standby restart

    MISP relies on Redis and background workers for jobs such as sync, enrichment and imports. On the standby, install Redis and the worker services in a stopped or disabled state so they start only after promotion. Confirm with the MISP documentation for your release how workers reconnect to Redis and whether any queued jobs must be drained or reset before the standby takes traffic. Keep Redis data handling explicit so a restart does not silently replay or lose jobs. Done when a worker queue drain test shows that jobs queued on the primary are either completed or visibly failed after a controlled stop and start on the standby, with no duplicate processing.

  5. Move file storage to shared or replicated storage

    Attachments and uploaded files are stored on the filesystem, not in the database, so a database replica alone does not preserve them. Choose shared storage or a replicated filesystem that both the primary and standby can mount, and confirm with your storage team how locking and consistency work under failover. Set ownership and permissions so the web and worker users on both hosts can read and write the same paths. Done when an attachment uploaded on the primary can be opened on the standby after a promotion dry run, and checksums of a sample of files match before and after the move.

  6. Schedule backups with off-host copies

    Back up the database, the file store, the configuration and the encryption keys or secrets needed to restore them. Schedule the backups and send copies to a location outside the primary and standby hosts, encrypted in transit and at rest. Set retention with the business owners, since retention affects both recovery options and storage cost. Replication protects against host failure but not against deletion or corruption, which replicas copy faithfully, so backups are a separate control. Done when a scheduled backup is restored to an isolated host, the restored event and attribute counts match the source at backup time, and a sample attachment checksum matches.

  7. Create the second instance and sync relationship

    Build the second MISP instance on the standby host and connect it to the primary using MISP synchronization. Sync is a continuity mechanism for events and attributes, so it complements database replication rather than replacing it. Configure the sync direction, distribution levels and filtering rules so that restricted content does not leave the organization, and confirm which partners and feeds should point to which instance. Done when an event created on the primary appears on the second instance within the expected sync cycle, and a test event marked with a restricted distribution level does not propagate to the partner endpoint.

  8. Write and rehearse the promotion and fallback runbook

    Write the runbook as a numbered sequence with an owner for each step: the decision to promote, the stop of writes on the failed primary, the database and worker changes, the DNS or load balancer switch, the pause and resume of sync, the partner and analyst communication, and the fallback once the primary is repaired. Include the commands from the earlier steps and the checks that confirm each stage. Name who can approve each decision. Done when a tabletop review has been completed, a live promotion dry run has followed the runbook with recorded observations, and the runbook has been signed off by the service owner and the security operations lead.

How the HA design changes by deployment model

A single MISP server has no second node to take over, so continuity depends on backups and a rebuild path. The web application, MySQL or MariaDB, Redis and background workers all run on one host, and a failure in any of them stops the service until someone restores or repairs it. The design work shifts from failover to recovery: how fast the team can rebuild, and how much data it can afford to lose between backups.

What the team must own:

  • Backup scope: database dumps, the file store and configuration, plus the encryption keys and secrets needed to use them.
  • Restore testing: a rebuild on a separate host, run on a schedule, with the result recorded.
  • Patch and upgrade windows: security releases applied to a host that has no standby to absorb an outage.
  • Sync partner impact: a documented way to tell partners that the instance is down and when it returns.
  • Monitoring: alerts on disk, database health and worker queues, since no second node will catch a silent fault.

Build sequence steps that still apply: installation and hardening, database and Redis configuration, backup design, and verification. The replication and promotion steps do not apply. Confirm with the vendor documentation which backup method suits your MISP version and database engine before you commit to a schedule.

How to test that MISP failover works and fails safely

Do not let analysts rely on a MISP high availability design until the team has proven that a failure produces a controlled stop, not silent data loss. The first test is a backup restore. Take the most recent database backup, restore it to a clean host that has no sync connections and no live feeds, and compare event and attribute counts against the production instance at the time the backup was taken. Check the counts per organization and per distribution level as well as the totals. A matching total can hide a restore that dropped the attributes of one partner. Record the backup timestamp, the source host, the MISP version on both sides, and the exact queries used, so the comparison can be repeated after every upgrade.

The second test promotes the database replica and confirms that the application connects to it. Stop writes on the primary, promote the replica, point the application's database settings at the new primary, and then create a test event, an attribute and a tag from the web interface and from the API key of a test user. Confirm that reads and writes succeed and that the old primary cannot accept writes if it comes back. Also confirm that replication lag was zero or near zero before promotion. Any event written to the primary after the replica last received it is lost in this switch, so the team must agree in advance how that gap will be recovered, usually from sync partners or from the feed sources.

The third test covers Redis and the background workers. Queue several jobs, such as a feed pull, a sync push and a bulk attribute import, then stop the worker service during processing and restart it. Confirm that each queued job either completes once or is reported as failed, and that restarting does not repeat an import. Check the event count and the feed item count after the restart against the expected values from a control run. Duplicated events or attributes are a data quality problem that analysts will not notice quickly, so this check needs explicit numbers rather than a visual review.

The fourth test confirms that sharing groups and distribution levels survived the switch. Pick a sample of events that use each distribution level, including sharing group distribution, and verify their settings on the new primary and on the restored host. Confirm that sharing group membership, the organizations inside each group and the sync filtering rules match the pre-test export. Then confirm that a failed sync does not silently drop events: force a sync to a partner that is unreachable, and check that the failure appears in the sync and job logs and that no events are marked as pushed. A failed sync should leave events pending, not removed. Ask your implementation partner or the MISP documentation to confirm exactly which logs and job states record these outcomes in your release.

Safe failure means the service stops accepting writes rather than corrupting data. Define this as a written acceptance criterion before testing. When the database is unavailable, the application should return errors on writes, the workers should stop claiming new jobs, and no partial event should be committed. Record every test in a results log with the date, the tester, the scenario, the expected result, the observed result and the evidence reference, such as a log extract, a count export or a screenshot with a hash. Keep the log with the change record so that auditors and your own compliance team can see that failover was tested, not assumed.

What drives the effort and cost of MISP high availability

This table lists the factors that move the effort and cost of a resilient MISP service up or down. Read each row as a question to answer before asking for a fixed-scope quote, because most drivers change how many components must be built, tested and operated.

DriverWhy it changes effort or costHow to keep it downWhat to ask for in a fixed-scope quote
Analysts and organizations using the instanceEach additional organization adds roles, sharing groups and access rules to test, and more concurrent analysts raise the load on the database and web tier that the failover design must absorb.Limit the high availability tier to the organizations that truly need continuity, and keep smaller groups on a standard instance.Named user and organization counts, the roles in scope, and the load test expected before go-live.
Event and attribute volume, and attachment sizeLarger databases lengthen replication lag, backup and restore times, and the time needed to rebuild a replica. Large attachments add storage pressure and backup cost.Set a retention policy for old events and attachments, and store large files outside the database where the design allows.Current event and attribute counts, attachment storage in gigabytes, the retention policy, and the restore test that will be performed.
Inbound and outbound sync partners and feedsEach sync link and feed must be configured, monitored and re-tested after failover, and feed imports add write load and scheduling complexity to the worker tier.Confirm which partners are required for continuity, and remove or defer feeds that no analyst uses.A list of sync partners and feeds with direction, schedule, and the behavior expected during a failover.
Split ingestion and analyst rolesSeparating ingestion instances from analyst instances adds a second service to build, secure and synchronize, but it isolates bulk imports from interactive use.Decide early whether the split is required, and document which instance is the authoritative source for each event type.The number of instances per role, the synchronization path between them, and who owns each instance after handover.
Database and storage platform the organization already runsUsing a database engine, replication tooling and storage platform your team already operates reduces new skills and monitoring work. A platform that is new to your team adds training and runbook effort.Reuse existing database and backup standards where they meet the design requirements, and confirm supported engine and version combinations with the MISP documentation before building.The database engine and version, replication method, storage platform, and whether the work includes runbooks for your staff.
Recovery goals set by the businessTighter recovery time and recovery point goals require automated failover, more frequent backups and more frequent restore tests, which all add build and operating effort.Agree recovery objectives per service tier, and do not apply the strictest target to every component.Written recovery time and recovery point objectives, the failure scenarios to test, and the evidence each test will produce.
Compliance evidence needsAssessors often ask for documented backup, restore, access and change records. Producing that evidence adds logging, retention and documentation work. DeployOpen prepares evidence for assessments, but independent auditors issue any audit result.Identify the control expectations early and reuse existing logging and change records where possible.The control framework or internal policy in scope, the evidence list, and confirmation that the auditor will receive the evidence directly.
Number of environments (test, staging, production)Each environment needs its own replicated stack or a documented equivalent to test failover, upgrades and restores. Matching production topology in a lower environment raises infrastructure cost.Use a smaller non-production topology for functional tests, and reserve a full-scale rehearsal for restore and failover tests.The environments included, which ones mirror production topology, and whether the quote covers rebuilding the test environment after each change.

What to monitor, back up, upgrade and document after launch

The first duty after launch is watching the components that make the standby useful when the primary fails. Monitor the web tier for response times and error rates on the event, attribute and API endpoints, since analysts, automation and sync partners all reach MISP through them. Track database replication lag between primary and standby, because a standby that is far behind is not a safe promotion target. Watch Redis memory use and queue depth, and confirm that background worker processes are running and draining jobs, since stalled workers can leave sync and feed jobs silently behind. Alert on free disk space for attachments, and on failed sync and feed ingestion jobs. Agree alert thresholds with your operations team and write them into the promotion runbook so on-call staff know what a warning means.

Backups should cover the database, the attachment store, the configuration files, and the keys and certificates that live outside the database. Agree the backup schedule and retention period with your legal, privacy and incident response teams, because retention decides how far back an investigation can reach and what must be deleted under your own policies. Do not treat the standby as a backup. Replication copies mistakes such as an accidental deletion of events or a bad sharing change, so keep separate database backups. Restore tests are what prove the backups work. Choose a cadence your team can sustain, restore into an isolated host, and confirm that the instance starts, that event and attribute counts match expectations, and that sharing groups and user roles came back intact. Record every test in the restore test log.

Upgrades need coordination across three parties: the primary, the standby and the sync partners. MISP 2.5 is the recommended line for new deployments, and releases arrive often. MISP 2.5.47, released on 17 September 2026, introduced a new database migration system with PostgreSQL support, and MISP 2.5.50 followed on 9 October 2026. Read the release notes before each change and confirm whether a migration is involved. Upgrade a staging copy or the standby first, verify migrations and replication, then move the primary in a maintenance window you have announced to partners. Confirm with each sync partner which version they run before the primary changes, because sync between mismatched versions can behave differently. Keep the standby on a compatible version so that a failover does not land on different code.

Five documents need to stay current. The architecture diagram should show the primary, standby, worker and Redis roles, the sync links, and the network paths between them, and it should be redrawn after every structural change. The promotion runbook must name who may promote the standby, the checks to run before and after promotion, and how users and sync partners are redirected. The restore test log records the date, scope, operator and outcome of each test. The contact lists for sync partners should name a technical contact and an out-of-hours contact for each partner, and be checked on a fixed schedule. Each upgrade needs a change record covering the versions involved, the release notes reviewed, test results and rollback steps. Store these documents where the on-call team can reach them during an outage, not only on the primary that may have failed.

Protecting replicated data, backups and service accounts

A highly available MISP service copies the same sensitive indicators, database contents and credentials to more places than a single instance does. The cards below cover the controls that must follow those copies, from encryption and access to backups through to the accounts that run sync and automation.

Encrypt replicas and backups

Database replication traffic and backup archives should be encrypted in transit and at rest, because the MySQL or MariaDB data behind MISP holds event contents, attribute values and organization details. Confirm with your database vendor documentation how replication TLS is enabled on your version, and confirm that the backup storage location and any backup tool encryption are set up before the first backup runs.

Restrict who can trigger promotion

Failover promotes a replica to primary, and that action should be limited to a small named group of administrators and to the automation that is explicitly allowed to run it. Review who holds database administrator rights and shell access on each MISP node, and record every promotion in your change process so that a promotion cannot be mistaken for an attacker activity.

Keep credentials out of version control

Database, Redis and sync credentials should be injected at deployment time from a secrets store, not written into MISP configuration files or deployment playbooks that are committed to version control. Check the repository history as well as the current files, since a credential removed in a later commit remains recoverable and should be rotated.

Limit access to backup copies

Backup copies contain the same sensitive indicators, sharing group definitions and user data as production, so they need the same or stricter access control. Restrict who can read, restore or delete backup sets, log those actions, and set retention so that old copies of data removed from MISP are also removed from backup storage.

Separate sync and automation accounts

Synchronization with partner instances and automation through PyMISP should each use their own service account with the narrowest role and sharing group access they need. Separate accounts make it possible to rotate or disable one integration without breaking others, and they show in audit logs which process created or changed an event.

Hardening guidance and related controls

Web server configuration, TLS settings, API key handling and the exposure of sync endpoints are covered in the MISP security hardening topic and are not repeated here. Apply those controls to every node in the HA design, including any standby or ingestion instance, so that a replica is not weaker than the primary it replaces.

Questions teams ask before building MISP high availability

How much effort and cost does MISP high availability add?

High availability adds design, build, testing and operating effort on top of a single-instance deployment. The main drivers are how many components need redundancy (web tier, database, Redis, background workers, shared storage), how the team separates ingestion from analyst use, and how many sync partners depend on the service.

One-time costs cover architecture, build, failover testing and documentation. Recurring costs cover duplicate server capacity, database and backup operations, patching both nodes and monitoring. MISP is licensed under the GNU AGPL version 3, so the software itself carries no license fee. Paid support from the project or a third party is optional.

Ask any quote to show one-time and recurring costs separately, and to list which components are inside the written scope.

How long does a MISP high availability build take?

The duration depends on the target architecture, the hosting environment and how much testing the team requires. A design with one standby node and a database replica inside an existing cloud account needs less effort than a multi-site build with restricted sync paths, but no duration is fixed until the scope is written.

The main drivers are the number of nodes, the database engine, network paths and firewall approvals, identity integration, backup targets and the failover test plan. Approvals from change boards and procurement often set the calendar more than the technical work does.

Ask for milestones: architecture sign-off, a staging build, failover and restore tests, cutover and handover. Each milestone should name the evidence it produces.

What skills does the internal team need for MISP high availability?

The team needs working knowledge of several areas at once. Database: replication, backup, restore and failover for the chosen engine. Linux: service management, PHP-FPM, the web server, Redis, background workers and storage permissions. Network: load balancing, DNS, firewall rules between nodes and sync partners. Security: TLS certificates, secrets handling, access control and centralized logging.

The team also needs someone who understands how MISP workers and sync jobs behave, because a standby that is healthy at the infrastructure level can still hold stale or incomplete data.

Finally, the team needs a named owner for promotion, with a deputy. That person should hold written authority to promote the standby, decide on failback and notify sync partners.

Can our team build MISP high availability without an outside partner?

Yes, if the team has the skills listed above, time for a staging build and a plan for repeated failover testing. Internal teams often do well on the infrastructure side and struggle with the MISP-specific parts, such as keeping workers, Redis and the database consistent during failover.

The main risks are an untested failover, unclear ownership during an outage, and configuration drift between nodes, since MISP publishes frequent 2.5 releases and each node must be upgraded in step.

DeployOpen plans, implements, tests, documents and hands over MISP environments inside the client's own infrastructure, under a fixed scope agreed in writing. Ongoing support and upgrades are available as retainers. Confirm your team's capacity over the planned period before deciding.

Is a second MISP instance enough for continuity?

A second instance alone is not high availability. MISP synchronization copies events and attributes between instances according to distribution levels and sharing group settings, which helps preserve shared intelligence and partner exchange. It does not, by itself, provide automatic failover, shared live database state, consistent logins or continued write access during an outage.

During an outage, analysts still need a designed route to the standby, a tested way to promote it and a plan for data written during the gap.

Confirm these points in your environment: how often sync runs, which items do not replicate (such as configuration, users, API keys, feeds or attachments, depending on your setup), and how traffic will move to the standby. Sync supports continuity of data. Failover design supports continuity of service.

Should we use MySQL, MariaDB or PostgreSQL for MISP?

MISP has long run on MySQL or MariaDB alongside Redis. PostgreSQL support arrived with MISP 2.5.47, released on 17 September 2026, which introduced a new database migration system. Choose the engine based on your team's operating experience, the replication and backup tooling you already run, and whether the exact MISP version and topology you plan are supported.

Before you decide, check the project's release notes and support channels for how replication and failover behave on each engine. Then test the chosen engine on a copy of your data, including restore and upgrade steps.

Switching engines after go-live is a migration project of its own, so settle this choice during design.

Who should own promoting a standby MISP instance during an outage?

One named owner should be accountable for promotion, with a deputy who can act if the owner is unavailable. The owner needs written authority to promote the standby, to stop writes to the failed node, and to decide when to fail back.

The runbook should state the criteria for promotion, who approves it if approval is required, who checks data consistency afterward, and who notifies sync partners and internal stakeholders. Promotion should also be tested on a schedule, so the owner knows the steps before an incident.

If your organization runs on-call rotation, confirm that the on-call engineer can follow the runbook without the owner present.

What should a fixed-scope quote for MISP high availability include?

A fixed-scope quote should list the components in scope, such as web nodes, database replication, Redis, background workers, load balancing, backups and monitoring. It should name the environments covered, including staging, production and any air-gapped or multi-site targets.

The quote should also list the testing included, such as failover and restore tests, the documentation delivered, and the handover sessions. It should separate one-time work from any recurring support or upgrade services.

Exclusions matter as much as inclusions. Confirm whether feeds, third-party integrations, identity integration and sync partner changes are included. List the assumptions about access, approvals and the internal owner, because these shape the calendar. DeployOpen agrees scope, deliverables and timelines in writing before work starts, and provides a quote from that written scope.

How DeployOpen scopes, builds and hands over MISP high availability

DeployOpen plans, implements, hardens, documents and supports MISP inside your own infrastructure, whether that is your cloud accounts, data centers or an air-gapped network. The work starts from a written, fixed scope that names the database, Redis, worker and sync arrangements before any build begins.

How we scope

  • Map which MISP roles need continuity: ingestion, analyst access, sync endpoints and the database behind them.
  • Agree in writing the replication, backup and failover targets, and what happens to feeds and sync partners during a failover.
  • Confirm the MISP version and installation path before design, since the project recommends MISP 2.5 for new deployments.

How we build

  • Configure database replication and backups for MySQL or MariaDB, with restore steps tested before go-live.
  • Set up Redis and background workers so that ingestion and correlation keep running when one node is unavailable.
  • Separate ingestion instances from analyst instances and document the synchronization path between them for continuity.

How we hand over

  • Deliver a runbook covering failover, failback, backup restores and the steps to verify each component after an incident.
  • Document the configuration as built, including sync settings, distribution levels and the role of each instance.
  • Walk your operations and security staff through failover tests so they can run the procedures without the original build team.

How we support

  • Ongoing support, upgrades and testing are available as a retainer that starts after the fixed-scope handover.
  • Retainer work can cover testing MISP upgrades against the high availability setup before they reach production.
  • Ask any provider, DeployOpen included, to confirm which support levels and response terms apply to your environment.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.