Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo instalar y utilizar el Analizador y Reportero de Bitácora en un VPS

marzo 4, 2020

 

Introducción

alta disponibilidad es un tema importante hoy en día debido a las interrupciones de servicio pueden ser muy costosos. Es prudente tomar medidas que mantendrá su su sitio web o aplicación web que se ejecuta en caso de un corte de luz. Con la pila de marcapasos, puede configurar un clúster de alta disponibilidad.

marcapasos es un administrador de recursos de clúster . Gestiona todos los servicios de racimo (recursos ) y utiliza las capacidades de mensajería y de miembros de clúster del motor subyacente . Vamos a utilizar Corosync como nuestro motor de racimo . Los recursos tienen un agente de recursos , que es un programa externo que abstrae el servicio.

En un clúster activo-pasivo, todos los servicios se ejecutan en un sistema primario. Si el sistema principal falla, todos los servicios son movidos al sistema de copia de seguridad. Un clúster activo-pasivo hace que sea posible hacer trabajos de mantenimiento sin interrupción.

En este tutorial, aprenderá cómo construir un clúster de alta disponibilidad Apache activo-pasivo. El cluster web conseguirá dirigida por su dirección IP virtual y fallará automáticamente si falla un nodo.

Sus usuarios tendrán acceso a la aplicación web mediante la dirección IP virtual, que es administrado por marcapasos. El servicio de Apache y la dirección IP virtual se encuentran siempre en el mismo host. Cuando falla este host, consiguen emigraron al segundo anfitrión y sus usuarios no notarán la interrupción.

Requisitos previos

Antes de empezar con este tutorial, necesitará lo siguiente:

  • Dos CentOS 7 Las gotas, que serán los nodos del clúster. Nos referiremos a estos como webnode01 (dirección IP: your_first_server_ip) y webnode02 (dirección IP: your_second_server_ip).
  • Un usuario en ambos servidores con privilegios de root. Puede configurar esta siguiendo esta primera configuración del servidor con CentOS 7 tutorial.

Dos CentOS 7 gotitas, que serán los nodos del clúster. Nos referiremos a estos como webnode01 (dirección IP: your_first_server_ip) y webnode02 (dirección IP: your_second_server_ip).

Un usuario en ambos servidores con privilegios de root. Puede configurar esta siguiendo esta primera configuración del servidor con CentOS 7 tutorial.

Vas a tener que ejecutar algunos comandos en ambos servidores, y algunos comandos en una sola.

Paso 1 – Configuración de resolución de nombres

En primer lugar, tenemos que asegurarnos de que los anfitriones pueden resolver el nombre de host de los dos nodos del clúster. Para lograr esto, vamos a añadir entradas al archivo / etc / hosts. Siga este paso en ambos webnode01 y webnode02.

Abrir / etc / hosts con nano o su editor de texto favorito.

sudo nano /etc/hosts

  • sudo nano / etc / hosts

Añadir las siguientes entradas al final del archivo.

your_first_server_ip webnode01.example.com webnode01
your_second_server_ip webnode02.example.com webnode02

Guardar y cerrar el archivo.

Paso 2 – Instalación de Apache

En esta sección, vamos a instalar el servidor web Apache. Usted tiene que completar este paso en ambos anfitriones.

En primer lugar, instalar Apache.

sudo yum install httpd

  • sudo yum install httpd agente de recursos

El Apache utiliza la página de estado del servidor Apache para comprobar el estado del servicio de Apache. Tiene que activar la página de estado mediante la creación de la /etc/httpd/conf.d/status.conf archivo.

sudo nano /etc/httpd/conf.d/status.conf

  • sudo nano /etc/httpd/conf.d/status.conf

Pegar la siguiente directiva en este archivo. Estas directivas permiten el acceso a la página de estado de localhost, pero no de cualquier otro host.


SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1

Guardar y cerrar el archivo.

Paso 3 – Instalación de marcapasos

Ahora vamos a instalar la pila del marcapasos. Usted tiene que completar este paso en ambos anfitriones.

Instalar la pila de marcapasos y el PC clúster shell. Vamos a utilizar este último más adelante para configurar el clúster.

sudo yum install pacemaker pcs

  • sudo yum install piezas de marcapasos

Ahora tenemos que empezar las piezas daemon, que se utiliza para sincronizar la configuración Corosync través de los nodos.

