Descripción
Este artículo describió cómo excluir el registro de tráfico intermedio enviado por FortiGate mediante el ajuste fino del conjunto de datos de consulta SQL en FortiAnalyzer.
Los registros adicionales son registros ‘interinos’ para sesiones de larga duración, se generan cada 2 minutos y se identifican en los registros como logid=20 con acción=aceptar.
Este tipo de registro se introdujo después de la versión 5.6 y posteriores de FortiGate.
Si no se excluyen, esos registros pueden generar estadísticas de tráfico incorrectas en el informe generado.
Si no hay tráfico en FortiGate en 2 minutos, el próximo paquete recibido activará el registro.
Cuando se cierra una sesión, la entrada de registro aparecerá justo antes del mensaje de registro esperado con una acción de firewall igual a acción=cerrar.
Solución
1) Para filtrar estos registros en el conjunto de datos, se debe agregar lo siguiente a la instrucción de la cláusula WHERE de la consulta SQL.
Para FortiAnalyzer, el conjunto de datos de la versión anterior a la 6.2, como la versión 5.6 y 6.0, no tiene esto agregado, es posible clonar el conjunto de datos predefinido o agregar el conjunto de datos personalizado.
Esta es una cadena especial en la que excluirá los registros intermedios de sesión larga, los registros de inicio de sesión y otros tipos de registros que se excluyen de las estadísticas de tráfico.
…
where $filter and (logflag&1>0)
…
Ejemplo:
select shapersentname, shapingpolicyid, sum(coalesce(shaperdroprcvdbyte, 0)) as dropped_rcvd, sum(coalesce(shaperdropsentbyte, 0)) as dropped_sent, (sum(coalesce(shaperdroprcvdbyte, 0))+sum(coalesce(shaperdropsentbyte, 0))) as dropped_total
from $log where $filter and (logflag&1>0) and shapingpolicyid is not null
group by shapersentname, shapingpolicyid
order by dropped_total desc
limit 20
2) Alternativamente, es posible hacerlo desde FortiGate para filtrar este ID de registro para que no se envíe a FortiAnalyzer.
# config log fortianalyzer filter
set filter «logid(00020)»
set filter-type exclude
end