Вы находитесь на странице: 1из 7

Asterisk Alta disponibilidad - Heartbeat en Linode

Dom, 16/05/2010 - 15:41 admin

Terminamos el ciclo de artculos dedicados a Asterisk y alta disponibilidad con la instalacin y configuracin de Heartbeat. Heartbeat se necesita para que los dos servidores sepan el estado del otro. Cuando el master se cae, el slave toma el control cargando la particin de DRBD donde hemos guardado los datos de configuracin de Asterisk, poniendo activo el IP compartido y arrancando dahdi y asterisk (en mi caso). Usaremos la misma configuracin que hemos ya visto en el precedente articulo sobre DRBD. Para resumir: Servidor A IP publico: 69.164.204.41 IP Lan: 192.168.130.234

Servidor B IP publico: 69.164.204.42 IP Lan: 192.168.130.58

Primero compramos en Linode un segundo IP publico para el servidor A (costo: un dlar al mes) que ser el IP virtual que compartirn los dos servidores. Una vez comprado, en la pagina de administracin de Linode del servidor B configuramos el failover. Esto permite que al caerse el servidor A, el servidor B tomar la gestin de ese IP. Vamos al men Network y ah, casi al fondo de la pagina aparece esta ventana:

Damos click en IP Failover linkage y en la pagina que aparece escogemos la IP que acabamos de comprar:

Presionamos el botn Submit y listo. Ya tenemos nuestro IP publico virtual. Este es el IP donde ponemos Asterisk a la escucha: nano /etc/asterisk/sip.conf cambiamos esta lnea: bindaddr=0.0.0.0 para que quede: bindaddr=72.14.190.93 Ahora tenemos que instalar Heartbeat. Este programa esta presente en los repositorios "extras de CentOS. Para activarlos: nano /etc/yum.repos.d/CentOS-Base.repo modificamos este bloque: [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo= extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 para que quede: [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo= extras baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 Guardamos los cambios y instalamos heartbeat: yum install heartbeat No se porque pero en mi caso he tenido que repetir el comando dos veces; en la primera me instalaba todas las dependencias menos el programa heartbeat.

Ahora tenemos que crear tres archivos de configuracin:


ha.cf authkeys haresources

Empecemos con el que se encarga de controlar el estado de los servidores. En el servidor A: nano /etc/ha.d/ha.cf pegamos las siguientes lneas: debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 120 initdead 120 ucast eth0 192.168.130.58 udpport 694 auto_failback on node test1.voztovoice.org node test2.voztovoice.org En servidor B: nano /etc/ha.d/ha.cf debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 120 initdead 120 udpport 694 ucast eth0 192.168.130.234 auto_failback on node test1.voztovoice.org node test2.voztovoice.org Ahora en ambos servidores creamos el archivo que utilizar Heartbeat para el intercambios de llaves de autenticacin y el archivo donde indicaremos la IP virtual compartida y los servicios que heartbeat deber gestionar. Estos archivos tienen que ser iguales en ambos servidores: nano /etc/ha.d/authkeys

auth 3 3 md5 password Usamos como mtodo de encriptacin MD5 y cambiamos la palabra password con la contrasea que queremos utilizar (igual en ambos servidores). Ahora tenemos que cambiar los permisos de este archivo para que sea accesible (en lectura y escritura) solamente para el usuario root: chmod 600 /etc/ha.d/authkeys para terminar el archivo de los recursos: nano /etc/ha.d/haresources Ponemos: test1.voztovoice.org IPaddr2::72.14.190.93/24 drbddisk::data Filesystem::/dev/drbd1::/data::ext3 dahdi asterisk (tiene que estar todo el la misma lnea) Definimos como servidor Master test1.voztovoice.org y indicamos la IP virtual que acabamos de comprar. drbddisk es el script que se encarga de montar la particin donde hemos guardado los archivos de configuracin de Asterisk, en mi caso /dev/drbd1. Por ultimo indicamos los servicios que Heartbeat tiene que arrancar, en mi caso dahdi y asterisk. Estos servicios tienes que ser indicados en la carpeta: /etc/ha.d/resource.d/ Para hacerlo creamos un enlace simblico: cd /etc/ha.d/resource.d ln s /etc/init.d/asterisk asterisk ln s /etc/init.d/dahdi dahdi Ahora el problema. Todo pareca funcionar bien pero heartbeat no me montaba la particin /dev/drbd1 y asterisk no poda funcionar. Revisando las cosas me di cuenta que el script drbddisk (que viene con la instalacin de Heartbeat) estaba mal configurado. Lo he resuelto de esta forma: nano /etc/ha.d/resource.d/drbddisk

