{"id":948,"date":"2014-07-12T09:03:07","date_gmt":"2014-07-12T12:03:07","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=948"},"modified":"2014-07-12T09:03:07","modified_gmt":"2014-07-12T12:03:07","slug":"heartbeat-web-server-com-alta-disponibilidade-ha","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=948","title":{"rendered":"HeartBeat &#8211; Web server com Alta Disponibilidade (HA)"},"content":{"rendered":"<p><b style=\"color: #000000;\">HeartBeat &#8211; Web server com Alta Disponibilidade (HA)<\/b><span style=\"color: #000000;\">\u00a0<\/span><br style=\"color: #000000;\" \/><br style=\"color: #000000;\" \/><\/p>\n<div style=\"color: #000000;\">\n<p>Configura\u00e7\u00e3o de um servidor web utilizando H.A. com\u00a0<em>HeartBeat<\/em>. O cen\u00e1rio utilizado foi entre dois servidores de hardware e software id\u00eanticos.<\/p>\n<p>S.O &#8211; CentOS 5.2.<\/p>\n<p>O objetivo deste documento \u00e9 explicar como \u00e9 feita a estrutura\u00a0<em>Alta Disponibilidade<\/em>\u00a0entre dois servidores Web.<\/p>\n<p>O software respons\u00e1vel por este cluster \u00e9 o HeartBeat (Batimento Card\u00edaco) &#8211;\u00a0<a href=\"http:\/\/linux-ha.org\/\">http:\/\/linux-ha.org<\/a><\/p>\n<p>Estrutura b\u00e1sica do cen\u00e1rio:<\/p>\n<p>Cada servidor tem duas placas de rede, onde uma placa trabalha na rede interna e a outra \u00e9 utilizada pelo HeartBeat atrav\u00e9s de um cabo crossover.<\/p>\n<ul>\n<li>Eth0 &#8211; Lan<\/li>\n<li>Eth1 &#8211; Rede HeartBeat (Cabo Cross)<\/li>\n<\/ul>\n<p>O funcionamento b\u00e1sico do H.A. \u00e9 fazer com que o servidor &#8220;Slave&#8221; assuma o lugar do servidor &#8220;Master&#8221; quando houver algum problema, esse procedimento ocorre atrav\u00e9s de uma monitoramento entre os servi\u00e7os no dois servidores.<\/p>\n<p>Instalando o HeartBeat:<\/p>\n<p><strong># yum install heartbeat<\/strong><\/p>\n<p>Configura\u00e7\u00e3o de rede:<!--more--><\/p>\n<p>LAN: arquivo\u00a0<em>\/etc\/sysconfig\/network-scripts\/ifcfg-eth0<\/em><\/p>\n<div class=\"codigo\">DEVICE=eth0<br \/>\nBOOTPROTO=static<br \/>\nIPADDR=192.168.10.100<br \/>\nNETMASK=255.255.255.0<br \/>\nONBOOT=yes<\/div>\n<p>HEARTBEAT: arquivo\u00a0<em>\/etc\/sysconfig\/network-scripts\/ifcfg-eth1<\/em><\/p>\n<div class=\"codigo\">DEVICE=eth1<br \/>\nBOOTPROTO=static<br \/>\nIPADDR=10.0.0.1\u00a0<span class=\"comentario\">#Servidor Master<\/span><br \/>\nNETMASK=255.0.0.0<br \/>\nONBOOT=yes<\/div>\n<p>Arquivo\u00a0<em>\/etc\/sysconfig\/network-scripts\/ifcfg-eth1<\/em>:<\/p>\n<div class=\"codigo\">DEVICE=eth1<br \/>\nBOOTPROTO=static<br \/>\nIPADDR=10.0.0.2\u00a0<span class=\"comentario\">#Servidor Slave<\/span><br \/>\nNETMASK=255.0.0.0<br \/>\nONBOOT=yes<\/div>\n<p>Ap\u00f3s a instala\u00e7\u00e3o do HeartBeat ser\u00e1 criado o diret\u00f3rio \/etc\/ha.d (diret\u00f3rio de configura\u00e7\u00f5es do sistema).<\/p>\n<p>Basicamente todas as configura\u00e7\u00f5es do HeartBeat s\u00e3o definidas no arquivo\u00a0<em>ha.cf<\/em>, que deve ser criado no diret\u00f3rio acima.<\/p>\n<p><strong># vim \/etc\/ha.d\/ha.cf<\/strong><\/p>\n<div class=\"codigo\"><span class=\"comentario\"># Arquivo de log de Debug:<\/span><br \/>\ndebugfile \/var\/log\/ha-debug<span class=\"comentario\"># Arquivo de Log<\/span><br \/>\nlogfile\u00a0\u00a0\u00a0\u00a0\/var\/log\/ha-log<\/p>\n<p><span class=\"comentario\"># Usa o pr\u00f3prio heartbeat como daemon de log<\/span><br \/>\nlogfacility\u00a0\u00a0\u00a0\u00a0daemon<\/p>\n<p><span class=\"comentario\"># Frequ\u00eancia em segundo de batimentos card\u00edacos<\/span><br \/>\nkeepalive 1<\/p>\n<p><span class=\"comentario\"># tempo m\u00ednimo para declarar o outro servidor como morto<\/span><br \/>\ndeadtime 10<\/p>\n<p><span class=\"comentario\"># Quanto tempo o heartbeat deve esperar por bits atrasados<\/span><br \/>\nwarntime 5<\/p>\n<p><span class=\"comentario\"># Tempo m\u00e1ximo para declarar o outro servidor como morto<\/span><br \/>\ninitdead 120<\/p>\n<p><span class=\"comentario\"># Porta de sincronia do heartbeat<\/span><br \/>\nudpport\u00a0\u00a0\u00a0\u00a0694<\/p>\n<p><span class=\"comentario\"># Endere\u00e7o de broadcast da rede &#8211; usada para setar o endere\u00e7o prim\u00e1rio do servidor<\/span><br \/>\nbcast\u00a0\u00a0\u00a0\u00a0eth2<\/p>\n<p><span class=\"comentario\"># Determina se o servi\u00e7o volta para o master caso ele volte a responder.<\/span><br \/>\nauto_failback on<\/p>\n<p><span class=\"comentario\"># N\u00f3s do cluster devem ser escritos conforme a sa\u00edda do comando #uname -n<\/span><br \/>\nnode webserver1<br \/>\nnode webserver2<\/p>\n<p><span class=\"comentario\"># Endere\u00e7o ip em comum para testes de conectividade<\/span><br \/>\nping (ex. router do servidor web)<\/p>\n<p><span class=\"comentario\"># Plugin que auxilia no monitoramento de conex\u00f5es entre a rede<\/span><br \/>\nrespawn hacluster \/usr\/lib\/heartbeat\/ipfail<\/p>\n<p><span class=\"comentario\"># Se usa o syslog ou n\u00e3o<\/span><br \/>\nuse_logd off<\/p>\n<p><span class=\"comentario\"># Compacta\u00e7\u00e3o de dados<\/span><br \/>\ncompression\u00a0\u00a0\u00a0\u00a0bz2<\/p>\n<p><span class=\"comentario\"># Compacta\u00e7\u00e3o de dados<\/span><br \/>\ncompression_threshold 2<\/p>\n<\/div>\n<p>Ao configurar o ha.cf deve-se criar um arquivo que define qual o servidor master no cluster.<\/p>\n<p><strong># vim \/etc\/ha.d\/haresources<\/strong><\/p>\n<div class=\"codigo\">webserver1\u00a0\u00a0\u00a0\u00a010.0.0.1\u00a0\u00a0 apache<\/div>\n<p>Legenda:<\/p>\n<ul>\n<li>Webserver1 &#8211; Nome do servidor Master;<\/li>\n<li>10.0.0.1 &#8211; IP do servidor Master;<\/li>\n<li>apache &#8211; Servi\u00e7o monitorado pelo HeartBeat (o script de monitoramento do apache est\u00e1 em: \/etc\/ha.d\/resource.d\/).<\/li>\n<\/ul>\n<p>Ao concluir a configura\u00e7\u00e3o do cluster deve-se criar o arquivo de autentica\u00e7\u00e3o dos n\u00f3s.<\/p>\n<p><strong># vim \/etc\/ha.d\/authkeys\u00a0<\/strong><\/p>\n<div class=\"codigo\">auth 1<br \/>\n1 md5 &lt;insira uma palavra-frase&gt;<\/div>\n<p>Todas as configura\u00e7\u00f5es definidas acima devem ser feitas nos dois servidores que comp\u00f5em o cluster.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>HeartBeat &#8211; Web server com Alta Disponibilidade (HA)\u00a0 Configura\u00e7\u00e3o de um servidor web utilizando H.A. com\u00a0HeartBeat. O cen\u00e1rio utilizado foi entre dois servidores de hardware e software id\u00eanticos. S.O &#8211; CentOS 5.2. O objetivo deste documento \u00e9 explicar como \u00e9 feita a estrutura\u00a0Alta Disponibilidade\u00a0entre dois servidores Web. O software respons\u00e1vel por este cluster \u00e9 o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[455,477,1,42,51,495,68,271,127,548],"tags":[671,672,669,670],"class_list":["post-948","post","type-post","status-publish","format-standard","hentry","category-apache2","category-backup-2","category-viazap","category-leitura-recomendada","category-linux-linuxrs","category-profissional-de-ti","category-redes-2","category-seguranca-2","category-sistemas-de-armazenamento","category-ubuntu-2","tag-com-alta-disponibilidade","tag-ha","tag-heartbeat","tag-web-server"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=948"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/948\/revisions"}],"predecessor-version":[{"id":949,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/948\/revisions\/949"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=948"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=948"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}