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 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