sudo systemctl start pcsd.service

  • sudo pcsd.service inicio systemctl

Con el fin de que el demonio se inicia después de cada reinicio, sino que también permitirá que el servicio.

sudo systemctl enable pcsd.service

  • sudo systemctl permiten pcsd.service

Después de haber instalado estos paquetes, habrá un nuevo usuario en el sistema llamado hacluster . Después de la instalación, acceso remoto está deshabilitado para este usuario. Para tareas como la sincronización de la configuración o iniciar los servicios en otros nodos, tenemos que establecer la misma contraseña para este usuario.

sudo passwd hacluster

  • sudo passwd hacluster

Paso 4 – Configuración de marcapasos

A continuación, vamos a permitir que el tráfico de clúster en FirewallD para permitir que nuestros anfitriones para comunicarse.

En primer lugar, comprobar si se está ejecutando FirewallD.

sudo firewall-cmd --state

  • sudo firewall-cmd –state

Si no se está ejecutando, iniciarlo.

sudo systemctl start firewalld.service

  • sudo inicio systemctl firewalld.service

Tendrá que hacer esto en ambos anfitriones. Una vez que se está ejecutando, agregar el servicio de alta disponibilidad a FirewallD.

sudo firewall-cmd --permanent --add-service=high-availability

  • sudo firewall-cmd –permanent –add servicio de alta disponibilidad =

Después de este cambio, es necesario para recargar FirewallD.

sudo firewall-cmd --reload

  • sudo firewall-cmd –reload

Si desea obtener más información sobre FirewallD, se puede leer esta guía acerca de cómo configurar FirewallD en CentOS 7.

Ahora que nuestros dos anfitriones pueden hablar unos con otros, podemos configurar la autenticación entre los dos nodos mediante la ejecución de este comando en un host (en nuestro caso, webnode01 ). uds

sudo pcs cluster auth webnode01 webnode02
Username: hacluster

  • sudo agrupan auth webnode01 webnode02
  • Nombre de usuario: hacluster

Debería ver el siguiente resultado:

webnode01: Authorized
webnode02: Authorized

A continuación, generaremos y sincronizar la configuración Corosync en el mismo host. Aquí, vamos a nombrar a los clúster webcluster , pero se le puede llamar lo que quiera. uds

sudo pcs cluster setup --name webcluster webnode01 webnode02

  • sudo agrupan configuración –name webcluster webnode01 webnode02

Verá la siguiente salida:

Shutting down pacemaker/corosync services...
Redirecting to /bin/systemctl stop pacemaker.service
Redirecting to /bin/systemctl stop corosync.service
Killing any remaining services...
Removing all cluster configuration files...
webnode01: Succeeded
webnode02: Succeeded

La configuración corosync se crea y distribuye a través de todos los nodos. La configuración se almacena en el archivo de /etc/corosync/corosync.conf.

Paso 5 – Puesta en marcha del Cluster

El cluster se puede iniciar ejecutando el siguiente comando en webnode01. uds

sudo pcs cluster start --all

  • sudo brote comienzan –all

Para asegurar que los marcapasos y se inicia Corosync en el arranque, que tienen que permitir a los servicios de ambos ejércitos.

sudo systemctl enable corosync.service
sudo systemctl enable pacemaker.service

  • sudo systemctl permiten corosync.service
  • sudo systemctl permiten pacemaker.service

Ahora podemos comprobar el estado del clúster ejecutando el siguiente comando en cualquiera de acogida.

sudo pcs status

  • sudo estado uds

Compruebe que ambos anfitriones están marcados como en línea en la salida.

. . .

Online: [ webnode01 webnode02 ]

Full list of resources:

PCSD Status:
webnode01: Online
webnode02: Online

Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

Nota: Después de la primera configuración, puede tomar algún tiempo antes de que los nodos están marcados como en línea.

Paso 6 – Desactivación STONITH y haciendo caso omiso de quórum

¿Cuál es STONITH?

Usted verá un aviso en la salida del estado de PCs que no hay dispositivos STONITH se configuran y STONITH no está deshabilitado:

. . .
WARNING: no stonith devices and stonith-enabled is not false
. . .

Lo que significa esto y por qué te importa?

Cuando el gestor de recursos de clúster no puede determinar el estado de un nodo o de un recurso en un nodo, esgrima se utiliza para llevar el clúster a un estado conocido de nuevo.

