El Mon, 17 Nov 2014 12:58:35 +0100, Maykel Franco escribió: > Buenas, tengo un servidor de logs centralizado, y quiero poner un filtro > para que, dependiendo del virtualname (subdominio vhost apache) del que > llegue, lo escriba en un log o en otro.
(...) > El problema viene al generar estadísticas, porque por cada subdominio se > tiene que recorrer todo el log, ya que están todos los subdominios en el > mismo log, y quiero separarlos y filtrarlo en el servidor de logs, ej: (...) Maykel, ¿no sería más sencillo y eficiente separar los registros de los subdominios en origen? Es decir, configurar Apache para que genere un registro por dada subdominio (sub1.example.org/sub1.example.org) y cada tipo (sub1.example.org_access.log/sub1.example.org_secure.log/ sub1.example.org_error.log) por separado. > Editando rsyslog, lo dejo así: > > $template MsgFormat,"%msg:2:$%\n" > > $template m.prueba1.es,"/var/log/m.prueba1.es.log" > > if $syslogfacility-text == 'local1' and $msg startswith > 'm.prueba1.es.log' and $programname == 'httpd' then > -?m.prueba1.es;MsgFormat > > #local1.* /var/log/remote/access.log;MsgFormat > local2.* /var/log/remote/error.log;MsgFormat > local3.* /var/log/remote/ssl_access.log;MsgFormat > > Con esto, no me crea ni si quiera el log /var/log/m.prueba1.es.log . > > No sé que estoy haciendo mal...Puede ser que el template de MsgFormat se > aplique tarde, al estar al final de la linea (el de timestamp) y el > principio de la linea sea la que incluye rsyslog el timestamp y por eso > no puede leer el m.prueba1.es de virtualname? > > O puede ser la versión de rsyslog, que la tengo un poquito anticuada? En la documentación de rsyslog¹ (no sé qué versión estás usando) dice que para que funcione ese comparador la línea tiene que empezar con espacio, algo que me parece has eliminado expresamente: *** Note: when processing syslog messages, please note that $msg usually starts with a space. The reason for this is RFC3164. Please read the detail description of what that means to you. In short, you need to make sure that you include the first space if you use "startswith", otherwise you will not get matches. *** ¹http://www.rsyslog.com/doc/rsyslog_conf_filter.html Saludos, -- Camaleón -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/pan.2014.11.17.15.13...@gmail.com