On Debian 13:
sudo apt update
sudo apt install -y pcp pcp-webapi pcp-webapp grafana
On RHEL 10:
sudo dnf install -y pcp pcp-webapi pcp-webapp grafana
On Debian 13:
sudo systemctl enable --now pmcd pmlogger pmie
sudo systemctl enable --now pcp-webapi
On RHEL 10:
sudo systemctl enable --now pmcd pmlogger pmie
sudo systemctl enable --now pcp-webapi
Verify services:
systemctl status pmcd
pcp
Edit main configuration:
sudo nano /etc/pcp.conf
Key settings:
PCP_LOG_DIR=/var/log/pcp
PCP_DATA_DIR=/var/lib/pcp
PCP_ETC_DIR=/etc/pcp
Configure pmlogger (metrics logging):
sudo nano /etc/pcp/pmlogger/control
Add logging configuration:
# LOG HOSTNAME/DIRECTORY OPTIONS
localhost -r -T24h10m -c /etc/pcp/pmlogger/config.default
Configure pmie (monitoring and alerts):
sudo nano /etc/pcp/pmie/control
# HOSTNAME/DIRECTORY OPTIONS
localhost -c /etc/pcp/pmie/config.default
sudo apt install -y pcp-webapp-vector # Debian
sudo dnf install -y pcp-webapp-vector # RHEL
Enable Vector:
sudo systemctl enable --now pcp-webapi
On UFW:
sudo ufw allow 44321/tcp
sudo ufw allow 44322/tcp
sudo ufw allow 44323/tcp
On firewalld:
sudo firewall-cmd --permanent --add-port=44321/tcp
sudo firewall-cmd --permanent --add-port=44322/tcp
sudo firewall-cmd --permanent --add-port=44323/tcp
sudo firewall-cmd --reload
Open http://SERVER_IP:44322 to access the PCP web interface.
Test metrics collection:
pmstat
pminfo -f kernel.all.load
On Debian/Ubuntu:
sudo apt install -y pcp pcp-system-tools
sudo systemctl enable --now pmcd
On RHEL/CentOS:
sudo dnf install -y pcp pcp-system-tools
sudo systemctl enable --now pmcd
On the remote host, edit /etc/pcp/pmcd/pmcd.options:
# Allow connections from PCP server
pmcd.agent.local = -A 192.168.1.0/24
Edit /etc/pcp/hosts:
remote-host-name ip=192.168.1.100
On the PCP server, add remote hosts:
sudo nano /etc/pcp/hosts
# List all metrics
pminfo
# Search for specific metrics
pminfo -f cpu
# Get metric description
pmdesc kernel.all.load
# Start recording
pmlogger -h localhost -r /var/log/pcp/pmlogger/localhost
# View recorded data
pmrep -a /var/log/pcp/pmlogger/localhost -t 1min
Edit /etc/pcp/pmie/config.default:
# Alert when load average exceeds 4
kernel.all.load > 4 for 5 minutes ? print "High load: ${value}"
PCP includes a Grafana datasource:
http://SERVER_IP:3000http://localhost:44321# Real-time CPU usage
pmrep kernel.all.load
# Historical data
pmrep -a 2024-01-01 -S 00:00 -T 1h kernel.all.load
# Export to CSV
pmrep -o csv -o /tmp/metrics.csv kernel.all.load
See Performance Co-Pilot Hardening.
Setting up monitoring systems can be complex. We offer consulting services for:
Contact us at office@linux-server-admin.com or visit our contact page.
Prefer automation? See Performance Co-Pilot Ansible Setup for an example playbook.
Prefer containers? See Performance Co-Pilot Docker Setup.
See Performance Co-Pilot Configuration for configuration guidance.
See Performance Co-Pilot Security for hardening guidance.