Grafana for government and public sector

Agencies and public bodies deploy self-hosted Grafana inside networks they control, with update, plugin and access controls set up front. This page covers the requirements, configuration, compliance evidence and rollout involved.

On this page

Why Grafana for government and public sector monitoring starts with hosting control

For most agencies and public bodies, the monitoring stack has to stay inside infrastructure the organization controls, and in some cases it has to run with no internet access at all. Self-hosting Grafana is the usual starting point because the software itself can be installed in your own data center, cloud account or restricted network. Grafana, Loki and Tempo are licensed under AGPLv3 since April 20, 2021, so the open-source edition can be deployed, modified and studied under those terms. Your legal team should confirm how the AGPLv3 terms apply to any internal changes or plugins you build and whether a commercial Grafana Enterprise license is needed for your obligations.

Production use also sets a data layer requirement. Grafana stores its configuration in SQLite by default, but the installation documentation says SQLite does not scale for production, so MySQL 8.0 or later or PostgreSQL 12 or later is required for production and high availability. In a restricted network, that database, the Grafana servers, the load balancer and every data source connection become components your own team must build, patch, back up and recover. Confirm which database engine your agency already operates and supports, because adding a new database platform is often the largest unplanned task in an on-premises rollout.

The editions split matters for identity. All editions support LDAP, generic OAuth, Entra ID, Okta, GitHub, GitLab, Google OAuth, auth proxy and JWT, but SAML, team sync, active sync and SCIM provisioning are available only in Grafana Enterprise and Grafana Cloud, according to the authentication documentation. Many government identity programs are built around SAML and SCIM, so the choice between the open-source edition and Enterprise affects how user lifecycle is handled, not only which features appear. Compared with a cloud-hosted monitoring service, the agency takes on the hosting, upgrade cadence, database operations and identity integration itself, and should write those responsibilities into its operating model before the first dashboard is built.

Which public-sector rules shape a Grafana build and what they mean

This table maps each public-sector rule to what it asks of a self-hosted Grafana build and the evidence an assessor will expect. Read each row as a scoping question: the rule often applies to the agency's wider system, so Grafana is one component that must fit into it. NIST does not estimate compliance costs, so confirm effort with your assessor and a written scope.

RuleWhat it asksWhat it means for the Grafana build
NIST SP 800-53 Rev. 5 and SP 800-53B baselinesControl catalog for federal systems; low, moderate and high baselines select 149, 287 and 370 controls and enhancements respectivelyChoose the baseline from the system impact level, then map Grafana's access, audit, logging and monitoring settings to the selected controls. Release 5.2.0 is current, so confirm which release your authorizing body references.
FISMA and OMB Circular A-130Agency-wide risk management; Inspectors General independently assess agency system security and report to OMBExpect the Grafana instance to appear in agency system inventories and assessment scope. Keep configuration, change records and access reviews ready for independent review.
FedRAMP scope under OMB M-24-15Applies to cloud products that handle federal information on behalf of an agency, with single-agency internal systems generally outside scopeA Grafana instance you run in your own government-controlled infrastructure is usually not a FedRAMP-authorized cloud service. Confirm scope with your authorizing official if you use a hosted Grafana or a managed cloud component.
FBI CJIS Security Policy v6.1FIPS 140-3 validated modules or FIPS 197 AES with 256-bit keys for CJI in transit and at rest outside physically secure locations; vulnerability scanning at least monthlyDashboards and data sources that carry CJI need TLS and encrypted storage that meet these requirements, and the Grafana host and database need monthly scanning. Confirm which cryptographic modules your agency accepts.
32 CFR 2002.14(h)(2) for CUIFederal agencies apply NIST SP 800-171 to protect CUI on non-federal systems unless the CUI category sets other safeguardsIf Grafana displays or stores CUI on a contractor or non-federal host, the contractual requirements reference SP 800-171. Limit dashboard content and exports to what the CUI category allows.
32 CFR 170.17(c)(5) for CMMC cloud useA CMMC Level 2 contractor may store or process CUI in a cloud service only if it is FedRAMP Authorized at Moderate or higher, or meets equivalent requirementsIf a defense contractor hosts Grafana in a cloud service that touches CUI, the cloud provider needs the required authorization. Self-hosting inside the contractor's own assessed scope avoids that cloud service question but still needs assessment.
ADA Title II web and mobile accessibility (28 CFR 35.200)WCAG 2.1 Level A and AA from 26 April 2027 for entities serving 50,000 or more people, and 26 April 2028 for smaller entities and special districtsOperations dashboards used by the public or contracted staff need to meet WCAG 2.1 AA. Test Grafana panels, color choices and keyboard navigation, and record gaps in your own remediation plan.
NIS2 scope and exclusionsCovers central government entities of any size and public administration as a high-criticality sector; excludes national security, public security, defense and law enforcementConfirm whether your entity is in scope and whether any Member State extension applies to local bodies. Entities in the excluded areas follow their own national rules for monitoring systems.

