Este es el manual para instalar el script que reinicia apache cuando el servidor tiene pocos recursos libres utilizando sysfence. Tiene instrucciones para ubuntu, debian y centos (ojito a la nota que está en rojo o negrita porque en ubuntu depende de si se usó la plantilla de ubuntu + plesk o la de ubuntu normal). Añadida ultima actualizacion 18/11/2012
Manual de instalación de script para reinicio de apache para Soporte
Contenido
Instalación de sysfence 3
Debian/Ubuntu 3
CentOS /RHEL 3
Creación del fichero de configuración 4
Creación del script de reinicio 5
CentOS 5
Ubuntu 6
Debian 6
Hacerlo ejecutable 7
Configuración para que se ejecute al arranque 7
Iniciar el script 7
Debian/Ubuntu 3
CentOS /RHEL 3
Creación del fichero de configuración 4
Creación del script de reinicio 5
CentOS 5
Ubuntu 6
Debian 6
Hacerlo ejecutable 7
Configuración para que se ejecute al arranque 7
Iniciar el script 7
Instalación de sysfence
Sysfence puede ser instalado desde el código fuente, disponible en sourceforge descargándolo desde http://sourceforge.net/projects/sysfence/ . Por suerte existen binarios ya compilados tanto para CentOS/RHEL como para Debian/Ubuntu.
Debian/Ubuntu
Para instalar sysfence en debían/Ubuntu necesitamos el paquete .deb del mismo. Podemos encontrarlo en:
Versión 64 bits:
http://ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/s/sysfence/sysfence_0.16-2_amd64.deb
Versión 32 bits:
http://ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/s/sysfence/sysfence_0.16-2_i386.deb
Una vez conectados la máquina lo descargamos con el comando wget <enlace> poniendo el enlace que corresponda de los de arriba.
Para instalar el paquete ejecutamos
dpkg –i <nombre del paquete>
Versión 64 bits:
http://ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/s/sysfence/sysfence_0.16-2_amd64.deb
Versión 32 bits:
http://ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/s/sysfence/sysfence_0.16-2_i386.deb
Una vez conectados la máquina lo descargamos con el comando wget <enlace> poniendo el enlace que corresponda de los de arriba.
Para instalar el paquete ejecutamos
dpkg –i <nombre del paquete>
CentOS /RHEL
Para centos y red hat necesitamos el paquete .rpm. Podemos encontrarlo en:
Versión 64 bits:
http://ftp.cc.uoc.gr/mirrors/linux/pld/pool/s/sysfence/sysfence-0.16-1.amd64.rpm
Versión 32 bits:
http://ftp.cc.uoc.gr/mirrors/linux/pld/pool/s/sysfence/sysfence-0.16-1.i686.rpm
Una vez conectados la máquina lo descargamos con el comando wget <enlace> poniendo el enlace que corresponda de los de arriba.
Para instalar el paquete ejecutamos:
rpm –Uvh <nombre del paquete>
Versión 64 bits:
http://ftp.cc.uoc.gr/mirrors/linux/pld/pool/s/sysfence/sysfence-0.16-1.amd64.rpm
Versión 32 bits:
http://ftp.cc.uoc.gr/mirrors/linux/pld/pool/s/sysfence/sysfence-0.16-1.i686.rpm
Una vez conectados la máquina lo descargamos con el comando wget <enlace> poniendo el enlace que corresponda de los de arriba.
Para instalar el paquete ejecutamos:
rpm –Uvh <nombre del paquete>
Creación del fichero de configuración
Para crear el fichero de configuración usamos vi:
vi /etc/sysfence.conf
Para comenzar a escribir tenemos que pulsar la tecla i, abajo a la izquierda aparecerá escrito INSERT, para salir presionamos ESC, escribimos :wq (para guardar y salir) y pulsamos ENTER.
Podemos escribir o pegar el texto del archivo de configuración (para pegar copiar el texto y luego hacer click derecho en la terminal)
Fichero de configuración:
vi /etc/sysfence.conf
Para comenzar a escribir tenemos que pulsar la tecla i, abajo a la izquierda aparecerá escrito INSERT, para salir presionamos ESC, escribimos :wq (para guardar y salir) y pulsamos ENTER.
Podemos escribir o pegar el texto del archivo de configuración (para pegar copiar el texto y luego hacer click derecho en la terminal)
Fichero de configuración:
rule «high mem» {
freemem < 256M
or
swapused > 128M
or
la1 > 20
}
run ‘/usr/local/bin/reinicia_apache.sh’
log once
step 60
freemem < 256M
or
swapused > 128M
or
la1 > 20
}
run ‘/usr/local/bin/reinicia_apache.sh’
log once
step 60
En este fichero se puede configurar cuándo queremos que se reinicie el apache. Las reglas son en este caso si quedan menos de 256Mb de RAM libres, se usa más de 128Mb de swap o la carga de cpu en 1 minuto supera 20. Esto se puede modificar según cada servidor.
Creación del script de reinicio
Para crear el script de reinicio podemos usar también vi
vi /usr/local/bin/reinicia_apache.sh
Este script de reinicio es diferente según el sistema.
vi /usr/local/bin/reinicia_apache.sh
Este script de reinicio es diferente según el sistema.
En algunos casos si el plesk fue instalado sobre una plantilla de Ubuntu sin Plesk este script puede ser diferente. Para comprobarlo ejecutamos en la terminal ps –A|grep apach . Si en el listado nos aparece en la última columna apache2 en vez de /usr/sbin/apach se debe usar el script de Debian
El echo es una sola línea y hay que sustituir placeholder, fulanito y loquesea@email.com por los datos del servidor o el mensaje que se quiera enviar y el email que recibirá el aviso cuando se ejecute el reinicio.
CentOS
#!/bin/bash
killall -9 httpd
killall -9 httpd
killall -9 httpd
sleep 2
killall -9 httpd
ipcs -s |grep apache |awk ‘{print $2}’ |xargs -i{} ipcrm -s {}
/etc/init.d/httpd start
sleep 2
/etc/init.d/httpd restart
killall -9 httpd
killall -9 httpd
sleep 2
killall -9 httpd
ipcs -s |grep apache |awk ‘{print $2}’ |xargs -i{} ipcrm -s {}
/etc/init.d/httpd start
sleep 2
/etc/init.d/httpd restart
sync && echo 3 > /proc/sys/vm/drop_caches
echo «Reinicio del servidor placeholder de fulanito en la fecha: $(date)» |mail -s «Reinicio del servidor web placeholder» loquesea@email.com
Ubuntu
#!/bin/bash
ps -ef |grep /usr/sbin/apache2 |awk ‘{print$2}’|xargs kill -9
ps -ef |grep /usr/sbin/apache2 |awk ‘{print$2}’|xargs kill -9
ps -ef |grep /usr/sbin/apache2 |awk ‘{print$2}’|xargs kill -9
sleep 2
ps -ef |grep /usr/sbin/apache2 |awk ‘{print$2}’ |xargs kill -9
ipcs -s |grep www-data |awk ‘{print $2}’ |xargs -i{} ipcrm -s {}
/etc/init.d/apache2 start
sleep 2
/etc/init.d/apache2 restart
sync && echo 3 > /proc/sys/vm/drop_caches
echo «Reinicio del servidor placeholder de fulanito en la fecha: $(date)» |mail -s «Reinicio del servidor web placeholder» loquesea@email.com
Debian
#!/bin/bash
killall -9 apache2
killall -9 apache2
killall -9 apache2
sleep 2
killall -9 apache2
ipcs -s |grep www-data |awk ‘{print $2}’ |xargs -i{} ipcrm -s {}
/etc/init.d/apache2 start
sleep 2
/etc/init.d/apache2 restart
killall -9 apache2
killall -9 apache2
sleep 2
killall -9 apache2
ipcs -s |grep www-data |awk ‘{print $2}’ |xargs -i{} ipcrm -s {}
/etc/init.d/apache2 start
sleep 2
/etc/init.d/apache2 restart
sync && echo 3 > /proc/sys/vm/drop_caches
echo «Reinicio del servidor placeholder de fulanito en la fecha: $(date)» |mail -s «Reinicio del servidor web placeholder» loquesea@email.com
Hacerlo ejecutable
Para que sysfence pueda ejecutar el script debemos hacerlo ejecutable:
chmod +x /usr/local/bin/reinicia_apache.sh
chmod +x /usr/local/bin/reinicia_apache.sh
Configuración para que se ejecute al arranque
Para que se ejecute al arranque tenemos que agregar una línea al fichero /etc/rc.local
vi /etc/rc.local
vi /etc/rc.local
Bajamos al final del fichero (normalmente será corto) y añadimos la siguiente línea antes de la que pone exit 0 (acordarse de pulsar i para entrar en modo edición)
sysfence /etc/sysfence.conf
sysfence /etc/sysfence.conf
Salimos presionando ESC, escribiendo :wq (para guardar y salir) y pulsando ENTER
Iniciar el script
Iniciar el script
Iniciamos el script ejecutando la misma línea que añadimos al rc.local
sysfence /etc/sysfence.conf
Podemos comprobar que se está ejecutando con el comando
ps –A | grep sysfence
Nos dará los procesos de sysfence que se están ejecutando, si aparecen es que está correcto.
ps –A | grep sysfence
Nos dará los procesos de sysfence que se están ejecutando, si aparecen es que está correcto.