Recopilar registros de múltiples servidores de forma tolerante a fallas

Recopilar registros de múltiples servidores de forma tolerante a fallas

El principal requisito que tengo es poder ver y realizar búsquedas simples en registros combinados desde varias máquinas. Sin embargo, me gustaría que la solución tuviera un impacto mínimo en el resto del sistema (central). No tengo requisitos en tiempo real, el proceso puede ser asincrónico.

Inicialmente, syslog parecía una buena opción, pero ¿qué pasa si el servidor syslog muere? En el peor de los casos, el usuario del sistema central ve errores; en el mejor de los casos, se pierden algunos registros.

Entonces comencé a buscar y encontré Logstash (http://logstash.net/). Actualmente mi idea es:

  • en cada servidor (que ejecuta los componentes principales del sistema) hay un agente Logstash ejecutándose
  • el agente monitorea los archivos de registro y los envía a un clúster de ElasticSearch
  • hay otro servidor con la interfaz de usuario de Logstash

De esa manera:

  • no hay un solo punto de fracaso
  • incluso si el clúster ES muere, solo los agentes se verán afectados: la aplicación seguirá escribiendo registros en archivos
  • después de que ES regrese, el agente (con suerte) se pondrá al día y enviará todos los registros pendientes (¿es Logstash lo suficientemente inteligente como para hacer eso?)

¿Crees que esto funcionará? ¿O tal vez podría recomendar otra solución?

Respuesta1

rsyslogtiene algunas de las funciones que estás describiendo y el proyecto también tieneMucha documentación sobre el reenvío confiable de mensajes..

En resumen, con rsyslog puedes usar elRELPprotocolo para el reenvío confiable de mensajes syslog y luego no tendrá que preocuparse por la pérdida de mensajes. Y también tiene la opción de configurar archivos spool locales, donde rsyslog almacenará en búfer los mensajes en caso de que el servidor remoto no funcione. Una vez que el control remoto vuelva a funcionar, su agente se pondrá al día.

También tiene la opción de configurar rsyslog para escribir en una base de datos relacional y luego puede hacer que la base de datos sea tan redundante como desee (personalmente encuentro que un servidor syslog es más fácil de agrupar).

Respuesta2

Lo más probable es que esta pregunta se cierre como fuera de tema; consulte las preguntas frecuentes.

De todos modos, syslog (o cualquier sistema basado en syslog) debería funcionar bien; después de todo, si le preocupa perder registros, asegúrese de hacer una copia de seguridad del servidor syslog como parte de su escenario normal de recuperación ante desastres. Es una tarea/solicitud bastante simple.

información relacionada