nivel de recursos

esgrima asegura sobre todo que no hay corrupción de datos en caso de un corte de energía mediante la configuración de un recurso. Puede utilizar la esgrima nivel de recursos, por ejemplo, con DRBD (Distributed replicado Block Device) para marcar el disco en un nodo como superado cuando el enlace de comunicación se pone.

nivel

Nodo esgrima asegura que un nodo no se ejecuta ningún recurso. Esto se hace restableciendo el nodo y la implantación de marcapasos de ella se llama STONITH (que significa “tirar el otro nodo en la cabeza”). Pacemaker es compatible con una gran variedad de dispositivos de esgrima, por ejemplo, un sistema de alimentación ininterrumpida o la gestión de interfaz de tarjetas para servidores.

Debido a la configuración de esgrima nivel de nodo depende en gran medida de su entorno, que lo inhabilitará para este tutorial.

sudo pcs property set stonith-enabled=false

  • sudo uds conjunto de propiedades stonith-enabled = false

Nota: Si va a usar marcapasos en un entorno de producción, debe planear una implementación STONITH dependiendo de su entorno y mantenerlo activado.

¿Cuál es Quorum?

Un clúster tiene quórum cuando más de la mitad de los nodos están en línea. el comportamiento predeterminado del marcapasos es dejar todos los recursos si el clúster no tiene quórum . Sin embargo, esto no tiene sentido en un clúster de dos nodos; el cluster perderá quórum si falla un nodo.

Para este tutorial, nos dirá marcapasos hacer caso omiso de quórum mediante el establecimiento de la no-quórum-política:

sudo pcs property set no-quorum-policy=ignore

  • sudo conjunto uds propiedad = sin quórum en políticas ignoran

Paso 7 – Configuración de la dirección IP virtual

a partir de ahora, vamos a interactuar con el grupo a través de las piezas de carcasa, por lo que todos los comandos sólo tienen que ser ejecutados en un host; no importa cuál. cúmulo

el marcapasos está ahora en marcha y podemos añadir el primer recurso a la misma, que es la dirección IP virtual. Para ello, vamos a configurar el OCF: los latidos del corazón: agente de recursos dirip2, pero en primer lugar, vamos a cubrir algunos de los términos.

Cada nombre de agente de recursos tiene tres o dos campos que están separados por dos puntos:

  • El primer campo es la clase de recurso, que es el estándar los ajusta agente de recursos a. También le dice marcapasos dónde encontrar la secuencia de comandos. Los dirip2 agente de recursos se ajusta a los OCF (Marco Cluster abierto) estándar.
  • El segundo campo depende de la norma. OCF recursos utilizan el segundo campo para el espacio de nombres OCF.
  • El tercer campo es el nombre del agente de recursos.

El primer campo es la clase de recurso, que es el estándar los ajusta agente de recursos a. También le dice marcapasos dónde encontrar la secuencia de comandos. Los dirip2 agente de recursos se ajusta a los OCF (Marco Cluster abierto) estándar.

El segundo campo depende de la norma. OCF recursos utilizan el segundo campo para el espacio de nombres OCF.

El tercer campo es el nombre del agente de recursos.

Recursos puede tener meta-atributos y la instancia atributos . Los meta-atributos no dependen del tipo de recurso; instancia atributos son recursos agente específico. El atributo de instancia sólo se requiere de este agente de recursos es IP (la dirección IP virtual), pero en aras de la claridad que también fijará cidr_netmask (la máscara de subred en notación CIDR). operaciones

Recursos son acciones que el clúster puede realizar en un recurso (por ejemplo, iniciar, detener, monitor). Se indican con la palabra clave op. Añadiremos el funcionamiento del monitor con un intervalo de 20 segundos, por lo que los controles de racimo cada 20 segundos si el recurso sigue siendo saludable. Lo que se considera saludable depende del agente de recursos.

En primer lugar, vamos a crear el recurso de dirección IP virtual. A continuación, vamos a utilizar 127.0.0.2 como nuestra IP virtual y Cluster_VIP para el nombre del recurso.

sudo pcs resource create Cluster_VIP ocf:heartbeat:IPaddr2 ip=127.0.0.2 cidr_netmask=24 op monitor interval=20s

  • sudo recursos uds crear Cluster_VIP OCF: los latidos del corazón: dirip2 IP 127.0.0.2 = = cidr_netmask monitor de 24 op = intervalo de 20

