El Jueves 04 Febrero 2010, Carlos E. R. escribió:
No se si he entendio lo que tratas de hacer, pero entiendo que lo que quieres, o una de las cosas que quieres, es que los logs se guarden en bases de datos en vez de, o además de, ficheros de texto. Eso entiendo que lo puede hacer rsyslog en local.
* Puede hacerlo en local y remoto lo estoy haciendo para cosas del sistema digamos, pero insisto rsyslog solo maneja "mensajes syslog" para lo de los ficheros los lee y produce "mensajes syslog" a partir del fichero, si quisiera esto mandaria el log de vsftpd a syslog, pero no puedo por que la aplicacion de marras esta preparada para procesar el log de vsftpd nativo. ejemplo cada bloque va en una linea: Thu Feb 4 21:44:46 2010 [pid 14127] [CBR101028] DEBUG: Client "la ip", "Connection terminated without SSL shutdown - buggy client?" Thu Feb 4 21:44:46 2010 [pid 14127] [CBR101028] OK UPLOAD: Client "la ip", "/eb/work backup/work backup_20100203_1028.zip.z300.cat", 84 bytes, 0.17Kbyte/sec Thu Feb 4 21:45:05 2010 [pid 29910] [CBR101149] OK UPLOAD: Client "la ip", "/eb/Gestion Tributaria/Gestion Tributaria_20100204_2122.zip.z003.pgp", 13047797 bytes, 30.21Kbyte/sec Thu Feb 4 21:45:11 2010 [pid 29910] [CBR101149] OK UPLOAD: Client "la ip", "/eb/Gestion Tributaria/Gestion Tributaria_20100204_2122.zip.z003.cat", 94 bytes, 0.03Kbyte/sec Thu Feb 4 21:46:05 2010 [pid 22608] [CBR101149] OK UPLOAD: Client "la ip", "/eb/Francisco/Francisco_20100204_1116.zip.z161.pgp", 12658126 bytes, 29.16Kbyte/sec Thu Feb 4 21:46:07 2010 [pid 22608] [CBR101149] OK UPLOAD: Client "la ip", "/eb/Francisco/Francisco_20100204_1116.zip.z161.cat", 107 bytes, 0.09Kbyte/sec * visto el ejemplo un script bash, perl lo que sea, hace un cat al fichero por ejemplo y anota en que linea ha terminado de leer y crea "su temporal de procesamiento" luego descarta lineas que contengan por ejemplo DEBUG y otras, y coge las que contengan por ejemplo UPLOAD, DOWNLOAD, en fin 4 expresiones regulares y de estas lineas procesa el campo 1 descartado , campo 2 al registro mes, campo 3 al registro dia, campo 4 hora, campo 5 lo omite, campo6 cliente, campo 7 mensaje del protocolo ftp por ejemplo, campo 8 la ip, campo 9 fichero , 10 tamaño, 11 descartado, etc ....... * Que no puede conectar con la BD pues lo borra, metio algunos registros y otros no pues mantiene el temporal y envia un emilio "error chungo no puedo conectar con la base de datos" y vuelta a empezar, verifica si existe su temporal y procesa su temporal donde lo dejo, para no enviar repetidos ya que hubo un error, o cualquier otra solucion potable. * Si el envio fue correcto borra su temporal y empieza otro cat verifica donde lo dejo y continua a partir de alli con la misma historia .......
Pero me parece que además los quieres juntar en una máquina centralizada, y eso es la parte que no termino de entender. Creo que comentas que una posibilidad es que los daemons de cada máquina envien sus registros, según se producen, a un daemon remoto, ¿no? Y que eso no te gusta porque se pueden perder entradas.
* Los tengo, actualmente logrotate los rota cada minuto, les cambia a un nombre especifico con fecha, hora, minuto, segundo, los manda por ssh a una maquina centralizada, (ese es el que lee la aplicacion de marras y procesa a su aire) y ademas a mi me lo inserta en un acumulado que voy borrando automaticamente estos acumulados son los que yo consulto sin estadisticas ni nada tail y algun otro comando, por que yo no necesito todo lo que el otro programa produce y no quiero el pegote de wine, ni el tamaño, etc ........ * Crearia unos formularios de consulta y me saldrian en los servidores de control aquello que puntualmente me interesase cuatro o cinco consultas, acumulados del dia de un cliente , total enviado, etc , simplemente a nivel de administracion de sistema , el resto ya se apañan con el otro. * Creo que el script en si mismo no es complejo, el asunto esta en el esquema de la base de datos y los comandos sql a emplear por el script en la conexion, aqui es donde patino ya que de sql o bases de datos pues no llego a un esquema algo complejo y no se como responden en un script, a lo mejor es complicado.