Choosing air-gapped, sovereign or agency-hosted Grafana

In a fully air-gapped enclave, the Grafana server, its database, and every data source sit on a network with no route to the internet. Nothing is fetched at install time or at runtime, so every artifact must be brought in through an approved transfer process. Grafana publishes packages for Debian and Ubuntu, RHEL and Fedora, SUSE, macOS and Windows, plus Docker images and Helm charts for Kubernetes. Mirror the chosen format into your internal repository or registry, then install from there. For the database, run MySQL 8.0 or later or PostgreSQL 12 or later, because SQLite is not suitable for production or high availability.

  • Package delivery: mirror the RPM or DEB repository, plus any plugin archives, into the enclave and pin exact versions.
  • Image delivery: copy the Docker image and Helm chart into an internal registry and reference digests in manifests.
  • Plugins: an offline install means every plugin and its dependencies are staged manually and reviewed before use.
  • Updates: patch releases arrive at least monthly, so build a repeatable transfer and test cycle rather than an ad hoc one.
  • Boundary: the monitoring stack inherits the enclave's authorization boundary, so document which data sources cross into it.

Confirm with your accreditation authority which transfer and scanning steps apply to media entering the enclave, and whether the Grafana host itself must be inside the accredited boundary.

Configuration that matters for public bodies

Public bodies rarely run Grafana with defaults. The choices below decide whether the instance can be rebuilt, patched and audited inside a network with no internet access. Each card names a component, the setting that matters, and what to confirm before the build starts.

Production database

Grafana stores its configuration in SQLite by default, but the installation docs say SQLite does not scale for production. Plan for MySQL 8.0 or later or PostgreSQL 12 or later from the start, hosted on a database service inside the enclave. Confirm who backs it up, where the copies sit, and how a restore is tested, because dashboards, data sources and alert rules all live there.

Active-active servers and alert tuning

High availability uses two or more active-active Grafana servers behind a load balancer sharing one MySQL or PostgreSQL database. Alerting needs extra configuration to avoid duplicate notifications, and Grafana Live has limitations in HA. For a public body, confirm that a duplicate or missing page to an on-call team is treated as an incident in the continuity plan before you size the cluster.

Identity sources by edition

LDAP, generic OAuth, Entra ID, Okta and auth proxy work in every edition, while SAML, team sync and SCIM provisioning need Grafana Enterprise. Agencies that depend on SAML or automated group provisioning must budget for Enterprise licensing and confirm it with the vendor. Keep local admin accounts and their credential storage documented for the case where the directory is unreachable.

Provisioning as code

Provisioning loads data sources, dashboards, plugins and alerting resources from YAML or JSON files at startup. Grafana also documents Terraform and Git Sync for as-code management. In an air-gapped build, keep these files in an internal Git repository with reviewed changes, so every dashboard and alert change has an approval record that auditors can sample.

Security hardening settings

The hardening guide recommends secure and SameSite cookies, a Content Security Policy, Trusted Types, hiding the version from unauthenticated users, requiring authentication on the metrics endpoint and domain verification against DNS rebinding. Apply these in the build baseline and record each setting as evidence. Confirm them against the control set your agency assesses against, since the guide does not map them to specific controls.

Offline plugin and update handling

Plugins, packages and container images must be mirrored into the enclave and checked before they cross the boundary. Upgrades follow a fixed cadence: major releases each spring, minor releases every other month and patches at least monthly. Each minor release is supported for 9 months, so plan a staging rebuild cycle that keeps the instance on a supported release.

Rolling out Grafana in a public-sector environment

