Cómo monitorizar el consumo de CPU (porcentaje de CPU usado) por un proceso (como ejemplo el proceso mariadbd o el proceso mysqld) en Linux con Pandora FMS. Este método es válido para casi todas las distribuciones de Linux: Red Hat, Ubuntu, Debian, CentOS, etc. Explicamos cómo probar el comando Linux que obtiene este dato (y que puede variar sensiblemente entre distribuciones) y cómo crear alarmas (notificación por mail) en caso de que se active una alerta.
- Requisitos para monitorizar consumo de CPU de un proceso en Linux con Pandora FMS.
- Comprobar comando Linux que obtiene % uso CPU de proceso.
- Añadir sensor/sonda/monitor/módulo que obtenga el porcentaje de consumo de CPU de un proceso en Linux con Pandora FMS.
- Comprobando monitor/sensor/sonda/módulo en consola web de Pandora FMS y añadiendo alertas.
Requisitos para monitorizar consumo de CPU de un proceso en Linux con Pandora FMS
En primer lugar, necesitaremos disponer de un sistema de monitorización Pandora FMS. En los siguientes enlaces explicamos cómo desplegar un servidor de monitorización con Pandora FMS:
- Desplegar sistema de monitorización Pandora FMS en 5 minutos con Docker Compose en Linux Debian.
- Instalar sistema de monitorización completo con Pandora FMS sobre Linux Ubuntu Server 22.
Deberemos disponer de usuario y contraseña de acceso a la consola web de gestión de Pandora FMS, así como usuario y contraseña del servidor/equipo con Linux y con el proceso que queramos monitorear. Para el acceso al servidor Linux, el usuario deberá tener permisos suficientes para modificar ficheros en /etc y para reiniciar servicios.
Comprobar comando Linux que obtiene % uso CPU de proceso
En primer lugar, desde el equipo Linux que contiene el proceso a monitorizar, ejecutaremos el siguiente comando para listar todos los procesos en ejecución, para anotar el nombre exacto del que queramos monitorizar:
1 |
ps -A |
O bien, si conocemos el nombre del proceso (como en nuestro caso que queremos monitorizar el proceso mariadbd correspondiente al motor de base de datos MariaDB), ejecutaremos este otro comando para asegurarnos de que, efectivamente, el proceso existe y está en ejecución:
1 |
ps -A | grep mariadbd |
Nos devolverá algo así como:
1 |
13148 ? 1-10:49:26 mariadbd |
Una vez que tenemos el nombre exacto del proceso, ejecutaremos este otro comando Linux, que nos devolverá el porcentaje de uso de CPU del proceso (en nuestro caso del proceso mariadbd):
1 |
ps -C mariadbd -o %cpu | tail -1 |
Nota: estos comandos para obtener uso de CPU de un proceso, podrían variar ligeramente de una distribución de Linux a otra.
Revisaremos que nos devuelve un número únicamente, correspondiente al porcentaje de uso de CPU del proceso indicado:
El comando anterior puede presentar un problema con Pandora FMS. Cuando el valor devuelto tiene un solo dígito, entre 0 y 9, puede que inserte un espacio a la izquierda. Si lo hace, puede que Pandora FMS no lea correctamente el valor. Para solucionarlo, modificaremos ligeramente el comando, añadiendo lo siguiente para quitar espacios y saltos de línea:
1 |
ps -C mariadbd -o %cpu | tail -1 | tr -d '\n'' ' |
Si quisiéramos monitorizar el consumo de CPU de MySQL, el comando sería:
1 |
ps -C mysqld -o %cpu | tail -1 | tr -d '\n'' ' |
Añadir sensor/sonda/monitor/módulo que obtenga el porcentaje de consumo de CPU de un proceso en Linux con Pandora FMS
Una vez que hayamos comprobado que el comando anterior devuelve un número (%CPU), procederemos a añadir dicho comando a un módulo de Pandora FMS. Para ello, editaremos el fichero pandora_agent.conf, que suele estar en /etc/, con el comando:
1 |
nano /etc/pandora/pandora_agent.conf |
En el final del fichero, añadiremos las siguientes líneas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Consumo CPU proceso mariadbd module_begin module_name CPU_mariadbd module_type generic_data module_exec ps -C mariadbd -o %cpu | tail -1 | tr -d '\n'' ' module_max 100 module_min 0 module_description Uso CPU proceso mariadbd (%) module_min_warning 60 module_max_warning 90 module_min_critical 91 module_max_critical 100 module_unit % module_end |
Con lo anterior estamos indicando a Pandora FMS lo siguiente:
- El módulo (sensor/sonda/monitor) se llamará «CPU_mariadbd».
- Ejecutará el comando Linux indicado en module_exec, que obtendrá el valor numérico y éste será el que envíe a Pandora FMS.
- El rango de valores posible de este módulo estará entre 0 y 100.
- La descripción para el módulo (para más información en la consola de Pandora), será: «Uso CPU proceso mariadbd (%)».
- Indicaremos los umbrales a partir de los cuales el módulo pasará a estado de warning (entre 60 y 90) y a estado de alerta (entre 91 y 100).
Guardaremos los cambios en el fichero pulsando las teclas Control + O y cerraremos la edición pulsando Control + X.
Para aplicar los cambios en Pandora FMS y que obtenga este nuevo sensor/monitor/sonda/módulo, podemos reiniciar el servicio de Pandora FMS, para ello ejecutaremos el comando Linux:
1 |
systemctl restart pandora_agent_daemon |
Este comando puede variar de una distribución de Linux a otra.
Comprobando monitor/sensor/sonda/módulo en consola web de Pandora FMS y añadiendo alertas
Esperaremos unos segundos tras el reinicio del servicio de Pandora FMS en el agente (servidor/dispositivo). Accederemos a la consola web de gestión de Pandora FMS desde cualquier equipo de la red (que tenga acceso al servidor de Pandora FMS). Buscaremos el agente, por ejemplo desde «Recursos» – «Gestionar agentes»:
Lo buscaremos y pulsaremos en «Vista»:
En la vista del agente podremos consultar el nuevo módulo/sensor/sonda/monitor añadido CPU_mariadbd, y su valor actual:
Si queremos añadir una alerta, de forma que se nos avise por correo electrónico (u otro medio que tengamos definido). Dentro del Agente, pulsaremos en «Gestionar»:
Pulsaremos en «Alertas»:
Introduciremos los datos de la alerta:
- Módulo: elegiremos el módulo añadido anteriormente «RAM_mariadb».
- Acciones: elegiremos la acción que queramos que se dispare cuando se produzca la alerta. Por ejemplo, en nuestro caso dispondemos de una acción llamada «Mail_Admin_Web», que envía correo electrónico a los técnicos encargados de los servicios web.
- Plantilla: elegiremos el nivel de alarma a partir del cual queramos recibir el aviso: warning (aviso) o alert (crítico). En nuestro caso elegiremos «Condición aviso» (warning), que, según hemos establecido al crear el módulo, se activará si el valor está entre 60 y 90.