Transporte de registros y agregación a escala

14

¿Cómo analiza los archivos de registro de las máquinas UNIX / Linux? Ejecutamos varios cientos de servidores que generan sus propios archivos de registro, ya sea directamente o mediante syslog. Estoy buscando una solución decente para agregarlos y elegir eventos importantes. Este problema se divide en 3 componentes:

1) Transporte de mensajes

La forma clásica es usar syslog para registrar mensajes en un host remoto. Esto funciona bien para aplicaciones que inician sesión en syslog pero menos útil para aplicaciones que escriben en un archivo local. Las soluciones para esto podrían incluir que la aplicación inicie sesión en un FIFO conectado a un programa para enviar el mensaje usando syslog, o escribiendo algo que agrupe los archivos locales y envíe la salida al host central de syslog. Sin embargo, si nos tomamos la molestia de escribir herramientas para llevar mensajes al syslog, ¿sería mejor reemplazar todo el lote con algo como el Scribe de Facebook que ofrece más flexibilidad y confiabilidad que el syslog?

2) agregación de mensajes

Las entradas de registro parecen clasificarse en uno de dos tipos: por host y por servicio. Los mensajes por host son aquellos que ocurren en una máquina; Piense en fallas de disco o inicios de sesión sospechosos. Los mensajes por servicio se producen en la mayoría o en todos los hosts que ejecutan un servicio. Por ejemplo, queremos saber cuándo Apache encuentra un error de SSI pero no queremos el mismo error de 100 máquinas. En todos los casos, solo queremos ver uno de cada tipo de mensaje: no queremos 10 mensajes que indiquen que el mismo disco ha fallado, y no queremos un mensaje cada vez que se golpea un SSI roto.

Un enfoque para resolver esto es agregar múltiples mensajes del mismo tipo en uno en cada host, enviar los mensajes a un servidor central y luego agregar mensajes del mismo tipo en un evento general. SER puede hacer esto, pero es difícil de usar. Incluso después de un par de días de violín, solo tenía agregaciones rudimentarias trabajando y tenía que buscar constantemente la lógica que SER usa para correlacionar eventos. Es algo poderoso pero complicado: necesito algo que mis colegas puedan recoger y usar en el menor tiempo posible. Las reglas de SER no cumplen con ese requisito.

3) Generando alertas

¿Cómo le decimos a nuestros administradores cuando sucede algo interesante? ¿Enviar la bandeja de entrada del grupo? Inyectar en Nagios?

Entonces, ¿cómo estás resolviendo este problema? No espero una respuesta en un plato; Puedo resolver los detalles yo mismo, pero sería genial una discusión de alto nivel sobre lo que seguramente es un problema común. En este momento estamos usando una mezcla de trabajos cron, syslog y quién sabe qué más encontrar eventos. Esto no es extensible, mantenible o flexible y, como tal, echamos de menos muchas cosas que no deberíamos.

Actualizado: ya estamos utilizando Nagios para el monitoreo, lo cual es excelente para detectar hosts inactivos / servicios de prueba / etc. pero menos útil para eliminar archivos de registro. Sé que hay complementos de registro para Nagios, pero estoy interesado en algo más escalable y jerárquico que las alertas por host.

Markdrayton
fuente

Respuestas:

5

He usado tres sistemas diferentes para centralizar registros:

  1. Syslog / syslog-ng reenvío a un host
  2. Zenoss para agregar y alertar eventos
  3. Splunk para agregación de registros y búsqueda

Para el n. ° 3, normalmente uso syslog-ng para reenviar los mensajes de cada host directamente a splunk. También puede analizar archivos de registro directamente, pero eso puede ser un poco complicado.

Splunk es bastante impresionante para buscar y clasificar sus registros. No he usado splunk para las alertas de registro, pero creo que es posible.

Gary Richardson
fuente
+1 para Splunk. Puede hacer que Splunk active secuencias de comandos externas cuando se detecten ciertos eventos; ya sea enviando un correo o una trampa SNMP.
Murali Suriar
2

Puede echar un vistazo a OSSEC, un HIDS de código abierto completo, realiza análisis de registro y puede desencadenar acciones o enviar correos electrónicos en alertas. Las alertas se activan mediante un conjunto de reglas simples basadas en XML, se incluyen muchas predefinidas para varios formatos de registro y puede agregar sus propias reglas

http://www.ossec.net/

Guillaume
fuente
1

Echa un vistazo a Octopussy . Es totalmente personalizable y parece responder a todas sus necesidades ...

PD: Soy el desarrollador de esta solución.

sebthebert
fuente
1
No quisiera arriesgarme a implementar o incluso recomendar un producto que tenga "coño" en el nombre. Probablemente eso no saldría bien con la mayoría de las empresas, particularmente si hay mujeres trabajando dentro de TI (bastante común en estos días).
Starfish
0

Debe buscar en un sistema de monitoreo, por ejemplo, Zenoss Core . Entre otras cosas, dice en la página de introducción:

Zenoss Event Monitoring and Management ofrece la capacidad de agregar información de registro y eventos de varias fuentes, incluyendo monitoreo de disponibilidad, monitoreo de rendimiento, fuentes de registro de sistema, fuentes de captura SNMP, registro de eventos de Windows.

Vea qué-herramienta-usa-para-monitorear-sus-servidores .

gimel
fuente
No me di cuenta de que Zenoss tenía características de agregación de registros. Echaré un vistazo, gracias.
markdrayton