This sequence moves Grafana from an agency's control requirements to a highly available, offline-capable deployment with governed access, code-managed dashboards and a planned upgrade rhythm. Each phase ends with evidence the agency's assessors and operators can review.

  1. Scope against the control baseline

    Map the agency's system boundary, data classification and applicable baseline before any build starts. Your security team and DeployOpen agree which SP 800-53B baseline (low, moderate or high) or other framework applies, which Grafana monitoring controls will be evidenced by configuration, and which must be covered by a log platform or another system. The output is a written control matrix that names the owner of each control. Confirm the baseline choice with your authorizing official and your assessor before design begins, since the agency sets its own authorization steps.

  2. Build the offline artifact pipeline

    Set up an internal staging environment that receives Grafana packages, container images, Helm charts, plugins and any Grafana Labs plugins in the agency's approved transfer process. Each artifact is checked for source, version and integrity before it is placed on the isolated network. The pipeline keeps a record of what crossed the boundary and when, which supports the software integrity and authenticity verification that NERC CIP-013-2 describes for other sectors and that many public bodies adopt as practice. Done means a repeatable transfer procedure that an operator can run without internet access.

  3. Deploy Grafana in high availability

    Install two or more active-active Grafana servers behind a load balancer, sharing a MySQL 8.0 or later or PostgreSQL 12 or later database. SQLite is not suitable for production or high availability. Configure database-backed auth tokens so users reach any node, and set alerting to avoid duplicate notifications. Review the documented Grafana Live limitations in HA with the team that will support dashboards. Apply the security hardening settings for cookies, Content Security Policy and metrics endpoint authentication. Done means a failover test passes and the configuration is stored in version control.

  4. Integrate identity and access roles

    Connect Grafana to the agency's identity provider, using LDAP, generic OAuth or another supported method listed in the authentication documentation. Confirm early whether SAML, team sync or SCIM provisioning is needed, because the authentication documentation places these in Grafana Enterprise and Grafana Cloud. Map organizational roles to Grafana roles, separate administrator, editor and viewer access, and restrict sensitive dashboards to the teams that need them. Done means test accounts for each role confirm the expected access, and the role mapping is documented for the agency's access reviews.

  5. Provision dashboards and alerts as code

    Define data sources, dashboards, plugins and alerting resources in provisioning files, and manage them through Git with review before merge. Changes reach production through the agency's change process rather than manual edits in the user interface. Keep a record of each dashboard's owner, data classification and intended audience, so that public-facing or operational views do not expose data they should not carry. Done means a clean rebuild of the instance from the repository reproduces the same data sources, dashboards and alert rules.

  6. Review dashboards for accessibility

    Where dashboards or their embedded content fall under state or local web accessibility obligations, review them against WCAG 2.1 Level A and AA, the standard referenced by the ADA Title II rule. Check color contrast, keyboard navigation, text alternatives for charts and the legibility of status indicators. Agree with the agency which dashboards are covered, since the rule's compliance dates differ by entity size and the agency's counsel should confirm applicability. Done means a written review record and a list of open items with owners.

  7. Set an upgrade cadence and approval gates

    Plan upgrades around Grafana's published rhythm: major releases once a year, minor releases every other month and patch releases at least monthly. Each minor release is supported for 9 months and the last minor of a major version for 15 months, so the agency's test and approval cycle should fit inside those windows. Each upgrade passes through the offline pipeline, a staging rebuild and the agency's own change approval before production. Done means a dated calendar, a tested rollback procedure and a named approver for each upgrade.

Monitoring evidence for NIST 800-53 and related frameworks

Grafana can produce much of the monitoring, alerting and capacity evidence that assessors ask for under NIST SP 800-53, but it does not satisfy controls on its own. The cards below show which evidence the self-hosted stack can supply, which settings need to be set and recorded, and where a log platform or other system must cover the rest. DeployOpen prepares this evidence, while auditors and assessors decide whether it is sufficient.

System event monitoring and alerting

Alert rules, contact points and notification routing show that system events are watched and escalated to people who act on them. For an agency, the evidence is the rule set itself, the routing record and proof that alerts fired and were handled. Set up Grafana Alerting in high availability with two or more active-active servers and a shared MySQL or PostgreSQL database, and configure it to avoid duplicate notifications. Confirm with your assessor which monitored events they expect to see covered.

Capacity and availability evidence

Dashboards of CPU, memory, disk, database and query load give a record of resource planning and thresholds over time. Size the Grafana servers against your user count, since the installation docs describe small deployments of under 25 concurrent users at 2 cores and 2 to 4 GB of RAM, and plan larger deployments separately. Keep the database on MySQL or PostgreSQL, because SQLite is not suitable for production. Store the dashboards as provisioned code so the capacity record can be shown unchanged.

