Configure Nomad¶
Percona Monitoring and Management (PMM) includes HashiCorp Nomad to enable future extensibility and enhanced service capabilities.
Nomad is a workload orchestrator designed to deploy and manage containers and non-containerized applications. In PMM, Nomad provides the underlying infrastructure to:
- improve resource allocation across monitoring components
- enable future PMM extensibility
- manage distributed monitoring agents more efficiently
Nomad is disabled by default in PMM and has no impact on system performance when not enabled.
Set a public address¶
Nomad requires both PMM_ENABLE_NOMAD=1 and a public address to start.
Set the public address before enabling Nomad:
Pass -e PMM_PUBLIC_ADDRESS=<your-address> when starting the container.
Go to Configuration > Settings > Advanced settings, set the public address, then restart PMM Server.
When PMM logs a startup warning
If PMM_ENABLE_NOMAD is set but PMM_PUBLIC_ADDRESS is not, PMM Server logs this warning at startup in docker logs pmm-server and /srv/logs/pmm-managed.log:
PMM_ENABLE_NOMAD is set but PMM_PUBLIC_ADDRESS is not. Nomad will not start unless a public address is configured in PMM settings.
Since you configured the address in PMM settings, you can ignore this warning. The startup check only reads environment variables, so the warning appears even when the address is configured in the UI.
Enable Nomad¶
If you’re an advanced user who needs Nomad for specific use cases, follow these steps to enable Nomad in PMM:
-
Start PMM Server with both
PMM_PUBLIC_ADDRESSandPMM_ENABLE_NOMADset:-e PMM_PUBLIC_ADDRESS=<your-pmm-address> \ -e PMM_ENABLE_NOMAD=1 -
Expose the Nomad port:
-p 4647:4647
Docker run command
docker run -d \
-e PMM_PUBLIC_ADDRESS=<your-pmm-address> \
-e PMM_ENABLE_NOMAD=1 \
-e PMM_PUBLIC_ADDRESS=<your-pmm-server-address> \
-p 4647:4647 \
-p 443:8443 \
--name pmm-server \
percona/pmm-server:3
Disable Nomad¶
To disable Nomad:
-e PMM_ENABLE_NOMAD=0
When Nomad is disabled on the PMM Server, the Nomad agent on PMM Clients will automatically stop.
System requirements¶
When Nomad is enabled, PMM Client nodes have the following additional requirements:
iproutepackage must be installed- access to cgroup must be available
Verification¶
To verify that Nomad is running correctly:
-
Check that the Nomad API is available at:
https://<PMM_SERVER_URL>/nomad/v1/nodes -
Confirm that Nomad agents appear in the node list.
If the Nomad API isn’t available, check the PMM Server log for the public address warning described in Set a public address.
Internal architecture¶
When enabled, PMM runs the following Nomad components:
- Nomad server on PMM Server - manages the cluster and schedules workloads
- Nomad client on PMM Server - executes jobs (workloads) on remote instances
- Nomad client on PMM Clients - executes distributed workloads
Communication between these components is secured and managed automatically when configured with the proper public address.
API access¶
The Nomad API is available through the PMM Server’s HTTPS port via the /nomad prefix. This allows you to access Nomad endpoints without requiring a separate port for the Nomad API.
- Nomad endpoints are only available to users with admin privileges
- All Nomad API endpoints are accessible under the
/nomadpath - The standard Nomad API documentation applies, but all requests must use the
/nomadprefix
Example API request
https://<PMM_SERVER_URL>/nomad/v1/jobs
Future compatibility¶
Nomad is included in PMM to support future extensibility features. Nomad will remain within PMM to provide infrastructure for upcoming enhancements and to deliver improved services for existing Percona customers.