¿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.