Ayer dejaron de funcionar las extensiones telefónicas, por lo que rápidamente fui a la centralita. El entorno gráfico (servicio web) tampoco funcionaba, por lo que accedí vía ssh.
Por experiencia con otros servidores, supuse que tenía un problema de disco lleno y acerté. Podéis comprobarlo ejecutando
df -h
Con el comando
find / -name "*.log" -print
pude ver todos los ficheros de log de nuestra centralita Issabel. Con este comando también podemos ver los ficheros que superen cierto tamaño.
Me centré en el directorio /var/log por ser un directorio presente en diferentes instalaciones.
En este directorio existen varios ficheros cuyas copias tienen como extensión una determinada fecha en lugar de ".log", pero los verdaderamente pesados están en /var/log/asterisk
Si ejecutamos
cd /var/log/asterisk
ls -lah
podemos comprobar que existen ciertos ficheros rotados (con extensión .1, .2, ...) con un tamaño superior a 1 GB, concretamente los ficheros
full.*
messages.*
Decidí borrar los más antiguos para dejar espacio y generar un guión que vigile para que esto no vuelva a suceder.
Borré ejecutando
rm messages.1?
rm messages.[6789]
rm full.[23456789]
Desde este punto todo volvió a funcionar correctamente.
Posteriormente cree el fichero
/guiones/borrar-log-asterixk.sh
con el siguiente contenido
rm -f /var/log/asterisk/full.[23456789]
rm -f /var/log/asterisk/messages.[6789]
Lo que hacemos es que permitimos los ficheros rotados full.1 y messages.[12345] (además de full y messages), borrando el resto, para mi es más que suficiente.
Cada uno debéis evaluar vuestras necesidades y espacio en disco disponible. Lo que no es buena idea es eliminar todos los archivos de log, ya que nos servirán de apoyo cuando surjan problemas.
Le di permiso de ejecución para el usuario
chmod u+x /guiones/borrar-log-asterixk.sh
Finalmente añadí una nueva línea al crontab para que se ejecute automáticamente todos los días con
crontab -e
añadí al final la línea
1 2 * /guiones/borrar-log-asterixk.sh
Nota: por defecto crontab llama a "vi", por lo que estamos editando dicho fichero con el comando "vi".
Mi crontab quedó así
m h dia mes dsem comando
40 /var/lib/asterisk/bin/issabelpbx-cron-scheduler.php
1 1 /guiones/regenerar-certificado.sh
1 2 /guiones/borrar-log-asterixk.sh
Espero que os sea de utilidad.
Tengo Issabel virtualizada en una mv Proxmox (también admite contendores lxc) con un troncal SIP y un número importante de extensiones, con varias extensiones externas por túnel OpenVPN y, al menos hasta ahora, funciona maravillosamente.