A continuación, compruebe el estado del recurso.

sudo pcs status

  • sudo estado uds

busque la línea siguiente en la salida:

...
Full list of resources:

Cluster_VIP (ocf::heartbeat:IPaddr2): Started webnode01
...

La dirección IP virtual está activo en el webnode01 anfitrión.

Paso 8 – Adición de la Apache

Recursos

Ahora podemos añadir el segundo recurso al cluster, que será el servicio de Apache. El agente de recursos del servicio es OCF: los latidos del corazón: Apache.

Vamos a nombrar el WebServer de recursos y establecer la instancia atribuye configfile (la ubicación del archivo de configuración de Apache) y statusurl (la URL de la página de estado del servidor Apache). Vamos a elegir un intervalo de supervisión de 20 segundos de nuevo.

sudo pcs resource create WebServer ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=20s

  • sudo recursos uds crear WebServer OCF: los latidos del corazón: Apache configfile = / etc / httpd / conf / httpd.conf statusurl = «http://127.0.0.1/server-status» intervalo de supervisión op = 20s

Nosotros puede consultar el estado del recurso como antes.

sudo pcs status

  • sudo estado uds

Debería ver WebServer en la salida que se ejecuta en webnode02.

...
Full list of resources:

Cluster_VIP (ocf::heartbeat:IPaddr2): Started webnode01
WebServer (ocf::heartbeat:apache): Started webnode02
...

Como se puede ver, los recursos se ejecutan en diferentes hosts. Todavía no se lo dijimos a los marcapasos que estos recursos deben ejecutarse en la misma máquina, por lo que se distribuyen uniformemente a través de los nodos.

Nota: Usted puede reiniciar el recurso Apache ejecutando piezas sudo recursos reinicio servidor web (por ejemplo, si cambia la configuración de Apache). Asegúrese de no utilizar systemctl para gestionar el servicio de Apache.

Paso 9 – Configuración Colocación Restricciones

Casi todas las decisiones en un grupo de marcapasos, como la elección de un recurso donde debe funcionar, se realiza mediante la comparación de las puntuaciones. Las puntuaciones se calculan por cada recurso, y el gerente de recursos de clúster elige el nodo con la puntuación más alta para un recurso en particular. (Si un nodo tiene una puntuación negativa para un recurso, el recurso no se puede ejecutar en ese nodo.)

podemos manipular las decisiones del grupo con limitaciones. Las restricciones tienen una puntuación. Si una restricción tiene una puntuación menor que infinito, es sólo una recomendación. Una puntuación de INFINITY significa que es una necesidad.

Queremos asegurar que ambos recursos se ejecutan en el mismo host, por lo que vamos a definir una restricción de colocación con una puntuación de infinito. uds

sudo pcs constraint colocation add WebServer Cluster_VIP INFINITY

  • sudo restricción de colocación añadir WebServer Cluster_VIP INFINITY

El orden de los recursos en la definición de la restricción es importante. A continuación, se especifica que el recurso de Apache (Servidor Web) debe ejecutarse en los mismos hosts IP virtual (Cluster_VIP) está activo en. Esto también significa que el sitio web no está autorizado a ejecutar en cualquier lugar si Cluster_VIP no está activo.

También es posible definir el orden en que los recursos deben ejecutarse mediante la creación de las limitaciones de pedido o preferir ciertos anfitriones de algunos recursos mediante la creación de las limitaciones de ubicación.

Compruebe que ambos recursos se ejecutan en el mismo host.

sudo pcs status

  • sudo estado uds

...
Full list of resources:

Cluster_VIP (ocf::heartbeat:IPaddr2): Started webnode01
WebServer (ocf::heartbeat:apache): Started webnode01
...

Ambos recursos están ahora en webnode01.

Conclusión

Ha configurado un Apache dos nodos de clúster activo-pasivo que se puede acceder mediante la dirección IP virtual. Ahora puede configurar Apache aún más, pero asegúrese de sincronizar la configuración a través de los anfitriones. Puede escribir un script personalizado para esto (por ejemplo, con rsync) o se puede usar algo como csync2.

Si desea distribuir los archivos de la aplicación web entre los hosts, se puede configurar un volumen DRBD e integrarlo con marcapasos.