Access control and audit of users

Assessors look for who can view and change the monitoring system and how those rights are granted and removed. Open-source Grafana supports LDAP, generic OAuth, Entra ID, Okta and similar providers, but SAML, team sync and SCIM provisioning require Grafana Enterprise or Grafana Cloud. Confirm which of these your agency needs before you choose the edition, then record role assignments, account reviews and removal of departed users. Treat this as a shared control with your identity provider.

Vulnerability and patch control for the stack

Under SI-2 and SA-15, the monitoring stack must be patched and its software sourced with care. NIST Release 5.2.0 added SA-15(13), SA-24 and SI-2(7) and revised SI-7(12) to focus on software update and patch security. Grafana publishes patch releases at least monthly, and each minor release is supported for 9 months, so plan a regular upgrade cadence and an offline verification step for packages carried into air-gapped networks. Record each patch decision and the integrity check that supports it.

Encryption of data in transit and at rest

Where Grafana stores or displays criminal justice information, the CJIS Security Policy calls for FIPS 140-3 validated cryptography or AES with 256-bit keys, both in transit and at rest outside physically secure locations. Confirm that the TLS termination, the database connection and the storage volumes behind Grafana meet this standard, and that Grafana's secure and SameSite cookie settings and Content Security Policy are enabled as the security hardening docs describe. Record the algorithms and module validations in the system security plan.

Where a log platform supplies the rest

Grafana visualizes events but does not store a tamper-resistant audit trail of administrative actions, log retention for security investigation or review of user activity across systems. Those evidence needs usually belong to a log platform or security information tool, such as Loki for log storage or Graylog and Wazuh for investigation. Decide early which system is the record of truth for audit events, and map each control to that system so that Grafana dashboards point to, rather than duplicate, its evidence.

Questions public-sector buyers ask before hiring a partner

What drives the cost of an air-gapped Grafana build?

The main cost drivers are the number of isolated networks, how many data sources must be reached inside the boundary, and how much of the software supply chain has to be moved across the boundary by hand. Each Grafana package, plugin, Helm chart or Docker image that enters the enclosure needs to be obtained, checked and recorded, so the more components and update cycles there are, the more effort recurs. Database choice matters too: production and high availability need MySQL 8.0 or later or PostgreSQL 12 or later, not SQLite, and that database is one more system to build, back up and patch. Ask any partner for a quote that lists each component, who performs the transfer and verification steps, and which items are one-time setup versus recurring work.

How long does a public-sector Grafana rollout take?

Duration depends mostly on approvals and the environment, not on Grafana itself. Authorization to operate, change control, access to the target network, identity integration and data source access can each set the pace, and they are often outside the implementation team's control. Ask the partner to separate the technical build from the approval gates and to name which gates the agency must clear and by when. A fixed-scope agreement fixes deliverables and the timeline agreed in writing before work starts, so confirm which approval steps the timeline assumes are already complete.

What must the agency supply for an offline Grafana project?

The agency usually supplies four things: the target network and hosts inside its boundary, an identity source for sign-in, read access to the data sources Grafana will query, and named owners for accessibility review. Network details include DNS, time sources, internal certificate authority, and any approved transfer path for packages and plugins. For identity, the agency must confirm which provider it runs and whether it uses LDAP, generic OAuth or another supported method. Accessibility owners should be named early, because state and local government web content and mobile apps must meet WCAG 2.1 Level A and AA on dates set by the ADA Title II rule, which are cited in the topic's guidance.

Can our own staff run Grafana after the project ends?

Yes, if the team has Linux administration skills, database operations experience and a process for handling offline updates. Grafana publishes major releases once a year, minor releases every other month and patch releases at least monthly, and each minor release is supported for 9 months. Staff must be able to plan these upgrades, test dashboards and data source connections, and restore backups. Ask the partner for a handover plan that covers runbooks, provisioned configuration kept in version control, and the operations tasks your team will own, so you can judge the gap before committing.

Why do SAML and SCIM require Grafana Enterprise?

According to the Grafana authentication documentation, SAML, team sync, active sync and SCIM provisioning are available only in Grafana Enterprise and Grafana Cloud. The open-source edition supports LDAP, generic OAuth, Entra ID, Okta, GitHub, GitLab, Google OAuth, auth proxy and JWT. If your agency standard requires SAML or SCIM, the licensing decision must be made before design starts, because it changes the identity architecture and the commercial terms. Grafana relicensed Grafana, Loki and Tempo to AGPLv3 on April 20, 2021, and Enterprise is offered as a non-AGPL commercial option, so review licensing with your legal team too.

