zbxpcp — Zabbix Agent Loadable PCP Module
The zbxpcp loadable module extends Zabbix agent by making Performance Co-Pilot (PCP) metrics available to it. With the zbxpcp module configured in zabbix_agentd.conf all the PCP metrics are available from the Zabbix agent like any other agent items. As a loadable module (DSO) zbxpcp does not rely on any external programs but directly uses the PCP APIs to fetch PCP metrics when requested.
A typical Linux PCP installation offers over 1,000 metrics by default and is in turn extensible with its own plugins, or PMDAs (“Performance Metrics Domain Agents”). In addition to very complete /proc based statistics, readily available PCP PMDAs provide support for such system and application level components as 389 Directory Server, Apache, containers, HAProxy, GFS2, Gluster, libvirt, MySQL, NFS, Oracle, Postfix, PostgreSQL, Samba, and Sendmail, among others. PCP also runs on many platforms, including Linux, Mac OS X, FreeBSD, NetBSD, Solaris, and Windows.
For PCP introduction, see PCPIntro(1). To investigate the available PCP metrics, use for example pminfo(1). The PCP Quick Reference Guide is available at the PCP home page https://pcp.io/.
For general information about Zabbix data collection and loadable modules, see https://www.zabbix.com/documentation/3.0/manual/config/items. For Zabbix introduction and downloads, see https://www.zabbix.com/.
zbxpcp is compatible with the Zabbix module API version 1.
First make sure PCP is installed and configured properly, see the above references for instructions and use for example pminfo(1) to make sure the PCP metrics can be fetched. To enable the zbxpcp loadable module in a Zabbix agent, the following lines must be added to the Zabbix agent configuration file zabbix_agentd.conf (make sure to use the correct LoadModulePath):
After restarting the Zabbix agent all the PCP metrics will be available with the “pcp.” prefix like all the other agent items. This can be verified with the commands:
$ pminfo -t $ zabbix_agentd -p $ pminfo -f kernel.all.sysfork $ zabbix_get -s 127.0.0.1 -p 10050 -k pcp.kernel.all.sysfork
Then to collect PCP metrics from Zabbix agents, the Zabbix server side configuration is as usual (see Zabbix documentation if needed).
The PCP pmcd service must always be running when starting up a zbxpcp enabled Zabbix agent, otherwise the module will fail to load and the PCP metrics will not become available. Special care must be taken to make sure this happens also when rebooting the system.
Typical Zabbix agent configuration file location.
Optional PCP derived metrics configuration file for zbxpcp. See pmLoadDerivedConfig(3) for more info on derived metrics.
Zabbix agent loadable PCP module.
PCPIntro(1), pminfo(1), pmrep(1), zabbix_get(1), pmLoadDerivedConfig(3) and zabbix_agentd(8).