Installation & Setup
Relevant source files
The following files were used as context for generating this wiki page:
Percona Monitoring and Management (PMM) is an open-source database monitoring solution designed to provide a "single pane of glass" for MySQL, MongoDB, PostgreSQL, Valkey, and Redis environments. The installation process typically involves setting up a central PMM Server and deploying PMM Clients on the nodes to be monitored.
Sources: README.md:14-25, CONTRIBUTING.md:1-10
User Installation (Docker)
The standard method for deploying PMM Server is via Docker. This involves pulling the official image, creating a persistent data volume, and running the container with specific port mappings.
Deployment Workflow
The following diagram illustrates the standard steps to deploy a PMM Server instance:
Diagram shows the sequential steps for a standard Docker-based server installation.
Sources: README.md:55-75
Default Credentials
Once the container is running, the PMM UI is accessible via the host's IP address.
| Credential | Default Value |
|---|---|
| Username | admin |
| Password | admin |
Sources: README.md:74-79
Standard Docker Commands
# 1. Download image
docker pull percona/pmm-server:3
# 2. Create data volume
docker volume create pmm-data
# 3. Run container
docker run --detach --restart always \
--publish 443:8443 \
--volume pmm-data:/srv \
--name pmm-server \
percona/pmm-server:3
Sources: README.md:58-71
Development Environment Setup
For contributors, PMM supports a "devcontainer" approach and specific local setups for backend, frontend, and API components.
PMM Server Development (pmm-managed)
The pmm-managed component is the core of the PMM Server. Its development is best performed inside a PMM Server container.
- Initialization: Run
make env-upto start the development container. This mounts the source code from the host into the container. - Executing Commands: To run targets like tests or builds inside the container, use
make env TARGET=<target-name>. - Restarting Service: The
run-managedtarget replaces the binary at/usr/sbin/pmm-managedand restarts the service usingsupervisorctl.
Sources: managed/CONTRIBUTING.md:7-35, CONTRIBUTING.md:120-130
PMM Client (pmm-agent)
The monitoring agent must be connected to a running PMM Server (or devcontainer).
- Dependencies: Ensure
vmagentand exporters are installed on the system. - Configuration: Run
make setup-devwithin the/agentdirectory to register the local agent and generatepmm-agent-dev.yaml. - Execution: Use
make runto start the agent.
Sources: CONTRIBUTING.md:132-155
UI Development
The PMM UI requires specific frontend tooling for development and building.
| Requirement | Version/Tool |
|---|---|
| Node.js | Version 22 (nvm recommended) |
| Package Manager | Yarn |
| Stack | React, Typescript, Vite, Turborepo |
Commands:
make setup: Initial environment configuration.make dev: Starts the UI in development mode.make build: Bundles the application for production.
Sources: ui/README.md:11-35
Alternative Deployment Methods
Beyond Docker, PMM supports several enterprise-grade deployment strategies mentioned in the documentation navigation structure.
| Method | Component | Context |
|---|---|---|
| Podman | PMM Server | Alternative container engine support |
| AWS Marketplace | PMM Server | Cloud-native VM deployment |
| OVA / VirtualBox | PMM Server | Virtual Appliance for on-premise |
| Helm Charts | PMM Server/Client | Kubernetes orchestration |
| Package Manager | PMM Client | DEB/RPM installs for Linux nodes |
Sources: documentation/mkdocs-base.yml:180-260
Setup Relationship Diagram
The following sequence diagram represents the interaction between the developer's environment and the PMM components during a typical development setup.
Diagram shows the lifecycle of setting up a local development environment and connecting an agent to the server.
Sources: managed/CONTRIBUTING.md:50-70, CONTRIBUTING.md:135-150
Conclusion
PMM offers flexible installation paths ranging from quick-start Docker containers for users to complex devcontainer environments for contributors. Successful setup requires deploying the PMM Server first, followed by the PMM Client (pmm-agent) on nodes, and finally adding specific database services for monitoring via the PMM UI or command-line tools.
Sources: README.md:50-55, managed/CONTRIBUTING.md:1-5