===== Problema: El plugin de Percona para Cacti muestra las gráficas de memoria RAM vacías (Bug #1440832) =====
Tras actualizar el paquete "procps-ng" a la versión 3.3.10 o bien instalando una distribución de GNU/Linux que traiga de serie una versión superior a 3.3.9, el plugin de [[https://www.percona.com/doc/percona-monitoring-plugins/1.0/cacti/index.html|Percona]] para Cacti encargado de mostrar los gráficos de memoria RAM no funcionará. Esto se debe a que el comando free de dicha versión muestra una salida diferente a la esperada por el plugin de Cacti.
**Soluciones**.
**1**. Instalar una versión más antigua de "props-ng", pero es factible que el paquete sea actualizado en otra instalación posterior o bien posteriores paquetes se quejen de dicho paquete al querer ser instalados.
**2**. Crear un comando secundario (free2) y adaptar el plugin de percona.
Comando free2.
# URL: http://rpm.pbone.net/index.php3/stat/4/idpl/26646277/dir/centos_7/com/procps-ng-3.3.9-6.el7.x86_64.rpm.html
rpm2cpio procps-ng-3.3.9-6.el7.x86_64.rpm | cpio -idmv
cp usr/lib64/libprocps.so.3* /lib64/
cp usr/bin/free /usr/bin/free2
Adaptar el Plugin de Percona, se debe buscar la linea que tiene el comando "free -ob" y agregar el código según necesidad.
$srv = isset($options['server']) ? $options['server'] : $options['host'];
if ($srv == "XXXX1" || $srv == "XXXX2" || $srv == "XXXXX3"){
return "free2"; }
else{ return "free -ob";}
En el ejemplo se han especificado tres dominios de servidores (adaptar XXXX) que necesitan de dicho comando, lógicamente se debe adaptar a las necesidades de cada entorno agregando los dominios pertinentes.
Como alternativa, si no se quieren copiar las librerías en "/lib64", se puede quedar todo dentro del $HOME de Cacti.
/home/cacti/free_cacti/lib64/libprocps.so.3
/home/cacti/free_cacti/lib64/libprocps.so.3.0.0
/home/cacti/free_cacti/free2
Crear /usr/bin/free2 con este contenido y darle permisos de ejecución.
LD_LIBRARY_PATH=/home/cacti/free_cacti/lib64/ /home/cacti/free_cacti/free2 -ob