y he cambiado esta lnea: DEFAULTFILE="/etc/default/drbd" con esta: DEFAULTFILE="/etc/drbd.conf" indicando donde efectivamente se encuentra el archivo de configuracin de drbd. para terminar la configuracin tenemos que hacer los ltimos cambios en ambos servidores: chkconfig asterisk off chkconfig dahdi off Esto porque es Heartbeat que se encarga de iniciar los dos programas. chkconfig drbd on chkconfig --add heartbeat chkconfig heartbeat on Volvemos a reiniciar ambos servidores: reboot Ahora miramos que pasa en el log de Heartbeat del servidor B cuando se cae el servidor A: tail f /var/log/ha-debug heartbeat[2405]: 2010/05/16_16:25:30 info: Received shutdown notice from 'test1.voztovoice.org'. heartbeat[2405]: 2010/05/16_16:25:30 info: Resources being acquired from test1.voztovoice.org. heartbeat[2405]: 2010/05/16_16:25:30 debug: StartNextRemoteRscReq(): child count 1 heartbeat[2532]: 2010/05/16_16:25:30 info: acquire local HA resources (standby). heartbeat[2532]: 2010/05/16_16:25:30 info: local HA resource acquisition completed (standby). heartbeat[2533]: 2010/05/16_16:25:30 info: No local resources [/usr/share/heartbeat/ResourceManager listkeys test2.voztovoice.org] to acquire. heartbeat[2405]: 2010/05/16_16:25:30 info: Standby resource acquisition done [all]. heartbeat[2405]: 2010/05/16_16:25:30 debug: StartNextRemoteRscReq(): child count 1 heartbeat[2559]: 2010/05/16_16:25:30 debug: notify_world: setting SIGCHLD Handler to SIG_DFL

harc[2559]: 2010/05/16_16:25:30 info: Running /etc/ha.d/rc.d/status status mach_down[2575]: 2010/05/16_16:25:30 info: Taking over resource group IPaddr2::72.14.190.93/24 ResourceManager[2601]: 2010/05/16_16:25:30 info: Acquiring resource group: test1.voztovoice.org IPaddr2::72.14.190.93/24 drbddisk::data Filesystem::/dev/drbd1::/data::ext3 dahdi asterisk IPaddr2[2628]: 2010/05/16_16:25:30 INFO: Resource is stopped ResourceManager[2601]: 2010/05/16_16:25:30 info: Running /etc/ha.d/resource.d/IPaddr2 72.14.190.93/24 start ResourceManager[2601]: 2010/05/16_16:25:30 debug: Starting /etc/ha.d/resource.d/IPaddr2 72.14.190.93/24 start IPaddr2[2734]: 2010/05/16_16:25:30 INFO: ip -f inet addr add 72.14.190.93/24 brd 72.14.190.255 dev eth0 IPaddr2[2734]: 2010/05/16_16:25:30 INFO: ip link set eth0 up IPaddr2[2734]: 2010/05/16_16:25:30 INFO: /usr/lib/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-72.14.190.93 eth0 72.14.190.93 auto not_used not_used IPaddr2[2708]: 2010/05/16_16:25:30 INFO: Success INFO: Success ResourceManager[2601]: 2010/05/16_16:25:30 debug: /etc/ha.d/resource.d/IPaddr2 72.14.190.93/24 start done. RC=0 ResourceManager[2601]: 2010/05/16_16:25:30 info: Running /etc/ha.d/resource.d/Filesystem /dev/drbd1 /data ext3 start ResourceManager[2601]: 2010/05/16_16:25:30 debug: Starting /etc/ha.d/resource.d/Filesystem /dev/drbd1 /data ext3 start Filesystem[2906]: 2010/05/16_16:25:31 INFO: Running start for /dev/drbd1 on /data Filesystem[2895]: 2010/05/16_16:25:31 INFO: Success INFO: Success ResourceManager[2601]: 2010/05/16_16:25:31 debug: /etc/ha.d/resource.d/Filesystem /dev/drbd1 /data ext3 start done. RC=0 ResourceManager[2601]: 2010/05/16_16:25:31 info: Running /etc/ha.d/resource.d/dahdi start ResourceManager[2601]: 2010/05/16_16:25:31 debug: Starting /etc/ha.d/resource.d/dahdi start No hardware timing source found in /proc/dahdi, loading dahdi_dummy Running dahdi_cfg: [ OK ] ResourceManager[2601]: 2010/05/16_16:25:31 debug: /etc/ha.d/resource.d/dahdi start done. RC=0 ResourceManager[2601]: 2010/05/16_16:25:31 info: Running /etc/ha.d/resource.d/asterisk start ResourceManager[2601]: 2010/05/16_16:25:31 debug: Starting /etc/ha.d/resource.d/asterisk start Starting asterisk: [ OK ] ResourceManager[2601]: 2010/05/16_16:25:32 debug: /etc/ha.d/resource.d/asterisk start done. RC=0 mach_down[2575]: 2010/05/16_16:25:32 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired mach_down[2575]: 2010/05/16_16:25:32 info: mach_down takeover complete for

node test1.voztovoice.org. heartbeat[2405]: 2010/05/16_16:25:32 info: mach_down takeover complete.


Alta disponibilidad asterisk Heartbeat Inicie sesin o regstrese para enviar comentarios 2725 lecturas

Comentarios
Mi, 19/05/2010 - 10:40 admin

Enviar correo cuando el Master se cae


Para complementar el articulo, si quieren que Heartbeat les envie un correo cuando el servidor master se caiga, en el archivo haresources hay que aadir esta linea: MailTo::fulano@gmail.com::ProblemasServidorMaster en Orden:

MailTo el script fulano@gmail.com la direccion de correo electronico que recibir el alerta ProblemasServidorMaster el objeto del mensaje

Para enviar el correo a dos o ms direcciones: MailTo::fulano@gmail.com,sutano@gmail.com::ProblemasServidorMaster

Вам также может понравиться