Мой журнал доступа Tomcat в настоящее время загроможден запросами проверки работоспособности от балансировщика нагрузки, поэтому довольно сложно понять, что происходит.Например, используя GoAccess, я вижу некоторую вводящую в заблуждение статистику:
Hits h% Vis. v% Bandwidth Mtd Proto Data
----- ------ ---- ----- ----------- --- -------- ----
46221 81.20% 2 0.02% 30.72 MiB GET HTTP/1.1 /geoserver/index.html
16 0.03% 1 0.01% 50.23 KiB GET HTTP/1.1 /geoserver/wms?SERVICE=WMS&VERSION=1.1.0&REQUEST=GetMap&FORMAT=image/jpeg.
16 0.03% 1 0.01% 338.80 KiB GET HTTP/1.1 /geoserver/wms?SERVICE=WMS&VERSION=1.1.0&REQUEST=GetMap&FORMAT=image/png.
Журнал создается с использованием стандартного Tomcat Access Log Valve .Предполагается, что клапан имеет параметр conditionUnless
, который я пытаюсь использовать для того, чтобы избавиться от всех этих запросов на index.html
(вот где проходит проверка работоспособности, поэтому я могу безопасно отфильтровать все из них),
Согласно документации, conditionUnless
:
Включает условное ведение журнала.Если установлено, запросы будут регистрироваться, только если ServletRequest.getAttribute()
равно null
.Например, если для этого значения задано значение «мусор», то конкретный запрос будет зарегистрирован только в случае, если ServletRequest.getAttribute("junk") == null
.Использование фильтров - это простой способ установить / снять атрибут в запросе ServletRequest для множества различных запросов.
Но я не могу понять, как использовать фильтры для фильтрации всех запросов к index.html
и помечать их в некоторых чем.Очевидно, что в server.xml
недостаточно:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/var/log/tomcat8/accesslogs"
prefix="node1" suffix=".log"
pattern="combined"
renameOnRotate="true"
conditionUnless="index.html" />
Как я могу исключить все запросы к index.html
?