How are upgrades handled without internet access?

Offline upgrades follow the same release sequence, but each new package, plugin version and container image must be obtained from an online source, checked and carried across the boundary before it is installed. Grafana's upgrade guidance covers the release cadence, and the partner should document how each release is validated in a staging enclosure first. Plugin updates need particular attention, because plugins carry their own release cycles and licenses. Ask the partner how it will record what was transferred, how software integrity is verified against vendor-supplied checks, and how rollback works if an upgrade fails.

What does a fixed-scope quote for this work cover?

A fixed-scope quote covers the deliverables, environments, data sources, identity integrations, dashboards, documentation and handover items written into the agreed scope before work starts. It should state what is excluded, such as ongoing support, upgrades or continuous testing, which DeployOpen offers as separate retainers. It should also name the assumptions about approvals, network access and staff availability that the timeline depends on. DeployOpen does not publish a price list, so ask for a written scope and a quote that follows from it, and check that every item in your requirements appears in one of those sections.

Does Grafana help us meet NIST SP 800-53 monitoring controls?

Grafana can provide dashboards and alerting that support evidence for monitoring and capacity controls, but it does not satisfy a control by itself. NIST SP 800-53 Rev. 5 is the federal control catalog, and Release 5.2.0 of August 27, 2025 is current. Control selection depends on the system's impact level and the baseline in SP 800-53B. Log retention, access review and audit records usually sit in other systems, so confirm with your assessor which controls Grafana covers and which need a log platform or other tooling. DeployOpen prepares systems and evidence for assessments, but independent auditors issue any assessment or authorization outcome.

What a partner should own and what the agency keeps

A partner can build, configure and document the Grafana stack, but the agency keeps the decisions that carry legal and policy weight. Approvals stay with the agency: who may sign off the design, the plugin list, the release that enters the closed network and any change to who can see which dashboard. DeployOpen can prepare the decision record for each of these, such as the proposed plugin inventory, the data source connection list and the rollback plan for a Grafana upgrade, but the named approver should be an agency role, not the implementer. Agree that approver list, and the turnaround expected for each approval, in the written scope before work starts.

Data classification is the agency's call, and it drives almost every technical choice. The agency decides which metrics, logs and traces are controlled unclassified information, criminal justice information or ordinary operational data, and which of those may appear in dashboard titles, panel queries, alert annotations or exported CSV files. A partner can set up the Grafana side of that decision: folder-based permissions, restricted data source access and a review of log queries that might echo personal data. The agency still owns the classification, the access request process and the evidence that people were checked. On the accessibility side, a partner can build dashboards to WCAG 2.1 Level AA guidance, but the agency signs off the result with its own reviewers, since the ADA Title II rule places the obligation on the public entity. Assessors remain the agency's own: DeployOpen prepares the control mapping, configuration exports and test records, while the agency's inspector general, internal assessors or independent assessment body decide what is accepted.

How DeployOpen scopes and delivers Grafana for public bodies

DeployOpen plans, implements, hardens, documents and supports self-hosted Grafana inside the agency's own cloud accounts, data centers or air-gapped networks. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.

How we scope

  • Written scope lists the data sources, dashboards and alert paths that the public body needs to monitor.
  • We confirm the hosting boundary, whether air-gapped, sovereign or cloud-hosted, and who holds administrative access.
  • The scope names the plugins, update channel and offline package process the agency will accept and approve.

How we build

  • We deploy Grafana with MySQL or PostgreSQL as the configuration database, not SQLite, for production and high availability.
  • Dashboards, data sources and alerting resources are defined as provisioning files so changes can be reviewed and reproduced.
  • We configure identity integration and the security hardening settings the agency's assessors will check, then test them before handover.

How we hand over

  • Handover includes architecture notes, configuration records and the control mapping we agreed for monitoring evidence.
  • Runbooks cover upgrade steps, backup and restore, and the offline process for checking every package brought across the boundary.
  • Knowledge transfer sessions train operators and dashboard owners on the access model and the alert routing we built.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer that follows the agreed scope.
  • Upgrade planning follows Grafana's published release and support cadence, with each change tested before it reaches production.
  • Where an assessment is planned, we prepare systems and evidence for the independent auditor, who issues any report or certification.

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.